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