Files
MessageGateway/docs/messaging.md
Sergey Antropov b90def35ed Initial commit: Message Gateway project
- FastAPI приложение для отправки мониторинговых алертов в мессенджеры
- Поддержка Telegram и MAX/VK
- Интеграция с Grafana, Zabbix, AlertManager
- Автоматическое создание тикетов в Jira
- Управление группами мессенджеров через API
- Декораторы для авторизации и скрытия эндпоинтов
- Подробная документация в папке docs/

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-11-12 20:25:11 +03:00

55 lines
3.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Отправка сообщений
## Как работает отправка
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