Правила алертинга
Примечание
Правила алертинга находятся на стадии Technical Preview. Чтобы получить доступ к функциональности, обратитесь в техническую поддержку
Правила алертинга позволяют создавать алерты на основе PromQL и отправлять уведомления об их срабатывании.
В Yandex Managed Service for Prometheus® вы можете использовать ваши существующие файлы с правилами записи (recording rules
Для описания правил поддерживаются все поля из спецификации$value
и $labels
. Итерации и функции не поддерживаются.
В этом разделе описаны особенности работы с правилами алертинга и конфигурацией алерт-менеджера. Способы загрузки и работы с файлами см. в разделе Правила записи.
Алерт-менеджер
Алерт-менеджер
Особенности обработки правил:
- Каналы уведомлений из файла конфигурации сопоставляются с каналами уведомлений в Yandex Monitoring, которые заданы в каталоге воркспейса.
- Поддерживается отправка в каналы email
и Telegram . Остальные каналы будут проигнорированы без уведомлений об ошибках. В будущем планируется поддержка всех каналов уведомлений, доступных в Yandex Monitoring. - Канал выбирается согласно заданному типу, динамическая маршрутизация
пока не поддерживается, но запланирована. - Если в конфигурации нет каналов, соответствующих каналам в каталоге, файл не будет принят.
Вы можете использовать правила алертинга, не загружая файл конфигурации. В этом случае они будут рассчитываться и создавать метрики ALERTS
и ALERTS_FOR_STATE
, но отправки уведомлений по алертам не будет.
Создать или заменить файл с правилами алертинга
-
Закодируйте содержимое файла в Base64
согласно RFC 4648 :cat alerting-rule.yaml # groups: # - name: example # rules: # - record: example # expr: up base64 -i recording-rule.yaml # Z3JvdXBzOgotIG5hbWU6IGV4YW1wbGUKICBydWxlczoKICAtIGFsZXJ0OiBIaW...CBsYXRlbmN5Cg==
-
Сохраните результат в JSON-файл:
body.json
{ "name": "alerting-rules", "content" : "Z3JvdXBzOgotIG5hbWU6IGV4YW1wbGUKICBydWxlczoKICAtIGFsZXJ0OiBIaW...CBsYXRlbmN5Cg==" }
-
Создайте или замените файл с правилами записи:
export IAM_TOKEN=<IAM-токен> curl -X PUT \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ${IAM_TOKEN}" \ -d "@body.json" \ "https://monitoring.api.cloud.yandex.net/prometheus/workspaces/<идентификатор_воркспейса>/extensions/v1/rules"
Подробнее о вычислении правил см. в разделе Правила записи.
Создать или заменить файл с конфигурацией алерт-менеджера
-
Закодируйте содержимое файла в Base64 согласно RFC 4648:
cat alert-manager.yaml # receivers: # - name: 'email' # email_configs: # - to: 'alerts@monitoring.org' # - name: 'telegram' # telegram_configs: # - api_url: https://api.telegram.org base64 -i alert-manager.yaml # cmVjZWl2ZXJzOgogIC0gbmFtZTogJ2VtYWlsJwogICA...sOiBodHRwczovL2FwaS50ZWxlZ3JhbS5vcmcKCg==
-
Сохраните результат в JSON-файл:
body.json
{ "content" : "cmVjZWl2ZXJzOgogIC0gbmFtZTogJ2VtYWlsJwogICA...sOiBodHRwczovL2FwaS50ZWxlZ3JhbS5vcmcKCg==" }
-
Создайте или замените файл конфигурации:
export IAM_TOKEN=<IAM-токен> curl -X PUT \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ${IAM_TOKEN}" \ -d "@body.json" \ "https://monitoring.api.cloud.yandex.net/prometheus/workspaces/<идентификатор_воркспейса>/extensions/v1/alertmanager"
В случае успешного запроса будет возвращен HTTP-код 204
, иначе — текст ошибки. Файл, в котором не удалось найти ни одного соответствия текущим каналам уведомлений в каталоге, не будет принят.