gpt4 book ai didi

spring-boot - Spring Boot Actuator - 多个健康端点

转载 作者:行者123 更新时间:2023-12-04 13:42:10 25 4
gpt4 key购买 nike

有没有办法在 Spring Boot 应用程序上支持多个健康端点?

原因如下:标准执行器健康检查很棒,内置检查很棒,自定义选项很棒 - 对于单个用例:报告一般应用程序健康状况。

但我想要一些可以从 AWS Elastic Load Balancer/AutoScaling Group 调用的东西。默认情况下,如果实例未通过健康检查,ELB/ASG 将终止它并用新实例替换它。问题是某些运行状况检查(例如 DataSourceHealthIndicator)会在数据库关闭时报告 DOWN,但我的应用程序实例在其他方面非常健康。如果我使用默认行为,AWS 将抛出完全健康的实例,直到数据库恢复,这将花费我的账单。

我可以摆脱 DataSourceHealthIndicator,但我喜欢将它用于一般健康检查目的。所以我真正想要的是用于两个不同目的的两个单独的端点,例如:

/health - 一般应用程序运行状况
/ec2Health - 忽略与 EC2 实例无关的方面,例如数据库中断。

希望这是有道理的。

最佳答案

Spring Boot Actuator 有一个功能叫做 Health Groups它允许您配置多个健康指标。
在 application.properties 中配置所需的组:

management.endpoints.web.path-mapping.health=probes

management.endpoint.health.group.health.include=*
management.endpoint.health.group.health.show-details=never

management.endpoint.health.group.detail.include=*
management.endpoint.health.group.detail.show-details=always

management.endpoint.health.group.other.include=diskSpace,ping
management.endpoint.health.group.other.show-details=always
输出:
$ curl http://localhost:8080/actuator/probes
{"status":"UP","groups":["detail","health","other"]}

$ curl http://localhost:8080/actuator/probes/health
{"status":"UP"}

$ curl http://localhost:8080/actuator/probes/detail
{"status":"UP","components":{"diskSpace":{"status":"UP","details":{"total":0,"free":0,"threshold":0,"exists":true}},"ping":{"status":"UP"},"rabbit":{"status":"UP","details":{"version":"3.6.16"}}}}

$ curl http://localhost:8080/actuator/probes/other
{"status":"UP","components":{"diskSpace":{"status":"UP","details":{"total":0,"free":0,"threshold":0,"exists":true}},"ping":{"status":"UP"}}}

关于spring-boot - Spring Boot Actuator - 多个健康端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55522987/

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