【问题标题】:How Do I Create/Configure Spring Actuator for Multiple Datasources?如何为多个数据源创建/配置 Spring Actuator?
【发布时间】:2017-02-02 16:01:25
【问题描述】:

我有一个包含多个数据源的项目,并且还实现了弹簧执行器。当我访问 /health 时,我得到以下信息:

{"status":"DOWN"}

这对我来说没有任何意义。什么下?另外,为什么缺少数据库健康?我假设这是因为我的数据源前缀是默认的。

如何配置执行器 /health 以显示两种数据源的健康状态?

【问题讨论】:

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


    【解决方案1】:

    其实,健康端点检查的指标不止一个。您只有{"status":"DOWN"},因为默认情况下 Spring Boot 应用程序是安全的。

    你可以修改你的application.properties

    endpoints.health.sensitive=false
    

    显示所有健康指标。

    您可以在此页面中找到所有自动配置的健康指标: http://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-endpoints.html#_auto_configured_healthindicators

    此外,您还可以通过实现HealthIndicator 来编写自己的健康指标。

     @Component
     public class MyHealthIndicator implements HealthIndicator {
    
        @Override
        public Health health() {
           int errorCode = check(); // perform some specific health check
           if (errorCode != 0) {
             return Health.down().withDetail("Error Code", errorCode).build();
           }
           return Health.up().build();
        }
     }
    

    【讨论】:

    • 好的,很酷,但是如何将我的 HealthIndicator 信息添加到 /health 端点?
    • 您不需要显式添加它。 Spring 会扫描你的指标并自动添加它。
    • 好的,我想这是我的困惑部分。我知道我的自定义指标已被调用,但 /health 端点仍然显示 {"status":"DOWN"} 我希望获得有关我的指标的更多信息,而不仅仅是“状态”
    • 我明白了。这是对management.security.enabled 的限制,甚至不需要自定义指标。
    • 现在已弃用
    【解决方案2】:

    由于这个执行器现在已被弃用(也许这对某人有帮助),你可以使用这个:

    management:
      endpoint:
        health:
          show-details: always
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-09-23
      • 2018-04-12
      • 1970-01-01
      • 1970-01-01
      • 2018-09-29
      • 2021-03-16
      • 1970-01-01
      • 2016-07-20
      相关资源
      最近更新 更多