【问题标题】:Define absence of the alert Prometheus定义警报 Prometheus 的缺失
【发布时间】:2020-03-25 16:07:46
【问题描述】:

我设置了 Prometheus 的警报,它依赖于另一个警报的值的缺失:

  - alert: Some_Alert
    expr: |
      round(some_expr) > 24
      AND ALERTS{alertname="Empty_Source_Data_Load"} != 1

我只想在第一个表达式为真且Empty_Source_Data_Load 警报不存在(这意味着有数据)时才计算Some_Alert 值。如何使用缺席方法做到这一点?

【问题讨论】:

    标签: yaml prometheus metrics prometheus-alertmanager


    【解决方案1】:

    您不会使用absent,而是使用unless 二元运算符。

    vector1 除非 vector2 产生一个由元素组成的向量 vector2 中没有元素的向量 1 匹配的标签集。两个向量中的所有匹配元素都将被删除。

    警报将类似于以下内容(带有ON() 子句):

      - alert: Some_Alert
        expr: |
          round(some_expr) > 24
          UNLESS ON() ALERTS{alertname="Empty_Source_Data_Load"}
    

    【讨论】:

    • 此表达式中是否需要 (ON) 子句?看起来表达式可能在没有它的情况下工作。
    • 这取决于您在每一侧的标签。没有它,标签集必须与警报匹配才能生效。我认为情况并非如此,但您会知道的更多。
    猜你喜欢
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 2019-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    相关资源
    最近更新 更多