оповещение об отсутствии метрики для многих хостов в alertmanager

У меня много серверов, которые контролируются с помощью Prometheus, у каждого хоста одинаковые показатели.

Мне нужно правило оповещения, которое предупреждает, когда конкретная метрика (например, some_metrics) отсутствует на определенном хосте через 5 минут.

Я проверил absent и absent_over_time, но эти функции не возвращают метки отсутствующих показателей, таких как ip или hostname.

Также я должен заявить, что я не хочу создавать правило для каждого хоста.

Я искал об этом, но не нашел решения.

Есть ли обходной путь?


person Arash Mousavi    schedule 31.05.2020    source источник


Ответы (1)


Чтобы получить метки, вам нужна метрика, в которой есть все нужные вам метки. Обычно хорошим выбором является up, который также позволяет различать недостающую метрику и недостижимую цель.

Правило будет предупреждать, если up (на задании) равно 1, а двоичный оператор UNLESS отключит предупреждение, если метрика присутствует в экземпляре:

- alert: MissingMetricInFooTarget
  rule: up{job="foo"} == 1 UNLESS ON(instance) some_metrics{job="foo"}
person Michael Doubez    schedule 01.06.2020