可以访问 HealthIndicator 方法作为端点吗?

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

通过实现

HealthIndicator
,您可以使用 Spring Boot 及其执行器模块添加自定义运行状况检查。

这些检查使用

/health
端点一起列出。

是否可以请求这些自定义运行状况端点,例如

/health/myCustomCheck

spring spring-boot
2个回答
2
投票

简短的回答是否定的。这不是由执行器提供的。您可以通过调用 /mappings 端点并查看仅映射了 /health 来验证这一点。

现在长答案是您可以添加自己的端点来调用自定义运行状况指示器。这并不难做到。 Spring 将为您选取任何类型为 Endpoint 的 bean 并映射它们。一个粗略的例子是这样的

@Bean
public Endpoint<Object> customHealthEndpoint(final MyHealthCheck health) {

    return new Endpoint<Object>() {

        @Override
        public String getId() {
            return "myHealthCheck";
        }

        @Override
        public Object invoke() {
           return health.health().getStatus();
        }

        @Override
        public boolean isEnabled() {
            return true;
        }

        @Override
        public boolean isSensitive() {
            return false;
        }

    };
}

然后您可以致电 /myHealthCheck 并返回 {"status":"UP"}。


0
投票

我不知道从哪个版本开始,但现在它是内置的。请参阅https://docs.spring.io/spring-boot/api/rest/actuator/health.html#health.retriving-component

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