【问题标题】:absent alert getting triggered always in prometheus/alertmanager HA setup在 prometheus/alertmanager HA 设置中总是触发缺少警报
【发布时间】:2021-06-16 20:29:20
【问题描述】:
【问题讨论】:
标签:
prometheus
prometheus-alertmanager
【解决方案1】:
唯一的解决方案是不使用缺席函数,而是使用其他技术来确定指标是否缺席。
以下针对缺席警报的方法推荐的其他一些答案 -
count(cpu_stat offset 1d) by (region) unless count(cpu_stat) by (region)
上面的警报像缺席函数一样立即开始触发,但警报在 1d 内保持活动状态(对于定义的偏移间隔),并在该持续时间后自行解决。所以需要确保它在那个窗口中起作用。优点是它与缺席功能不同,它通过标签保留了分组。
在我们的例子中,cpu_stat 根本不会在 prometheus 的其他一些分片实例中收集。所以这个警报永远不会触发,因为即使在 1d 之前也没有出现这个指标。因此它解决了我们的问题。
另一件事是 -> 这是一个设置操作,所以即使 cpu_stat 计数减少,它也会发出警报。因此,您可以根据 cpu_stats 的通常计数对其进行微调,如下所示:
(count(cpu_stat offset 1d) by (region) unless count(cpu_stat) by (region)) > 40
这样,它只会在任何区域的缺失指标计数超过 40 时发出警报。
参考 -> prometheus-alert-for-missing-metrics-and-labels