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:
@ -25,15 +25,28 @@ class Row:
|
||||
return self._data.get(key, default)
|
||||
|
||||
|
||||
class _FakeTxn:
|
||||
async def __aenter__(self) -> None:
|
||||
return None
|
||||
|
||||
async def __aexit__(self, *args: Any) -> None:
|
||||
return None
|
||||
|
||||
|
||||
class IrmFakeConn:
|
||||
def __init__(self, store: IrmFakeStore) -> None:
|
||||
self.store = store
|
||||
|
||||
def transaction(self) -> _FakeTxn:
|
||||
return _FakeTxn()
|
||||
|
||||
def _q(self, query: str) -> str:
|
||||
return " ".join(query.split())
|
||||
|
||||
async def execute(self, query: str, *args: Any) -> str:
|
||||
q = self._q(query)
|
||||
if "INSERT INTO incident_alert_links" in q:
|
||||
return "INSERT 0 1"
|
||||
if "INSERT INTO incidents" in q and "ingress_event_id" in q:
|
||||
self.store.insert_incident_alert(
|
||||
args[0], args[1], args[2], args[3], args[4]
|
||||
|
||||
Reference in New Issue
Block a user