# Отправка сообщений ## Как работает отправка 1. **Получение алерта:** - Система мониторинга (Grafana, Zabbix, AlertManager) отправляет webhook на эндпоинт Message Gateway - Message Gateway валидирует данные алерта через Pydantic модели - Увеличивается счетчик полученных сообщений 2. **Обработка алерта:** - Проверяются стоп-слова (если алерт заблокирован, сообщение не отправляется) - Загружается конфигурация группы из `config/groups.json` - Определяется мессенджер (Telegram, MAX/VK) из конфигурации группы или параметра запроса 3. **Формирование сообщения:** - Загружается шаблон сообщения из `templates/` - Шаблон рендерится с данными алерта через Jinja2 - Формируются кнопки для перехода к Grafana/Prometheus/Jira 4. **Создание Jira тикета (опционально):** - Если Jira включена и выполнены условия, создается тикет в Jira - Загружается маппинг из `config/jira_mapping.json` - Находится подходящий маппинг на основе условий алерта - Создается тикет с описанием из шаблона `jira_common.tmpl` - Добавляется кнопка для перехода к тикету в Jira 5. **Отправка в мессенджер:** - Создается клиент мессенджера через `MessengerFactory` - Проверяется поддержка тредов (для MAX/VK треды не поддерживаются) - Сообщение отправляется в мессенджер через клиент - Увеличивается счетчик отправленных сообщений ## Поддержка мессенджеров ### Telegram - ✅ Полная поддержка текстовых сообщений - ✅ Поддержка медиа (фото, видео, аудио, документы) - ✅ Поддержка тредов (threads) - ✅ Поддержка кнопок (InlineKeyboardMarkup) - ✅ Поддержка HTML и Markdown форматирования ### MAX/VK - ✅ Поддержка текстовых сообщений - ✅ Поддержка медиа (фото, видео, аудио, документы) - ❌ Треды не поддерживаются (thread_id игнорируется) - ✅ Поддержка кнопок (в формате VK API) - ✅ Конвертация HTML в формат VK **Различия в отправке:** - Telegram использует Bot API, MAX/VK использует VK API - Telegram поддерживает треды, MAX/VK - нет - Формат кнопок различается (Telegram - InlineKeyboardMarkup, MAX/VK - JSON) - HTML форматирование конвертируется в формат VK для MAX/VK