通过实现
HealthIndicator
,您可以使用 Spring Boot 及其执行器模块添加自定义运行状况检查。
这些检查使用
/health
端点一起列出。
是否可以请求这些自定义运行状况端点,例如
/health/myCustomCheck
?
简短的回答是否定的。这不是由执行器提供的。您可以通过调用 /mappings 端点并查看仅映射了 /health 来验证这一点。
现在长答案是您可以添加自己的端点来调用自定义运行状况指示器。这并不难做到。 Spring 将为您选取任何类型为 Endpoint 的 bean 并映射它们。一个粗略的例子是这样的
@Bean
public Endpoint<Object> customHealthEndpoint(final MyHealthCheck health) {
return new Endpoint<Object>() {
@Override
public String getId() {
return "myHealthCheck";
}
@Override
public Object invoke() {
return health.health().getStatus();
}
@Override
public boolean isEnabled() {
return true;
}
@Override
public boolean isSensitive() {
return false;
}
};
}
然后您可以致电 /myHealthCheck 并返回 {"status":"UP"}。
我不知道从哪个版本开始,但现在它是内置的。请参阅https://docs.spring.io/spring-boot/api/rest/actuator/health.html#health.retriving-component