Каналы уведомлений
Система оповещения SLOzy поддерживает несколько типов каналов для отправки алертов о нарушениях SLO. Каналы создаются на странице Notification Channels (/channels) и затем используются при настройке Alert Rules.
Поддерживаемые типы
| Тип | Способ доставки | Параметры конфигурации |
|---|---|---|
| Slack | Incoming Webhook | webhook_url — URL вебхука Slack-приложения |
| Telegram | Bot API | bot_token — токен бота от @BotFather, chat_id — ID чата или группы |
| Mattermost | Incoming Webhook | webhook_url — URL входящего вебхука Mattermost, опционально username (имя отправителя) и channel (канал или пользователь) |
| SMTP или API | to, from, опционально provider, api_endpoint, api_key | |
| Webhook | HTTP POST | webhook_url, опционально api_key и headers (JSON) |
Telegram
Создание бота
- Напишите @BotFather в Telegram
- Отправьте
/newbotи следуйте инструкциям - После создания вы получите токен вида
123456789:ABCdefGHIjklMNOpqrsTUVwxyz - Добавьте бота в нужный чат или группу как участника
Получение Chat ID
Для личного чата: напишите боту любое сообщение, затем откройте в браузере:
https://api.telegram.org/bot<TOKEN>/getUpdatesВ ответе найдите "chat":{"id": <CHAT_ID>}.
Для группы: добавьте бота в группу, отправьте сообщение в группу, затем выполните тот же запрос getUpdates.
Настройка в SLOzy
- Перейдите в Notification Channels (
/channels) → Add Channel - Выберите тип Telegram
- Заполните:
- Channel Name — любое название (например, «DevOps Telegram»)
- Bot Token — токен, полученный от @BotFather
- Chat ID — ID чата (число, может быть отрицательным для групп)
- Нажмите Create
Формат сообщения
Сообщение отправляется в Markdown:
*Заголовок алерта*
Текст сообщенияMattermost
Mattermost поддерживает входящие вебхуки (Incoming Webhooks), аналогично Slack.
Создание вебхука
- В Mattermost перейдите в Main Menu → Integrations → Incoming Webhook
- Нажмите Add Incoming Webhook
- Выберите канал, укажите имя (например, «SLOzy Alerts»)
- Скопируйте URL вида
https://mattermost.example.com/hooks/xxx
Настройка в SLOzy
- Перейдите в Notification Channels (
/channels) → Add Channel - Выберите тип Mattermost
- Заполните:
- Channel Name — любое название
- Webhook URL — URL из Mattermost
- Username (опционально) — имя бота-отправителя
- Channel (опционально) — переопределение канала (
@usernameили~channel-name)
- Нажмите Create
Использование в Alert Rules
После создания канала он появится в выпадающем списке на странице Alert Rules (/alerts) при создании или редактировании правила. При создании правила выберите нужный канал и установите приоритет.
Также доступна кнопка Test для каждой существующей алерт-правила — она отправляет тестовое уведомление через выбранный канал, чтобы проверить, что всё настроено корректно.
API
Все каналы создаются и управляются через REST API:
| Метод | Эндпоинт | Описание |
|---|---|---|
GET | /api/v1/notifications/channels | Список всех каналов |
POST | /api/v1/notifications/channels | Создать канал |
PUT | /api/v1/notifications/channels/:id | Обновить канал |
DELETE | /api/v1/notifications/channels/:id | Удалить канал |
Пример создания Telegram-канала через curl:
curl -X POST http://localhost:8080/api/v1/notifications/channels \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <token>" \
-d '{
"name": "My Telegram",
"channel_type": "telegram",
"configuration": {
"bot_token": "123456789:ABCdefGHIjklMNOpqrsTUVwxyz",
"chat_id": "-1001234567890"
}
}'