当注册的健康检查指标的状态发生变化时,是否有办法获得通知?例如,当数据库的运行状况检查指示器出现故障时,我想采取一些措施。
实际上,我的最终目标是将健康检查状态输出到普罗米修斯'指标。因此,当状态发生变化时,我想更新运行状况指标。
答案 0 :(得分:2)
我认为您的问题涉及千分尺issue 416和Micrometer-Docs issue 39。
根据文档,您可以注册自定义HealthMetricsConfiguration
。量表的值由ComposeHealthIndicator
返回的状态确定,并且实际上会根据单个HealthIndicator
的状态而变化。
我正在使用前面提到的HealthMetricsConfiguration
(只是在问题416中讨论了不同的状态值映射)。
未提前实施自定义交替健康指标:
@Component
public class AlternatingHealthIndicator extends AbstractHealthIndicator {
@Override
protected void doHealthCheck(Builder builder) throws Exception {
int minute = LocalDateTime.now().getMinute();
boolean minuteIsEven = minute % 2 == 0;
builder.status(minuteIsEven ? Status.UP : Status.DOWN);
builder.withDetail("description", "UP when current minute is even; DOWN when current minute is odd");
builder.withDetail("currentMinute", minute);
builder.withDetail("minuteIsEven", minuteIsEven);
}
}
在Prometheus端点上导出的health
指标从1=UP
到-2=DOWN
微不足道。这是一个可视化:
关于警报,您可以使用Grafana警报或查看Prometheus的Alertmanager。