gpt4 book ai didi

java - 如何在 Spring Boot 中聚合健康指标

转载 作者:行者123 更新时间:2023-11-30 07:45:19 24 4
gpt4 key购买 nike

我使用这个 Baeldung article 为我的 Spring 2.0.4 应用程序添加了 Actuator 支持.在第 4.4 节中,它谈到了

A handy feature of health indicators is that we can aggregate them as part of a hierarchy

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

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

更多信息我的应用程序中有一项服务依赖于几个子组件。仅当所有这些子组件都已关闭时,服务本身才被视为已关闭。只要一个启动,那么服务就启动了。当前使用正常的 HealthIndicator 机制,如果其中一个子组件已关闭,它会将服务器标记为已关闭。

我似乎想使用 CompositeHealthIndicator,但不清楚我如何在系统不接收子 HealthIndicators 的情况下创建它们。 警告 是这些子组件中的每一个都使用 @Scheduled 注释,我的理解是为了使其正常工作,类必须使用 @Component 注释(或其他注释)将导致它被创建并吸收到应用程序运行状况中。

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

{"status":"UP","details":{"MyServ1":{"status":"UP","details":{"Latency":...}},"MyServ2":{"status":"UP","details":{"Latency":...}},"diskSpace":{"status":"UP","details":{"total":...,"free":...,"threshold":...}}}}

但如果“MyServ1”或“MySrv2”出现故障,则整体状态下降,但我只希望在“diskSpace”出现故障时发生这种情况“MyServ1” 'MyServ2' 已关闭。

CompositeHealthIndicator 似乎是适合这个的类,只是不清楚我是如何为它创建 child 健康指标的(只需使用 new)?

提前致谢

最佳答案

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

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

关于java - 如何在 Spring Boot 中聚合健康指标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51861320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com