Правила алертинга
Примечание
Правила алертинга находятся на стадии Technical Preview. Чтобы получить доступ к функциональности, обратитесь в техническую поддержку
Алертинг в Yandex Managed Service for Prometheus® позволяет добавить правила вычисления алертов и отправлять уведомления об их срабатывании. Настройка алертинга в Prometheus включает создание правил алертинга и настройку Alert manager для обработки и доставки уведомлений.
Требования к правилам алертинга
В Prometheus вы можете использовать ваши существующие файлы с правилами алертинга (alerting rules
Для описания правил поддерживаются все поля из спецификации$value
и $labels
. Итерации и функции не поддерживаются.
В этом разделе описаны особенности работы с правилами алертинга и конфигурацией алерт-менеджера. Способы загрузки и работы с файлами см. в разделе Правила записи.
Алерт-менеджер
Алерт-менеджер
Особенности обработки правил:
- Каналы уведомлений из файла конфигурации сопоставляются с каналами уведомлений в Yandex Monitoring, которые заданы в каталоге воркспейса.
- Поддерживается отправка в каналы email
и Telegram . Остальные каналы будут проигнорированы без уведомлений об ошибках. В будущем планируется поддержка всех каналов уведомлений, доступных в Yandex Monitoring. - Канал выбирается согласно заданному типу, динамическая маршрутизация
пока не поддерживается, но запланирована. - Если в конфигурации нет каналов, соответствующих каналам в каталоге, файл не будет принят.
Вы можете использовать правила алертинга, не загружая файл конфигурации. В этом случае они будут рассчитываться и создавать метрики ALERTS
и ALERTS_FOR_STATE
, но отправки уведомлений по алертам не будет.
Вы можете управлять файлами с правилами записи через консоль управления
Предварительная настройка для работы с API
API представлен набором REST-ресурсов, которые находятся по адресу https://monitoring.api.cloud.yandex.net/prometheus/workspaces/<идентификатор_воркспейса>/extensions/v1/rules
.
Чтобы начать выполнять запросы:
- Установите cURL
. - Аутентифицируйтесь в API.
- Создайте воркспейс и скопируйте его идентификатор, чтобы использовать в адресе запросов.
Добавление и замена файла с правилами алертинга
- На странице сервиса Monitoring
слева выберите Prometheus. - Выберите или создайте воркспейс.
- Перейдите на вкладку Recording rules.
- Если у вас еще нет загруженных файлов, нажмите Добавить файл и выберите файл
.yml
с правилами. - Чтобы добавить еще один файл, нажмите Добавить файл.
- Чтобы заменить существующий файл, справа от него нажмите
> Заменить файл.
-
Закодируйте содержимое файла в Base64
согласно RFC 4648 :cat alerting-rule.yaml # groups: # - name: example # rules: # - alert: HighRequestLatency # expr: job:request_latency_seconds:mean5m{job="myjob"} > 0.5 # for: 10m # labels: # severity: page # annotations: # summary: High request latency base64 -i alerting-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"
Добавление и замена файла с конфигурацией алерт-менеджера
- На странице сервиса Monitoring
слева выберите Prometheus. - Выберите или создайте воркспейс.
- Перейдите на вкладку Конфигурация Alert manager.
- Если у вас еще нет загруженного файла конфигурации, нажмите кнопку Загрузить файл конфигурации и выберите файл
.yml
. - Чтобы скачать файл, нажмите Скачать.
- Чтобы заменить файл, нажмите Заменить файл.
-
Закодируйте содержимое файла в 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
, иначе — текст ошибки. Файл, в котором не удалось найти ни одного соответствия текущим каналам уведомлений в каталоге, не будет принят.