弹簧启动运行状况未显示详细信息(包含详细信息)

2022-09-01 04:51:23

我写了一个实现HealthIndicator的类,覆盖了health-method。我回来了Health.down().withDetail("SupportServiceStatus", "UP").build();

这应该使我的 -endpoint 返回: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();
  }

}

答案 1

根据 Spring-boot 文档:

. . .默认情况下,仅通过未经身份验证的 HTTP 连接公开运行状况。如果您乐于始终公开完整的健康信息,则可以将其设置为 。endpoints.health.sensitivefalse

解决方案是在 中设置为 。endpoints.health.sensitivefalseapplication.properties

应用程序.属性

endpoints.health.sensitive=false

对于 >1.5.1 应用程序.属性

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


答案 2

在 Spring Boot 2.0.0.RELEASE 中:

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

推荐