目前我们有一个框架,我们检查微服务,并检查有关我们应用的健康和资讯信息的URL。这里的限制是,这个框架只能检查1个网址。
我想要做的就是/健康/信息的信息组合成一个,并有/健康也显示出/信息的信息,部署的应用程序的最显着的版本。是这样的可能的开箱即用的,或者我应该创建一个显示这些信息我自己的健康检查?
您可以添加以下代码段application.yml文件集成/健康/信息端点为/信息端点。
info:
build:
artifact: @project.artifactId@
version: @project.version@
status: UP
我不认为存在什么样的配置,你可以做出来的盒子来实现这一点的,但是你应该能够编写自己的healthendpoint是实现这一目的。以下为我工作。
1.5.x的春天
@Component
public class InfoHealthEndpoint extends HealthEndpoint {
@Autowired
private InfoEndpoint infoEndpoint;
public InfoHealthEndpoint(HealthAggregator healthAggregator, Map<String, HealthIndicator> healthIndicators) {
super(healthAggregator, healthIndicators);
}
@Override
public Health invoke() {
Health health = super.invoke();
return new Health.Builder(health.getStatus(), health.getDetails())
.withDetail("info", infoEndpoint.invoke())
.build();
}
}
春天2.X
public class InfoHealthEndpoint extends HealthEndpoint {
private InfoEndpoint infoEndpoint;
public InfoHealthEndpoint(HealthIndicator healthIndicator, InfoEndpoint infoEndpoint) {
super(healthIndicator);
this.infoEndpoint = infoEndpoint;
}
@Override
@ReadOperation
public Health health() {
Health health = super.health();
return new Health.Builder(health.getStatus(), health.getDetails())
.withDetail("info", this.infoEndpoint.info())
.build();
}
}
@Configuration
class HealthEndpointConfiguration {
@Bean
@ConditionalOnEnabledEndpoint
public HealthEndpoint healthEndpoint(HealthAggregator healthAggregator,
HealthIndicatorRegistry registry, InfoEndpoint infoEndpoint) {
return new InfoHealthEndpoint(
new CompositeHealthIndicator(healthAggregator, registry), infoEndpoint);
}
}
然后,如果你需要把它添加到多个微服务,你应该能够只是创建你自己的jar是自动配置这个端点来替换驱动器默认状况检查。