Руководство по настройке оповещений

Обновлено 06.10.2026
Пошаговое руководство по настройке оповещений в Proto Observability Platform: создание каналов оповещений (email, Telegram, MAX, Webhook), политик маршрутизации и правил алертинга с описанием каждого поля формы.

На этой странице:

В этом руководстве описана настройка оповещений в веб-интерфейсе Proto Observability Platform: как создать каналы доставки, как направить алерты в нужные каналы с помощью политик и как создавать и сопровождать правила алертинга.

Концептуальное описание модуля алертинга (встроенные правила, SLO-алертинг, выявление аномалий) приведено в разделе Алертинг в Proto Observability Platform.

Как устроены оповещения

Оповещения складываются из трёх связанных сущностей. Их настраивают в разделе главного меню Инциденты и Алерты:

СущностьРаздел менюНазначение
Канал оповещенияИнциденты и Алерты > Каналы оповещенияКуда доставлять уведомления (email, Telegram, MAX, Webhook).
Политика оповещенийИнциденты и Алерты > Политики оповещенияКакие алерты в какой канал направлять (маршрутизация по лейблам).
Правило алертингаИнциденты и Алерты > ПравилаЧто считать инцидентом (условие на языке PromQL/MetricsQL).

Данные движутся так: правило срабатывает по условию → политика сопоставляет лейблы алерта со своими матчерами и выбирает канал → канал доставляет уведомление получателю.

Рекомендуемый порядок настройки с нуля:

  1. Создать каналы оповещений — адреса и реквизиты доставки.
  2. Создать правила алертинга — условия срабатывания и лейблы.
  3. Создать политики, которые свяжут лейблы правил с каналами.

Раздел «Инциденты и Алерты» в главном меню Скриншот: пункт меню «Инциденты и Алерты» с подразделами «Каналы оповещения», «Политики оповещения», «Правила».


Каналы оповещений

Канал оповещения определяет, куда и как доставляется уведомление. Поддерживаются четыре типа каналов: Электронная почта (email), Telegram, MAX и Webhook.

Список каналов

Откройте раздел Инциденты и Алерты > Каналы оповещения. На странице доступны поиск по названию, фильтр по типу канала и действия над каждым каналом (просмотр, редактирование, удаление).

Список каналов оповещений Скриншот: список каналов с фильтром по типу и кнопкой «Добавить».

Создание канала

Нажмите «Добавить» и заполните форму. Часть полей общая для всех типов, остальные зависят от выбранного типа.

Общие поля:

ПолеОбязательноеОписание
НазваниеДаУникальное и описательное имя канала (до 64 символов). Допускаются латинские и кириллические буквы, цифры, дефис, подчёркивание и пробелы.
ТипДаТип канала: Электронная почта, Telegram, MAX или Webhook. При смене типа поля, специфичные для типа, очищаются.
КомментарийНетПроизвольная заметка (до 500 символов): например, какая команда получает уведомления или для чего используется канал.
Отправлять завершённые?НетОтправлять ли в канал уведомления о завершившихся (разрешившихся) алертах.
Отключить проверку SSLНетОтключает проверку валидности SSL-сертификата сервера. Включайте только при использовании самоподписанного сертификата.

Канал «Электронная почта» (email)

Создание канала: Электронная почта Скриншот: форма создания канала типа «Электронная почта» с заполненными полями SMTP.

ПолеОбязательноеОписание
КомуДаEmail-адрес получателя оповещений.
От когоДаАдрес отправителя (поле from).
SMTP серверДаSMTP-сервер для отправки писем в формате хост:порт, например smtp.example.com:587.
Имя пользователя SMTPНетИмя пользователя для SMTP-аутентификации.
Пароль SMTPНетПароль для SMTP-аутентификации (хранится в зашифрованном виде).
hello имя хостаНетИмя хоста для идентификации на SMTP-сервере. По умолчанию localhost.
Требовать TLSНетТребовать TLS для SMTP-соединения.

Проверка настроек — тестовое письмо

В форме канала есть кнопка «Отправить тестовое письмо»: параметры почтового сервера проверяются сразу при настройке, а не в момент первого реального алерта.

Что важно знать о проверке:

  • Тестовое письмо проверяет только транспорт SMTP. Чтобы оповещения действительно доходили, канал должен быть привязан к политике, а политика — применена.
  • При ошибке сообщение указывает, на каком этапе всё сломалось — соединение с сервером, TLS, аутентификация или отправка, — поэтому не приходится гадать между «неверный пароль» и «закрыт порт».
  • Если «Требовать TLS» выключено, выводится предупреждение: соединение не шифруется, и при аутентификации LOGIN пароль SMTP уйдёт открытым текстом. Включите TLS, если сервер это поддерживает.
  • Проверка ограничена по частоте: при слишком частых нажатиях интерфейс предложит повторить через несколько секунд.

Канал «Telegram»

Создание канала: Telegram Скриншот: форма создания канала типа «Telegram».

ПолеОбязательноеОписание
Telegram IDДаИдентификатор чата (chat_id), куда бот отправляет сообщения. Целое число, может быть отрицательным.
Токен ботаДаТокен Telegram-бота (хранится в зашифрованном виде).
API URLНетURL API Telegram, по умолчанию https://api.telegram.org.
ID ветки сообщенийНетИдентификатор ветки (topic) для форумных групп Telegram.

Канал «MAX»

Уведомления доставляются в групповой чат или канал мессенджера MAX от имени бота.

ПолеОбязательноеОписание
Идентификатор чатаДаЧисловой идентификатор чата (chat_id), в который бот отправляет оповещения. Может быть отрицательным.
Токен ботаДаТокен бота MAX (хранится в зашифрованном виде).
Адрес APIНетАдрес API мессенджера. Оставьте пустым для облачного MAX (https://platform-api.max.ru); заполните, если MAX развёрнут в контуре организации.

Как получить реквизиты:

  1. Создайте бота в приложении MAX через системного бота для создания ботов и сохраните выданный токен.

  2. Добавьте бота в целевой чат (в канал — с правами администратора). Пока бот не состоит в чате, MAX отвечает на отправку ошибкой Chat not found, даже если идентификатор чата указан верно.

  3. Узнайте идентификатор чата. Запросите список чатов бота, подставив токен:

    curl -s -H "Authorization: <ТОКЕН_БОТА>" "https://platform-api.max.ru/chats"
    

    В ответе у нужного чата возьмите значение поля chat_id.

После сохранения откройте карточку канала из списка (действие «просмотр»): рядом с кнопками «Изменить» и «Удалить» есть кнопка «Отправить тестовое сообщение». Платформа отправляет в чат синтетический алерт, и ошибка (неверный токен, бот не добавлен в чат) видна сразу. В формах создания и редактирования этой кнопки нет: проверка выполняется по сохранённым реквизитам канала. Проверяется только доставка в чат: чтобы оповещения действительно доходили, канал должен быть привязан к политике, а политика — применена.

По умолчанию для каналов MAX уведомления о разрешении включены.

Канал «Webhook»

Создание канала: Webhook Скриншот: форма создания канала типа «Webhook».

ПолеОбязательноеОписание
Webhook URLДаURL, на который отправляется HTTP POST с данными алерта. Должен начинаться с http:// или https://.
Отправлять завершенные?НетОтправлять ли уведомление, когда алерт разрешился. По умолчанию включено.
Максимум алертовНетМаксимальное количество алертов в одном сообщении. 0 — без ограничения.
ТаймаутНетМаксимальное время ожидания ответа от приёмника. 0s — без ограничения.
Отключить проверку SSLНетНе проверять сертификат приёмника (для самоподписанных сертификатов).
Формат запроса

Сведения ниже нужны, если вы разрабатываете собственный приёмник оповещений: ITSM-коннектор, чат-бот, скрипт автоматизации. Формат совместим с webhook-форматом Alertmanager версии 4, поэтому подойдут и готовые библиотеки для его разбора.

HTTP-запрос. Платформа отправляет POST на указанный URL с заголовками Content-Type: application/json и User-Agent: Alertmanager/0.28.0. Заголовков авторизации нет: если приёмник открыт в сеть, ограничьте доступ к нему на сетевом уровне или секретом в пути URL. Тело — один JSON-объект на группу алертов.

Ответ приёмника. Ответ 2xx считается успешной доставкой, тело ответа не читается. На ответ 5xx и на сетевые ошибки (таймаут, отказ соединения) платформа повторяет отправку с нарастающей паузой. Ответ 4xx считается окончательной ошибкой: сообщение не будет отправлено повторно. Отвечайте 2xx сразу после приёма, а обработку выполняйте асинхронно.

Группировка и повторные сообщения. В одном сообщении приходят все алерты группы — алерты с одинаковыми значениями лейблов группировки политики (см. Создание политики). Первое сообщение группы отправляется примерно через 10 секунд после срабатывания. Если состав группы меняется (сработал ещё один алерт или какой-то разрешился), новое сообщение придёт не раньше чем через 5 минут и снова будет содержать все алерты группы, включая уже отправленные. Если ничего не меняется, сообщение по активной группе повторяется раз в 4 часа. Поэтому приёмник должен быть идемпотентным: один и тот же алерт придёт несколько раз.

Поля верхнего уровня:

ПолеОписание
versionВерсия формата, всегда "4".
statusfiring, если в группе есть хотя бы один активный алерт, иначе resolved. Сообщение со статусом firing может содержать и разрешённые алерты — смотрите status каждого алерта.
receiverНазвание канала оповещения.
groupKeyКлюч группы: матчеры политики и значения лейблов группировки. Стабилен для группы, подходит для связывания сообщений одной группы.
groupLabelsЛейблы группировки политики и их значения.
commonLabels, commonAnnotationsЛейблы и аннотации, одинаковые у всех алертов сообщения.
truncatedAlertsСколько алертов не вошло в сообщение из-за ограничения «Максимум алертов».
externalURLВнутренний служебный адрес; для построения ссылок не используйте. Ссылки на платформу берите из аннотаций алерта.
alertsМассив алертов группы.

Поля алерта (alerts[]):

ПолеОписание
statusfiring — алерт активен, resolved — разрешился.
labelsЛейблы алерта: лейблы правила (alertname, severity, type, component_type, rule_type и т. д., см. Типовые лейблы встроенных правил), лейблы метрики из выражения (например, host) и служебные лейблы платформы: rule_id (идентификатор правила), rule_group и alertgroup (группа правила).
annotationsАннотации правила с подставленными значениями: summary, ссылки на дашборды (dashboard, dashboardHost), значение value и т. п. Набор зависит от правила.
startsAtВремя начала срабатывания (UTC, RFC 3339).
endsAtВремя разрешения. У активного алерта — нулевая дата 0001-01-01T00:00:00Z, а не null.
fingerprintИдентификатор алерта — хеш его лейблов. Пара fingerprint + startsAt однозначно определяет эпизод срабатывания и годится как ключ для устранения дублей.
generatorURLСлужебная ссылка на источник алерта.

Примеры. Ниже — реальные сообщения, снятые с платформы версии 203 для встроенного правила «CPU: Использование > 90%» (группа OS_LINUX) и политики с лейблом группировки alertname. Правило сработало на двух хостах, затем хосты по очереди восстановились — пришло три сообщения.

Сообщение 1. Сработали оба хоста:

{
    "receiver": "webhook-test",
    "status": "firing",
    "alerts": [
        {
            "status": "firing",
            "labels": {
                "alertgroup": "OS_LINUX",
                "alertname": "CPU: Использование > 90%",
                "component_type": "host",
                "host": "app-server-01",
                "rule_group": "OS_LINUX",
                "rule_id": "6f1c2a1e-4b7d-4c1a-9a51-2f0e3d8b7c11",
                "rule_type": "cpu",
                "service_id_host": "YXBwLXNlcnZlci0wMQ==.1",
                "severity": "WARNING",
                "type": "infra"
            },
            "annotations": {
                "dashboardHost": "https://obp.example.local/dashboard/OS_LINUX/Service/YXBwLXNlcnZlci0wMQ==.1/Proto-Linux-Service",
                "summary": "Использование CPU > 90%",
                "value": "96.5"
            },
            "startsAt": "2026-10-06T08:11:50Z",
            "endsAt": "0001-01-01T00:00:00Z",
            "generatorURL": "https://obp.example.local/vmalert/alert?group_id=6667729631414967694&alert_id=14586754786845147920",
            "fingerprint": "200d0b8aee1248c2"
        },
        {
            "status": "firing",
            "labels": {
                "alertgroup": "OS_LINUX",
                "alertname": "CPU: Использование > 90%",
                "component_type": "host",
                "host": "db-server-02",
                "rule_group": "OS_LINUX",
                "rule_id": "6f1c2a1e-4b7d-4c1a-9a51-2f0e3d8b7c11",
                "rule_type": "cpu",
                "service_id_host": "ZGItc2VydmVyLTAy.1",
                "severity": "WARNING",
                "type": "infra"
            },
            "annotations": {
                "dashboardHost": "https://obp.example.local/dashboard/OS_LINUX/Service/ZGItc2VydmVyLTAy.1/Proto-Linux-Service",
                "summary": "Использование CPU > 90%",
                "value": "93.8"
            },
            "startsAt": "2026-10-06T08:11:50Z",
            "endsAt": "0001-01-01T00:00:00Z",
            "generatorURL": "https://obp.example.local/vmalert/alert?group_id=6667729631414967694&alert_id=6171399778922918722",
            "fingerprint": "da220678177e40b8"
        }
    ],
    "groupLabels": {
        "alertname": "CPU: Использование > 90%"
    },
    "commonLabels": {
        "alertgroup": "OS_LINUX",
        "alertname": "CPU: Использование > 90%",
        "component_type": "host",
        "rule_group": "OS_LINUX",
        "rule_id": "6f1c2a1e-4b7d-4c1a-9a51-2f0e3d8b7c11",
        "rule_type": "cpu",
        "severity": "WARNING",
        "type": "infra"
    },
    "commonAnnotations": {
        "summary": "Использование CPU > 90%"
    },
    "externalURL": "http://43a7a7047b92:9093",
    "version": "4",
    "groupKey": "{}/{severity=~\"WARNING|CRITICAL\"}:{alertname=\"CPU: Использование > 90%\"}",
    "truncatedAlerts": 0
}
Сообщение 2. Хост app-server-01 восстановился, db-server-02 ещё в алерте

Общий status остаётся firing, а у первого алерта — resolved и заполненный endsAt. Поля верхнего уровня (groupLabels, commonLabels и т. д.) такие же, как в сообщении 1.

{
    "receiver": "webhook-test",
    "status": "firing",
    "alerts": [
        {
            "status": "resolved",
            "labels": {
                "alertgroup": "OS_LINUX",
                "alertname": "CPU: Использование > 90%",
                "component_type": "host",
                "host": "app-server-01",
                "rule_group": "OS_LINUX",
                "rule_id": "6f1c2a1e-4b7d-4c1a-9a51-2f0e3d8b7c11",
                "rule_type": "cpu",
                "service_id_host": "YXBwLXNlcnZlci0wMQ==.1",
                "severity": "WARNING",
                "type": "infra"
            },
            "annotations": {
                "dashboardHost": "https://obp.example.local/dashboard/OS_LINUX/Service/YXBwLXNlcnZlci0wMQ==.1/Proto-Linux-Service",
                "summary": "Использование CPU > 90%",
                "value": "96.5"
            },
            "startsAt": "2026-10-06T08:11:50Z",
            "endsAt": "2026-10-06T08:12:40Z",
            "generatorURL": "https://obp.example.local/vmalert/alert?group_id=6667729631414967694&alert_id=14586754786845147920",
            "fingerprint": "200d0b8aee1248c2"
        },
        {
            "status": "firing",
            "labels": {
                "alertgroup": "OS_LINUX",
                "alertname": "CPU: Использование > 90%",
                "component_type": "host",
                "host": "db-server-02",
                "rule_group": "OS_LINUX",
                "rule_id": "6f1c2a1e-4b7d-4c1a-9a51-2f0e3d8b7c11",
                "rule_type": "cpu",
                "service_id_host": "ZGItc2VydmVyLTAy.1",
                "severity": "WARNING",
                "type": "infra"
            },
            "annotations": {
                "dashboardHost": "https://obp.example.local/dashboard/OS_LINUX/Service/ZGItc2VydmVyLTAy.1/Proto-Linux-Service",
                "summary": "Использование CPU > 90%",
                "value": "93.8"
            },
            "startsAt": "2026-10-06T08:11:50Z",
            "endsAt": "0001-01-01T00:00:00Z",
            "generatorURL": "https://obp.example.local/vmalert/alert?group_id=6667729631414967694&alert_id=6171399778922918722",
            "fingerprint": "da220678177e40b8"
        }
    ],
    "groupLabels": {
        "alertname": "CPU: Использование > 90%"
    },
    "commonLabels": {
        "alertgroup": "OS_LINUX",
        "alertname": "CPU: Использование > 90%",
        "component_type": "host",
        "rule_group": "OS_LINUX",
        "rule_id": "6f1c2a1e-4b7d-4c1a-9a51-2f0e3d8b7c11",
        "rule_type": "cpu",
        "severity": "WARNING",
        "type": "infra"
    },
    "commonAnnotations": {
        "summary": "Использование CPU > 90%"
    },
    "externalURL": "http://43a7a7047b92:9093",
    "version": "4",
    "groupKey": "{}/{severity=~\"WARNING|CRITICAL\"}:{alertname=\"CPU: Использование > 90%\"}",
    "truncatedAlerts": 0
}
Сообщение 3. Оба хоста восстановились

Общий status — resolved, у обоих алертов заполнен endsAt. Алерт app-server-01 пришёл повторно — с теми же fingerprint и startsAt, что и в сообщении 2.

{
    "receiver": "webhook-test",
    "status": "resolved",
    "alerts": [
        {
            "status": "resolved",
            "labels": {
                "alertgroup": "OS_LINUX",
                "alertname": "CPU: Использование > 90%",
                "component_type": "host",
                "host": "app-server-01",
                "rule_group": "OS_LINUX",
                "rule_id": "6f1c2a1e-4b7d-4c1a-9a51-2f0e3d8b7c11",
                "rule_type": "cpu",
                "service_id_host": "YXBwLXNlcnZlci0wMQ==.1",
                "severity": "WARNING",
                "type": "infra"
            },
            "annotations": {
                "dashboardHost": "https://obp.example.local/dashboard/OS_LINUX/Service/YXBwLXNlcnZlci0wMQ==.1/Proto-Linux-Service",
                "summary": "Использование CPU > 90%",
                "value": "96.5"
            },
            "startsAt": "2026-10-06T08:11:50Z",
            "endsAt": "2026-10-06T08:12:40Z",
            "generatorURL": "https://obp.example.local/vmalert/alert?group_id=6667729631414967694&alert_id=14586754786845147920",
            "fingerprint": "200d0b8aee1248c2"
        },
        {
            "status": "resolved",
            "labels": {
                "alertgroup": "OS_LINUX",
                "alertname": "CPU: Использование > 90%",
                "component_type": "host",
                "host": "db-server-02",
                "rule_group": "OS_LINUX",
                "rule_id": "6f1c2a1e-4b7d-4c1a-9a51-2f0e3d8b7c11",
                "rule_type": "cpu",
                "service_id_host": "ZGItc2VydmVyLTAy.1",
                "severity": "WARNING",
                "type": "infra"
            },
            "annotations": {
                "dashboardHost": "https://obp.example.local/dashboard/OS_LINUX/Service/ZGItc2VydmVyLTAy.1/Proto-Linux-Service",
                "summary": "Использование CPU > 90%",
                "value": "93.8"
            },
            "startsAt": "2026-10-06T08:11:50Z",
            "endsAt": "2026-10-06T08:17:30Z",
            "generatorURL": "https://obp.example.local/vmalert/alert?group_id=6667729631414967694&alert_id=6171399778922918722",
            "fingerprint": "da220678177e40b8"
        }
    ],
    "groupLabels": {
        "alertname": "CPU: Использование > 90%"
    },
    "commonLabels": {
        "alertgroup": "OS_LINUX",
        "alertname": "CPU: Использование > 90%",
        "component_type": "host",
        "rule_group": "OS_LINUX",
        "rule_id": "6f1c2a1e-4b7d-4c1a-9a51-2f0e3d8b7c11",
        "rule_type": "cpu",
        "severity": "WARNING",
        "type": "infra"
    },
    "commonAnnotations": {
        "summary": "Использование CPU > 90%"
    },
    "externalURL": "http://43a7a7047b92:9093",
    "version": "4",
    "groupKey": "{}/{severity=~\"WARNING|CRITICAL\"}:{alertname=\"CPU: Использование > 90%\"}",
    "truncatedAlerts": 0
}

Чтобы проверить приёмник без ожидания реального срабатывания, отправьте ему сообщение 1 из примера выше:

curl -i -X POST -H 'Content-Type: application/json' --data @firing.json https://receiver.example.local/hook

Редактирование и удаление каналов

Канал можно изменить или удалить из списка каналов. При редактировании тип канала изменить нельзя — он отображается заблокированным; для смены типа создайте новый канал.

Редактирование канала оповещения Скриншот: форма редактирования канала — тип заблокирован, секретные поля (Пароль SMTP) пусты.


Политики оповещений

Политика (маршрут) определяет, какие алерты доставляются в какой канал. Политики сопоставляют лейблы входящего алерта со своими условиями (матчерами) и направляют совпавшие алерты в выбранный канал.

Список политик

Откройте раздел Инциденты и Алерты > Политики оповещения. Политики проверяются по возрастанию значения поля «Порядок» (приоритета) — сверху вниз. В списке видны матчеры, признак «Продолжение», привязанный канал и лейблы группировки каждой политики.

Список политик оповещений Скриншот: список политик с приоритетами и кнопкой «Добавить».

Создание политики

Нажмите «Добавить» и заполните форму.

Создание политики оповещений Скриншот: форма создания политики с матчерами и выбором канала.

ПолеОбязательноеОписание
Лейблы группировкиДаЛейблы, по которым входящие оповещения объединяются в одну группу (например, alertname, cluster, service). Несколько алертов с одинаковыми значениями этих лейблов придут одним сообщением. Чтобы отключить группировку, используйте специальный символ ....
Каналы оповещенияДаКанал, в который направляются совпавшие алерты. Канал должен быть создан заранее (см. раздел «Каналы оповещений»).
МатчерыДа (≥1)Условия сопоставления лейблов алерта. Каждый матчер — это тройка «ключ — оператор — значение».
ПродолжениеНетПрименять ли последующие политики, если текущая совпала. Выкл. — обработка алерта останавливается на первой совпавшей политике. Вкл. — алерт обрабатывается и следующими политиками.
ПорядокДаПриоритет проверки политики, от 1 до 100. Политики проверяются по возрастанию; на первой совпавшей обработка прекращается, если не включено «Продолжение».
КомментарийНетКраткое описание политики или ссылка на регламент (до 500 символов).

Матчер состоит из трёх частей:

ЧастьОписание
ключИмя лейбла алерта, например severity, service, env, alertname, instance, job.
оператор= равно, != не равно, =~ совпадает с regex, !~ не совпадает с regex.
значениеЗначение для сравнения. Для операторов =~ / !~ — регулярное выражение.

Несколько матчеров в одной политике объединяются по «И»: алерт должен удовлетворять всем условиям.

Примеры матчеров

ЦельМатчер
Любой алерт (политика-перехватчик)alertname =~ .*
Алерты определённого семейства по имениalertname =~ Аномалия.*
Только сервисные алерты (APM)type = apm (или component_type = service)
Алерты конкретного сервисаservice = payment-service (или service =~ payment.*)
Только критичныеseverity = CRITICAL
Только инфраструктурные алертыtype = infra
Конкретная технологияtechnology = postgres
Всё, кроме предупрежденийseverity != WARNING

Матчер alertname =~ .* совпадает с любым алертом — это удобно для политики-«перехватчика» по умолчанию. Разместите её последней (наибольшее значение поля «Порядок»), чтобы она ловила алерты, не подошедшие под более специфичные политики.

Типовые лейблы встроенных правил

Встроенные правила платформы несут стандартный набор лейблов — по ним удобно строить матчеры. Матчеры сопоставляются именно с лейблами, а не с аннотациями (summary, dashboard и т. п. для маршрутизации не используются).

ЛейблТиповые значенияОписание
alertnameимя правилаНазвание сработавшего правила, например Аномалия во времени отклика.
severityCRITICAL, WARNINGКритичность.
typeapm, infra, licensingКатегория правила: приложения/сервисы, инфраструктура, лицензирование.
component_typeservice, endpoint, application, db, host, k8s, container, queue, web_server, virtualizationТип объекта, к которому относится алерт.
technologypostgres, mysql, mongodb, redis, memcached, kafka, nginx, httpd, php_fpm, elasticsearch, vsphere, k8s_node, k8s_ns, k8s_pod, k8s_deploy, k8s_daemon, k8s_statefulКонкретная технология (для инфраструктурных правил).
rule_typeSLA, APDEX, anomaly_calls, anomaly_resptime, anomaly_errors, anomaly_errorperc, anomaly_duration, cpu, cpu_iowait, ram, error_endpointПодтип правила.
service, service_id, service_groupиз метрикиСервис, к которому относится алерт (APM-правила).
endpoint, opNameиз метрикиЭндпоинт/операция (правила по эндпоинтам и ключевым транзакциям).

Собственные правила несут лейбл severity (поле Критичность) и любые лейблы, добавленные в блоке Лейблы (см. Создание правила).

Применение политик

После создания или изменения политик нажмите «Применить», чтобы новая конфигурация маршрутизации вступила в силу.

Применение политик оповещений Скриншот: подтверждение применения настроек политик.


Правила алертинга

Правило определяет условие, при котором генерируется алерт. Условие задаётся выражением на языке PromQL или MetricsQL.

Подробнее о доступных метриках, лейблах сервисов, синтаксисе выражений и аннотациях со ссылками на дашборды см. Метрики и выражения для правил.

Список правил

Откройте раздел Инциденты и Алерты > Правила. Доступны фильтры по типу (встроенные/пользовательские), по группе и по статусу (включено/отключено), а также поиск по названию.

Список правил алертинга Скриншот: список правил с фильтрами по типу, группе и статусу.

Создание правила

Нажмите «Добавить» и заполните форму.

Создание правила алертинга Скриншот: форма создания правила с основными полями.

ПолеОбязательноеОписание
НазваниеДаКороткое описание сути правила (до 64 символов). Отображается на дашбордах и в уведомлениях.
ГруппаДаЛогическая группа правил. Имя группы отображается в дашборде реального времени и в уведомлениях. Можно выбрать существующую группу или ввести новую. Только латинские буквы, цифры и подчёркивание; без пробелов и кириллицы.
КритичностьДаУровень критичности: CRITICAL или WARNING. Сохраняется как лейбл severity (используется в политиках маршрутизации).
ОписаниеДаПонятное описание сути правила (до 200 символов). Отображается в списке правил и в тексте получаемых алертов. Сохраняется как аннотация summary.
ВыражениеДаУсловие правила на PromQL/MetricsQL (до 10 000 символов). Алерт срабатывает, когда выражение возвращает результат. Поле поддерживает подсветку синтаксиса.
forНетДлительность, в течение которой условие должно выполняться, прежде чем алерт перейдёт в статус firing (формат: 30s, 5m, 1h, 1d, 1w). До истечения этого времени алерт находится в статусе pending. Если не задано — алерт срабатывает сразу.
keep_firing_forНетДлительность, в течение которой алерт остаётся в статусе firing после того, как условие перестало выполняться. Откладывает разрешение алерта. Формат как у for.
ЛейблыНетДополнительные пары «ключ — значение», добавляемые к алерту. Используются для группировки и маршрутизации в политиках.
АннотацииНетДополнительные пары «ключ — значение» с метаданными алерта (приходят в текст уведомления). Зарезервированные ключи dashboard, dashboardHost, dashboardContainer формируют ссылки на дашборды — см. Метрики и выражения.
debugНетВыводить ли отладочную информацию в логи (изменения состояния алертов и запросы к источнику данных).
Статус—Состояние правила: включено или отключено. Новое правило по умолчанию создаётся отключённым.

Предпросмотр выражения на графике

В форме правила можно проверить выражение, не дожидаясь срабатывания: нажмите «Показать график», выберите интервал времени — система построит график по текущему выражению.

Предпросмотр выражения на графике Скриншот: предпросмотр PromQL-выражения в виде линейного графика.

Лейблы и аннотации

Лейблы и аннотации задаются как пары «ключ — значение».

Редактор лейблов и аннотаций Скриншот: блоки «Лейблы» и «Аннотации» с добавленными парами.

Применение правил

После добавления, изменения или отключения правил нажмите «Применить». Новые настройки вступят в силу в течение ~1 минуты.

Применение правил алертинга Скриншот: подтверждение применения настроек правил.


Работа с правилами

Над каждым правилом в списке доступен набор действий.

Действия над правилом Скриншот: меню действий правила — просмотр, редактирование, копия, отключение, удаление.

ДействиеОписаниеПрименимо к
ПросмотрОткрыть детали правила: выражение, лейблы, аннотации, статус.Все правила
РедактированиеИзменить параметры правила в форме (как при создании).Пользовательские правила
Создать копиюСоздать редактируемую копию правила. Основной способ кастомизировать встроенное правило.Все правила
Отключить / ВключитьПеревести правило в статус отключено / включено. Отключённое правило не срабатывает.Все правила
УдалитьУдалить правило без возможности восстановления.Только пользовательские

После любого изменения (редактирование, отключение, удаление, добавление) не забудьте нажать «Применить» — иначе изменения не активируются.


Что дальше