【问题标题】:absent alert getting triggered always in prometheus/alertmanager HA setup在 prometheus/alertmanager HA 设置中总是触发缺少警报
【发布时间】:2021-06-16 20:29:20
【问题描述】:

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

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

【问题讨论】:

    标签: 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

    【讨论】:

      猜你喜欢
      • 2019-07-20
      • 2022-07-13
      • 2016-03-15
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      • 1970-01-01
      • 2021-12-11
      • 1970-01-01
      相关资源
      最近更新 更多