Common.Observability.Incident — Централизованный обработчик инцидентов
Common.Observability.Incident
Incident — централизованный обработчик инцидентов в Metabot. Предназначен для регистрации и уведомления о сбоях, ошибках и критических состояниях системы.
Класс не содержит бизнес-логики и не влияет на выполнение сценариев. Он используется как реакция на события (например, из Tracer) или вызывается напрямую из сценариев.
Назначение
Incident решает одну задачу: превратить техническое событие в уведомление для команды.
Типичные случаи:
- сбой профилирования;
- ошибка отражения / навигации;
- неконсистентное состояние данных;
- критические ошибки AI / runtime.
Уведомления
В текущей реализации Incident использует Telegram через плагин:
Common.Notifications.Telegram
Для работы требуются два атрибута бота:
-
SUPPORT_TELEGRAM_BOT_TOKEN— токен Telegram-бота -
SUPPORT_TELEGRAM_CHAT_ID— ID группы или канала для уведомлений
Incident сам не хранит токены и не управляет доступами.
Шаблоны сообщений
Тексты уведомлений настраиваются через атрибут бота
INCIDENT_TEMPLATES (JSON).
Пример:
{
"profiling_failed": {
"ru": {
"title": "🧭 ORION · Сбой профилирования",
"body": [
"Профиль не был корректно сформирован.",
"",
"Lead ID: {{lead_id}}",
"{{error}}"
]
}
}
}
Поддерживаются:
- разные типы инцидентов;
- несколько языков;
- плейсхолдеры
{{variable}}.
Использование
Incident может вызываться:
- напрямую из сценариев;
- автоматически из
Common.Observability.Tracer(при включённой конфигурации).
Это позволяет централизовать обработку ошибок без дублирования кода уведомлений.
Incident — это точка ответственности за инциденты, а не ещё один логгер или бизнес-модуль.
Нет комментариев