Оповещение о сравнении показателей Prometheus

Я пытаюсь создать выражение предупреждения, которое срабатывает, если заданная метрика не одинакова для всех целей. Назовем мою метрику my_gauge, где вывод консоли выражения показывает:

my_gauge{group="test",instance="huey:9100",job="example"}   10
my_gauge{group="test",instance="duey:9100",job="example"}   10
my_gauge{group="test",instance="luey:9100",job="example"}   7

Меня интересуют целевые результаты ниже наивысшего порога. Итак, моя первоначальная мысль заключалась в том, чтобы сравнить его с max (my_gauge) результатом:

{} 10

Однако my_gauge < max(my_gauge) возвращает no data (ожидаемый результат здесь был бы неуместным). Как мне написать выражение, которое вернет цель с расходящейся метрикой?


person isuldor    schedule 14.09.2019    source источник


Ответы (1)


Если вам нужно только предупредить о том, что хотя бы одно значение отличается, вы можете сравнить, совпадает ли минимальное значение с максимальным:

expr: min(my_gauge) by(group) != max(my_gauge) by(group)

Если вы хотите предупреждать о каждом значении, которое отличается, вы можете использовать медиану для определения общего значения (10 в вашем примере). А потом сравните с этим.

expr: my_gauge != on(group) group_left quantile(0.5, my_gauge) by(group)

Что касается вашего выражения, вам не хватает вектор соответствует:

expr: my_gauge < on() group_left max(my_gauge)
person Michael Doubez    schedule 15.09.2019