将Spring Boot Actuator的运行状况从UP / DOWN转换为TRUE / FALSE

时间:2019-12-12 17:59:16

标签: spring-boot spring-boot-actuator actuator

是否可以通过UP / DOWN更改状态字段值

DBL_MIN/2

变为TRUE / FALSE,如下所示:

{"status":"UP"}

我想使用与弹簧执行器相同的检查逻辑,不需要自定义检查逻辑,只想更新状态值。

2 个答案:

答案 0 :(得分:0)

假设您的公司建立了新的API标准,是因为涉及到组成应用程序范围的众多不同框架,而我们并不是仅在谈论Spring Boot应用程序(因为这样会很烦人):

只需在@Endpoint下实现自己的/actuator/customstatus并汇总其下的所有HealthIndicator状态。您可能希望从Spring Boots HealthEndpointCompositeHealthIndicator类中获得有关如何实现此目标的灵感。 (主题HealthAggregator

答案 1 :(得分:0)

以下代码将注册一个新的执行器端点/healthy,该端点使用与默认/health端点相同的机制。

package com.example;

import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
import org.springframework.boot.actuate.health.HealthEndpoint;
import org.springframework.boot.actuate.health.Status;
import org.springframework.stereotype.Component;

@Component
@Endpoint(id = "healthy") // Change this to expose the endpoint under a different name
public class BooleanHealthEndpoint {

    HealthEndpoint healthEndpoint;

    public BooleanHealthEndpoint(HealthEndpoint healthEndpoint) {
        this.healthEndpoint = healthEndpoint;
    }

    @ReadOperation
    public Health getHealth() {
        Boolean healthy = healthEndpoint.health().getStatus().equals(Status.UP);
        return new Health(healthy);
    }

    public static class Health {
        private Boolean status;

        public Health(Boolean status) {
            this.status = status;
        }

        public Boolean getStatus() {
            return status;
        }
    }
}