当前位置: 首页 > 知识库问答 >
问题:

在Spring Boot执行器健康检查API中启用日志记录

洪照
2023-03-14

我将Spring Boot执行器API用于我的项目,该项目有一个健康检查endpoint,并通过以下方式启用它:

management.endpoints.web.base-path=/
management.endpoints.web.path-mapping.health=healthcheck

实现这一点的正确途径是什么?

共有1个答案

申屠昆
2023-03-14

最好的方法是使用@EndpointWebExtension扩展执行器endpoint。您可以执行以下操作;

@Component
@EndpointWebExtension(endpoint = HealthEndpoint.class)
public class HealthEndpointWebExtension {

    private HealthEndpoint healthEndpoint;
    private HealthStatusHttpMapper statusHttpMapper;

    // Constructor

    @ReadOperation
    public WebEndpointResponse<Health> health() {
        Health health = this.healthEndpoint.health();
        Integer status = this.statusHttpMapper.mapStatus(health.getStatus());
        // log here depending on health status.
        return new WebEndpointResponse<>(health, status);
    }
}

更多关于执行器endpoint的扩展,请参阅4.8。扩展现有endpoint

 类似资料:
  • 我需要改变频率来检查springboot执行器中的DB运行状况。默认DB运行状况检查查询每毫秒执行一次。我想让这个查询每1分钟后执行一次,而不是毫秒。有什么方法可以自定义它吗?

  • 因此,我将Spring引导执行器添加到我的应用程序中,并在应用程序中指定。属性管理。endpoint。健康隐藏物生存时间=120秒,以缓存健康检查结果。因此,当我调用执行器/健康时,结果被缓存,效果很好。 当我调用执行器/健康/就绪或自定义创建的组时,问题开始出现。该请求结果不会被缓存。我查阅了Spring文档,只找到了主要健康终点的信息,没有找到特定人群的信息。 所以我的问题是:我错过了什么吗?

  • 我有一个基于SpringBoot的web应用程序,它公开了一个Consult health indicator bean。 该bean由SpringBoot的autoconfiguration正确创建和初始化,但是,尽管关联的配置属性“Management.health.consul.Enabled”设置为true,但指示器并未显示在执行器健康endpoint中: 经过进一步检查,我发现了负责获取

  • 对于我一直在开发的一个微服务,我创建了一个自定义健康检查类,扩展了AbstractHealthIndicator,并能够在中获得输出 但当我向领事注册服务时,健康检查状态为失败。 尝试将执行器url配置为领事健康检查为spring。云领事发现健康检查url=http://localhost:8080/actuator/health。但它仍然失败,出现错误http://localhost:8566/

  • 我跟随http://cloud.spring.io/spring-cloud-netflix/spring-cloud-netflix.html使用Spring Cloud构建分布式系统。 除尤里卡客户健康检查外,所有工作均按预期进行。 我有过 eureka:客户端:healthcheck:启用:true 把我的服务指向不存在的config_server,这导致 超文本传输协议://myservi