Формат payload для приёма алертов
Точные форматы тела запроса для AlertManager и webhook.
| Источник | Endpoint |
|---|---|
| AlertManager, Grafana | POST /api/v1/integrations/{apiKey}/alerts |
| Zabbix, webhook | POST /api/v1/integrations/{apiKey}/webhook |
Успешный приём возвращает 202. В обоих форматах значения labels и
annotations строковые, null означает пустое значение с сохранением ключа.
Отсутствующий или неизвестный status обрабатывается как firing: отправляйте
точные firing и resolved.
AlertManagerPayload
| Поле | Обязательно | Тип | Описание |
|---|---|---|---|
alerts | да | массив | Алерты батча |
version | нет | строка | Версия формата AlertManager |
groupKey | нет | строка | Ключ группировки AlertManager |
status | нет | строка | Статус группы: firing или resolved |
Элемент alerts[]:
| Поле | Обязательно | Тип | Описание |
|---|---|---|---|
status | да | строка | Статус элемента |
labels | да | объект | Лейблы, значения строки |
annotations | нет | объект | Аннотации, значения строки |
startsAt | нет | дата-время | Время начала |
endsAt | нет | дата-время | Время окончания |
generatorURL | нет | строка | Ссылка на источник |
fingerprint | нет | строка | Отпечаток от AlertManager |
Жизненным циклом управляет только верхнеуровневый status: firing создаёт
или обновляет алерт, resolved закрывает его. alerts[].status на цикл не
влияет.
Тело, в котором значение лейбла или аннотации не строка, не принимается и алерта не будет. Сам AlertManager так не шлёт; проверьте, если тело собирает промежуточный скрипт.
GenericWebhookPayload
| Поле | Обязательно | Тип | Описание |
|---|---|---|---|
title | да | строка | Заголовок алерта |
description | нет | строка | Подробное описание |
source | нет | строка | Источник, показывается в системных полях карточки |
status | нет | строка | firing или resolved, по умолчанию firing |
dedup_key | нет | строка | Ключ дедупликации |
labels | нет | объект | Лейблы «строка → строка» |
annotations | нет | объект | Тексты «строка → строка»: summary, description, runbook_url, dashboard_url |
Если задана annotations.summary, она становится заголовком алерта, а title
показывается второй строкой. runbook_url и dashboard_url с полным
http(s)-адресом становятся ссылками в карточке.
Нестроковое значение лейбла или аннотации пропадает вместе с ключом. Алерт
при этом создаётся, но условия политик и сайленсов по этому ключу не совпадут:
сайленс по instance не погасит алерт с "instance": 1 вместо "instance": "1". Приводите значения к строке на стороне отправителя. Если labels или
annotations целиком не объект, поле сохраняется пустым.