release: v1.9.0 — IRM-алерты отдельно от инцидентов
- Alembic 005: таблицы irm_alerts и incident_alert_links - Модуль alerts: API/UI, Ack/Resolve, привязка к инциденту через alert_ids - Вебхук Grafana: одна транзакция ingress + irm_alerts; разбор payload в grafana_payload - По умолчанию инцидент из вебхука не создаётся (AUTO_INCIDENT_FROM_ALERT) - Документация IRM_GRAFANA_PARITY.md, обновления IRM.md и CHANGELOG Made-with: Cursor
This commit is contained in:
26
tests/test_grafana_payload.py
Normal file
26
tests/test_grafana_payload.py
Normal file
@ -0,0 +1,26 @@
|
||||
"""Парсинг полей из тела вебхука Grafana."""
|
||||
|
||||
from onguard24.ingress.grafana_payload import extract_alert_row_from_grafana_body
|
||||
|
||||
|
||||
def test_extract_title_and_severity_from_unified() -> None:
|
||||
body = {
|
||||
"title": "RuleName",
|
||||
"alerts": [
|
||||
{
|
||||
"labels": {"severity": "critical", "alertname": "X"},
|
||||
"fingerprint": "abc",
|
||||
}
|
||||
],
|
||||
}
|
||||
title, sev, labels, fp = extract_alert_row_from_grafana_body(body)
|
||||
assert title == "RuleName"
|
||||
assert sev == "critical"
|
||||
assert labels.get("alertname") == "X"
|
||||
assert fp == "abc"
|
||||
|
||||
|
||||
def test_extract_empty_title_uses_alertname() -> None:
|
||||
body = {"alerts": [{"labels": {"alertname": "HostDown"}}]}
|
||||
title, _, _, _ = extract_alert_row_from_grafana_body(body)
|
||||
assert title == "HostDown"
|
||||
Reference in New Issue
Block a user