我开发了一个应用程序spring-boot我使用了执行器来提供健康指示器。问题是我必须开发自定义运行状况,当我调用/ health时,我需要记录该端点的返回。
我创建了一个端点/ health-bis,它调用/ health并记录它的响应。但问题是当服务不可用/健康返回http代码503
你有什么想法吗?
最好的问候
答案 0 :(得分:0)
您可以创建过滤器并注册它。
RequestDumperFilter会将请求/响应记录到已过滤的端点。它非常详细,所以也许你想要创建自己的过滤器,但这是一个良好的开端。
@Bean
public FilterRegistrationBean requestDumperFilter()
{
FilterRegistrationBean registration = new FilterRegistrationBean();
Filter requestDumperFilter = new RequestDumperFilter();
registration.setFilter(requestDumperFilter);
registration.addUrlPatterns("/*");
return registration;
}
答案 1 :(得分:0)
我有相同的任务,并通过覆盖原始的org.springframework.boot.actuate.health.HealthEndpoint解决了它。我只是简单地创建了自定义的一个:
@Slf4j
@Component
@Endpoint(id = "health")
public class CustomHealthEndpoint extends HealthEndpoint {
public CustomHealthEndpoint(HealthAggregator healthAggregator,
HealthIndicatorRegistry registry) {
super(new CompositeHealthIndicator(healthAggregator, registry));
}
@Override
@ReadOperation
public Health health() {
Health health = super.health();
log.debug("Health status details: {}", health);
return health;
}
}
现在,每次我致电/ health时,我都会在日志中看到完整的状态日志消息。