prometheus/alertmanager HA 设置中总是触发缺席警报

absent alert getting triggered always in prometheus/alertmanager HA setup

我们正在切换到区域分片 prometheus 设置并使用以下 AM 设置来删除重复警报:https://github.com/prometheus/alertmanager#high-availability 重复数据删除似乎工作正常,但缺少警报会导致问题。

我们有一组指标,它只进入一个区域,并且我们为这些指标设置了一些缺失的警报。数据仅在一个区域存在,而在其他剩余区域中不存在,从而导致根据剩余区域触发缺失警报。如何处理这个问题?

唯一的解决方案是不使用缺失函数,而是使用其他技术来确定指标是否缺失。

下面推荐的一些其他答案是针对缺失警报的方法 -

count(cpu_stat offset 1d) by (region) unless count(cpu_stat) by (region)

上面的警报像缺少函数一样立即开始触发,但警报在 1d 内保持活动状态(对于定义的偏移间隔)并在该持续时间后自行解决。所以需要确保它在 window 中起作用。优点是它保留了标签组,不像没有功能。

在我们的案例中,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