Использовать переменную внутри запроса Alertmanager Promql

У меня есть несколько таких показателей:

restarts{service="foo-1"}
restarts{service="foo-2"}
restarts{service="bar-1"}
restarts{service="bar-2"}
restarts{service="bar-3"}

Я пытаюсь использовать Alertmanager для запуска предупреждения, когда количество перезапусков всех экземпляров службы превышает пороговое значение.

Мне приходит в голову создать правило для каждого foo и bar отдельно, используя такой запрос:

sum(restarts{service=~"bar-.*"}) > 10

Но моих сервисов слишком много, чтобы написать правило для каждого из них.

Есть ли способ найти перезапуски каждой службы в одном запросе?


person Ali Tou    schedule 19.04.2020    source источник


Ответы (1)


Вы можете использовать label_replace в своем запросе, например:

label_replace(restarts, "servicegroup", "$1", "service", "(.+)-.+")

Затем вы можете сгруппировать результаты с помощью sum by (servicegroup) и получить желаемое.

person Emad Mohamadi    schedule 19.04.2020