Spring Boot HealthIndicator示例

问题描述 投票:2回答:1

我希望在我的Spring Boot REST服务上构建一个健壮且详细的运行状况检查端点(/health)。我刚刚读了关于这个问题的this excellent Baeldung article,但仍有一些问题。

理想情况下,我的/health端点能够考虑所有子系统(其中10个)的个人健康状况,包括主机的健康状况(CPU,磁盘利用率,可用内存等)。

我不知道Spring Boot是否希望你建立一个只有一个HealthIndicator impl。或者,如果想要为每个主要子系统构建一个HealthIndicator impl(每个子系统可以分别独立地“向上”或“向下”。

另外,在Baeldung的例子中,顶级statusmyHealthCheck.status之间有什么区别?它们各自来自哪里(在代码中)?

{
    "status" : "DOWN",
    "myHealthCheck" : {
        "status" : "DOWN",
        "Error Code" : 1,
        "Description" : "You custom MyHealthCheck endpoint is down"
     },
     "diskSpace" : {
         "status" : "UP",
         "free" : 209047318528,
         "threshold" : 10485760
     }
}

diskSpace来自哪里?!

java spring spring-boot spring-boot-actuator health-monitoring
1个回答
2
投票

1)您可以拥有尽可能多的健康指标。只需创建将扩展org.springframework.boot.actuate.health.HealthIndicator的bean,它们将被执行者的healthcheck端点自动拾取。 bean的名称将是某个运行状况指示器的名称。在你的例子中,myHealthCheckdiskSpace是弹簧上下文中的bean,当你击中/health时被调用。 diskSpace是来自org.springframework.boot.actuate.health.DiskSpaceHealthIndicator的spring boot中预定义的健康指标之一。

2)最高级别状态是所有健康指标的累积状态。您可以配置它的工作方式,但默认情况下它会显示最低状态(您有一个健康指示器处于DOWN状态,因此累积状态显示为DOWN)

© www.soinside.com 2019 - 2024. All rights reserved.