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

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

ИсточникEndpoint
AlertManager, GrafanaPOST /api/v1/integrations/{apiKey}/alerts
Zabbix, webhookPOST /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",
  "alerts": [
    {
      "status": "firing",
      "labels": { "alertname": "HighCPU", "severity": "critical" }
    }
  ]
}

Жизненным циклом управляет только верхнеуровневый status: firing создаёт или обновляет алерт, resolved закрывает его. alerts[].status на цикл не влияет.

Тело, в котором значение лейбла или аннотации не строка, не принимается и алерта не будет. Сам AlertManager так не шлёт; проверьте, если тело собирает промежуточный скрипт.

GenericWebhookPayload

ПолеОбязательноТипОписание
titleдастрокаЗаголовок алерта
descriptionнетстрокаПодробное описание
sourceнетстрокаИсточник, показывается в системных полях карточки
statusнетстрокаfiring или resolved, по умолчанию firing
dedup_keyнетстрокаКлюч дедупликации
labelsнетобъектЛейблы «строка → строка»
annotationsнетобъектТексты «строка → строка»: summary, description, runbook_url, dashboard_url
{ "title": "Disk space low on db-01" }

Если задана annotations.summary, она становится заголовком алерта, а title показывается второй строкой. runbook_url и dashboard_url с полным http(s)-адресом становятся ссылками в карточке.

Нестроковое значение лейбла или аннотации пропадает вместе с ключом. Алерт при этом создаётся, но условия политик и сайленсов по этому ключу не совпадут: сайленс по instance не погасит алерт с "instance": 1 вместо "instance": "1". Приводите значения к строке на стороне отправителя. Если labels или annotations целиком не объект, поле сохраняется пустым.

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