Использовать переменную внутри запроса Alertmanager Promql - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть некоторые метрики, подобные этой:

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

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

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

1 Ответ

1 голос
/ 20 апреля 2020

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

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

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

...