Перейти к основному контенту

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 — это точка ответственности за инциденты, а не ещё один логгер или бизнес-модуль.