spring-boot health 不显示详细信息(withDetail 信息)

新手上路,请多包涵

我已经编写了一个实现 HealthIndicator 的类,覆盖了健康方法。我返回 Health.down().withDetail("SupportServiceStatus", "UP").build();

这应该使我的 health 端点返回:

 {
    "status":"UP",
    "applicationHealth": {
        "status":"UP"
    }
}

相反,它只是返回(健康,没有细节):

 {
    "status":"UP",
}

Javacode(稍微简化):

 @Component
public class ApplicationHealth implements HealthIndicator {

  @Override
  public Health health() {
    return check();
  }

  private Health check() {
    return Health.up().withDetail("SupportServiceStatus", supportServiceStatusCode).build();
  }

}

原文由 olahell 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

根据 spring-boot 文档:

…默认情况下,只有健康状态会通过未经身份验证的 HTTP 连接公开。如果您愿意始终公开完整的健康信息,您可以将 endpoints.health.sensitive 设置为 false

解决方案是将 endpoints.health.sensitive 设置为 falseapplication.properties

应用程序.properties

 endpoints.health.sensitive=false

对于 >1.5.1 application.properties

 management.security.enabled=false

在 Spring Boot 2.0.0.RELEASE(thx @rvit34@nisarg-panchal ):

 management:
  endpoint:
    health:
      show-details: "ALWAYS"
  endpoints:
    web:
      exposure:
        include: "*"

management.endpoints.web.exposure.include=* 公开所有端点,如果这是你想要的。

当前文档可以在这里找到: https ://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-endpoints.html

原文由 olahell 发布,翻译遵循 CC BY-SA 4.0 许可协议

在 Spring Boot 2.0.0.RELEASE 中:

 management:
   endpoint:
      health:
        show-details: "ALWAYS"

原文由 rvit34 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏