spring - 如何在 Spring Boot Health 中添加自定义健康检查?

标签 spring spring-boot spring-boot-actuator

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

这将为您的应用程序添加几个有用的端点。其中之一是/health。当您启动应用程序并导航到/health 端点时,您会看到它已经返回了一些数据。

{
    "status":"UP",
    "diskSpace": {
        "status":"UP",
        "free":56443746,
        "threshold":1345660
    }
}

如何在spring boot health中添加自定义健康检查?

最佳答案

添加自定义运行状况检查很容易。只需创建一个新的 Java 类,从 AbstractHealthIndicator 扩展它并实现 doHealthCheck 方法。该方法通过一些有用的方法获取一个构建器。如果您的健康状况良好,请调用 builder.up(),否则请调用 builder.down()。您如何检查健康状况完全取决于您。也许你想 ping 一些服务器或检查一些文件。

@Component
public class CustomHealthCheck extends AbstractHealthIndicator {
    @Override
    protected void doHealthCheck(Health.Builder bldr) throws Exception {
        // TODO implement some check
        boolean running = true;
        if (running) {
          bldr.up();
        } else {
          bldr.down();
        }
    }
}

这足以激活新的健康检查(确保 @ComponentScan 在您的应用程序上)。重新启动您的应用程序并将您的浏览器定位到/health 端点,您将看到新添加的健康检查。

{
    "status":"UP",
    "CustomHealthCheck": {
        "status":"UP"
    },
    "diskSpace": {
        "status":"UP",
        "free":56443746,
        "threshold":1345660
    }
}

关于spring - 如何在 Spring Boot Health 中添加自定义健康检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44849568/

相关文章:

java - Spring WAR 不创建 BuildProperties Bean

java - 在 Spring MVC 中返回 @Async 方法结果并将其返回给 Ajax 客户端 - 继续

java - 加快Java企业Web应用程序的启动速度

java - SQLException : Field doesn't have a default value

java - 在自动生成的实现中不使用按名称限定的映射结构中使用的方法

没有 Spring Boot 和 @EnableAutoConfiguration 的 Spring Boot 2 Actuator

java - 自定义错误请求HTTP400页面Spring MVC

使用 jUnit 进行 Spring 批处理作业测试总是抛出 NullPointerException

java - Firebase:无法验证 Firebase ID token 的签名

Spring Cloud Kubernetes - 启用配置重新加载时 Spring boot 无法启动