如何在Spring boot中聚合健康指标

2024-01-10

我使用它为我的 Spring 2.0.4 应用程序添加了执行器支持拜尔东文章 https://www.baeldung.com/spring-boot-actuators。在第 4.4 节中,它讨论了

健康指标的一个方便功能是我们可以将它们聚合为层次结构的一部分

但它没有讨论如何进行这种聚合。我也找不到任何有关如何执行此操作的文档。

Question你们中有人知道有关创建此类聚合的教程、示例或其他文档吗?

更多信息我的应用程序中有一项服务依赖于多个子组件。仅当出现以下情况时,服务本身才会被视为已关闭:all这些子组件已关闭。只要其中一个起来了,那么服务就起来了。目前使用正常HealthIndicator如果其中一个子组件已关闭,则该机制会将服务器标记为已关闭。

看来我想用CompositeHealthIndicator但尚不清楚我如何在系统不拾取子健康指标的情况下创建它们。这caveat这些子组件中的每一个都使用@Scheduled注释,我的理解是,为了使其工作,类必须使用@Component注释(或类似的注释)将导致它被创建并吸收到应用程序运行状况中。

澄清我添加了执行器,健康 URL 如下所示:

{“状态”:“UP”,“详细信息”:{“MyServ1”:{“状态”:“UP”,“详细信息”:{“延迟”:...}},“MyServ2”:{“状态” :"UP","details":{"Latency":...}},"diskSpace":{"status":"UP","details":{"total":...,"free": ...,“临界点”:...}}}}

但如果“MyServ1”或“MySrv2”关闭,则整体状态会关闭,但我只希望在“diskSpace”关闭时发生这种情况OR'我的服务1'and“MyServ2”已关闭。

看来CompositeHealthIndicator将是合适的课程,只是不清楚我如何为其创建儿童健康指标(只需使用new)?

提前致谢


将每个运行状况指标的状态聚合为一个整体状态是通过实现org.springframework.boot.actuate.health.HealthAggregator。 Spring Boot 自动配置一个实例OrderedHealthAggregator。如果您提供自己的 bean 来实现HealthAggregator自动配置的聚合器将退缩以支持您的自定义实现。

聚合器的aggregate方法被调用Map<String, Status>其中键是健康指标的名称,值是其状态。了解子组件的运行状况指标的名称应该允许您为它们执行自定义聚合。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Spring boot中聚合健康指标 的相关文章

随机推荐