IncidentGarden

Формат payload для приёма алертов

Точные форматы тела запроса для AlertManager и обобщённого webhook.

Алерты принимаются по двум форматам, на двух разных endpoint.

ИсточникEndpoint
AlertManagerPOST /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

Минимальный пример:

{
  "status": "firing",
  "alerts": [
    {
      "status": "firing",
      "labels": { "alertname": "HighCPU", "severity": "critical" }
    }
  ]
}

Статус группы 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нетобъектОбъект «строка → строка» с метками

Минимальный пример:

{ "title": "Disk space low on db-01" }

Статус обобщённого webhook

Поддерживаются два значения поля status:

  • firing создаёт или обновляет активный алерт;
  • resolved переводит соответствующий алерт в статус resolved.

Если поле отсутствует или содержит другое значение, событие обрабатывается как firing. Интегратор отвечает за отправку точных значений firing и resolved; Incident Garden не исправляет опечатки и не интерпретирует дополнительные статусы источника.

Для повторного события, сведённого с существующим алертом, исходное неподдерживаемое значение status может не появиться в журнале алерта. Если фактическое состояние отличается от ожидаемого, проверьте тело запроса и журнал отправки webhook на стороне источника.

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