Определить отсутствие оповещения Прометей

У меня есть предупреждение для Prometheus, настроенное таким образом, что оно зависит от отсутствия значения для другого предупреждения:

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

Я хочу вычислить значение Some_Alert только тогда, когда первое выражение истинно, а предупреждение Empty_Source_Data_Load отсутствует (что означает наличие данных). Как я могу это сделать, используя отсутствующий метод?


person Cassie    schedule 25.03.2020    source источник


Ответы (1)


Вы бы не использовали absent, а скорее , если бинарный оператор.

vector1, если vector2 не приводит к вектору, состоящему из элементов vector1, для которых нет элементов в vector2 с точно совпадающими наборами меток. Все совпадающие элементы в обоих векторах отбрасываются.

Предупреждение будет примерно таким (с предложением ON()):

  - alert: Some_Alert
    expr: |
      round(some_expr) > 24
      UNLESS ON() ALERTS{alertname="Empty_Source_Data_Load"}
person Michael Doubez    schedule 25.03.2020
comment
Требуется ли в этом выражении предложение (ON)? Похоже, выражение могло бы работать и без него. - person Cassie; 30.03.2020
comment
Это зависит от наклеек на каждой стороне. Без него набор меток должен соответствовать предупреждению, чтобы оно вступило в силу. Я предположил, что это не так, но вам лучше знать. - person Michael Doubez; 30.03.2020