Skip to content

Каналы уведомлений

Система оповещения SLOzy поддерживает несколько типов каналов для отправки алертов о нарушениях SLO. Каналы создаются на странице Notification Channels (/channels) и затем используются при настройке Alert Rules.

Поддерживаемые типы

ТипСпособ доставкиПараметры конфигурации
SlackIncoming Webhookwebhook_url — URL вебхука Slack-приложения
TelegramBot APIbot_token — токен бота от @BotFather, chat_id — ID чата или группы
MattermostIncoming Webhookwebhook_url — URL входящего вебхука Mattermost, опционально username (имя отправителя) и channel (канал или пользователь)
EmailSMTP или APIto, from, опционально provider, api_endpoint, api_key
WebhookHTTP POSTwebhook_url, опционально api_key и headers (JSON)

Telegram

Создание бота

  1. Напишите @BotFather в Telegram
  2. Отправьте /newbot и следуйте инструкциям
  3. После создания вы получите токен вида 123456789:ABCdefGHIjklMNOpqrsTUVwxyz
  4. Добавьте бота в нужный чат или группу как участника

Получение Chat ID

Для личного чата: напишите боту любое сообщение, затем откройте в браузере:

https://api.telegram.org/bot<TOKEN>/getUpdates

В ответе найдите "chat":{"id": <CHAT_ID>}.

Для группы: добавьте бота в группу, отправьте сообщение в группу, затем выполните тот же запрос getUpdates.

Настройка в SLOzy

  1. Перейдите в Notification Channels (/channels) → Add Channel
  2. Выберите тип Telegram
  3. Заполните:
    • Channel Name — любое название (например, «DevOps Telegram»)
    • Bot Token — токен, полученный от @BotFather
    • Chat ID — ID чата (число, может быть отрицательным для групп)
  4. Нажмите Create

Формат сообщения

Сообщение отправляется в Markdown:

*Заголовок алерта*
Текст сообщения

Mattermost

Mattermost поддерживает входящие вебхуки (Incoming Webhooks), аналогично Slack.

Создание вебхука

  1. В Mattermost перейдите в Main MenuIntegrationsIncoming Webhook
  2. Нажмите Add Incoming Webhook
  3. Выберите канал, укажите имя (например, «SLOzy Alerts»)
  4. Скопируйте URL вида https://mattermost.example.com/hooks/xxx

Настройка в SLOzy

  1. Перейдите в Notification Channels (/channels) → Add Channel
  2. Выберите тип Mattermost
  3. Заполните:
    • Channel Name — любое название
    • Webhook URL — URL из Mattermost
    • Username (опционально) — имя бота-отправителя
    • Channel (опционально) — переопределение канала (@username или ~channel-name)
  4. Нажмите 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:

bash
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"
    }
  }'