Документация
Уведомления
Канал — это место, куда SmartAlert шлёт сообщения. Канал только доставляет. Чтобы заглушить, разобрать или изменить правило, откройте веб-приложение.
На этой странице
| Канал | Тариф | Статус |
|---|---|---|
| Telegram | Free и выше | Доступен |
| Slack | Pro | Доступен |
| Discord | Pro | Доступен |
| Webhook | Pro | Доступен |
Каналов в проекте: 1 на Free, 10 на Pro, 20 на Business.
Telegram
- Откройте Каналы (экран «Куда писать»), введите название канала и нажмите Добавить. SmartAlert выдаст ссылку на бота.
- Откройте ссылку и нажмите Start у бота. Для группового чата добавьте бота в группу и выполните команду там.
- Бот ответит в чате названием проекта. Канал включён.
Ссылка одноразовая и действует 15 минут. На истёкшую и на неизвестную ссылку бот отвечает одинаково: создайте новую ссылку.
Бот один на всех. Создавать своего бота и передавать токен не нужно.
Канал получает сообщения, только пока он активен. Если бота заблокировали, убрали из группы или удалили чат, канал получает статус «отозван», и приложение просит привязать его заново. Короткий сбой Telegram канал не отзывает.
Что в сообщении
- важность, название правила, проекта и контракта;
- значение, на котором сработало правило, и граница: порог, диапазон или норма в этот момент и отклонение от неё;
- время и ссылка на страницу правила.
Сообщение по норме выглядит так: «15 событий Transfer, норма 40, отклонение −25». Знак записан явно: правило на тишину срабатывает ниже нормы.
Когда значение вернулось в норму, второе сообщение сообщает об этом и пишет, сколько это длилось.
Кнопок в сообщении пока нет.
Журнал доставок
Каждая попытка доставки записывается. По журналу видно, почему сообщение не пришло.
| Статус | Что значит |
|---|---|
| отправлено | Канал принял сообщение |
| ошибка | Все попытки не удались, причина в журнале |
| пропущено | Не отправлено намеренно: перерыв правила, исчерпан дневной лимит или канал не активен |
При временной ошибке SmartAlert повторяет отправку до 5 раз в течение 15 минут. Неудавшуюся доставку можно повторить вручную из журнала.
Недоставленное сообщение не скрывает срабатывание: оно остаётся в истории срабатываний.
Slack, Discord, PagerDuty, почта, webhook
Каналы для Pro и выше. Slack, Discord и webhook подключаются по адресу: вставьте URL, нажмите Отправить тест, канал включится после успешной тестовой доставки. Ошибка в адресе видна сразу, а не ночью.
Slack
- В Slack создайте Incoming Webhook для нужного канала (инструкция Slack) и скопируйте его URL.
- В SmartAlert откройте Каналы, нажмите Добавить канал, выберите Slack и вставьте URL.
- Нажмите Отправить тест.
Сообщение: цветная полоса по важности, заголовок, поля «Значение», «Порог / норма», «Контракт» и ссылка «Открыть». Кнопок действий нет.
Discord
- В настройках канала Discord откройте Интеграции, затем Вебхуки, создайте вебхук и скопируйте его URL.
- В SmartAlert: Каналы, Добавить канал, Discord, вставьте URL.
- Нажмите Отправить тест.
Сообщение: embed с цветом по важности и теми же полями.
PagerDuty
Срабатывание открывает инцидент в вашем сервисе PagerDuty и закрывает его само, когда правило вернулось в норму. Посредник не нужен.
- В PagerDuty откройте сервис, вкладку Integrations, добавьте интеграцию Events API v2 и скопируйте Integration Key.
- В SmartAlert: Каналы, Добавить канал, PagerDuty, вставьте ключ. Аккаунт в Европе (адрес …eu.pagerduty.com) — отметьте это под полем.
- Нажмите Отправить тест: в сервисе появится тестовый инцидент и сразу закроется. Канал включится.
Почта
Письмо на адрес, который вы подтвердите: SmartAlert пришлёт ссылку, она действует 7 дней. До подтверждения срабатывания на адрес не приходят.
Писем в день: Pro — 200, Business — 1000, Enterprise — 5000. На Free почты нет. Лимит сбрасывается в 00:00 UTC; сверх него письмо пропускается, остальные каналы работают.
Webhook
JSON-запрос на ваш HTTPS-адрес. Подходит для своего сервиса. PagerDuty и почта — отдельные каналы, выше. SmartAlert создаёт секрет и показывает его один раз, им подписан каждый запрос. Формат, проверка подписи и повторы — в статье Webhook.
Адрес и секрет
- После сохранения адрес в списке каналов показан частично, например
hooks.slack.com/…/XXXX(последние 4 знака). Полный адрес и секрет хранятся зашифрованными и в логах не появляются. - Адрес меняется в меню канала: Изменить адрес. Новый адрес нужно проверить тестом.
- Секрет webhook повторно не показывается. Новый выдаёт Сменить секрет. Он действует сразу, перекрытия со старым нет: обновите секрет у получателя до смены или сразу после неё.
Если канал отключён
Если получатель отвечает на боевую доставку 404 или 410 (вебхук удалён), доставка получает статус «ошибка», а канал — «отключён». Владельцу проекта уходит одно письмо «SmartAlert: канал {название} отключён» со ссылкой «Изменить адрес». Укажите новый адрес и пройдите тест, канал включится снова. Ошибка тестовой доставки канал не отключает: он остаётся неактивным, пока тест не пройдёт.
Правила
- Только HTTPS. Приватные, loopback и link-local адреса отклоняются. Редиректы не выполняются.
- Таймаут: 5 секунд. Ответ 2xx означает «доставлено». Повторы — как у Telegram, см. журнал доставок выше.
- В журнале доставок виден ответ получателя: код и первые 200 символов тела.
- На Free доступен только Telegram.
- При понижении тарифа эти каналы перестают доставлять, в списке пометка «не доставляется: нужен Pro». Каналы сохраняются, доставка возобновится на Pro.
Свой текст уведомления
У правила можно задать свой текст сообщения вместо стандартного, например для публичного Telegram-канала протокола. Один текст на правило, для всех его каналов. Текст без разметки, до 2 000 знаков. Язык — тот, на котором вы его написали.
В текст подставляются переменные:
| Переменная | Что подставляется | Пример |
|---|---|---|
{rule} | Название правила | Вывод больше $50 000 |
{value} | Значение срабатывания с единицей | $52 296 |
{threshold} | Порог с единицей, без знака сравнения | $50 000 |
{network} | Сеть | Ethereum |
{tx_url} | Ссылка на транзакцию в эксплорере | https://etherscan.io/tx/0xab…12 |
{alert_url} | Ссылка на срабатывание в SmartAlert | — |
{rule}{value}{threshold}{network}{tx_url}{alert_url}Числа форматируются на языке канала, как в стандартном сообщении. Если у переменной нет значения, например у срабатывания нет транзакции, подставляется пустая строка, а строка, где остались только пробелы и знаки препинания, не выводится. Фигурные скобки буквально — {{ и }}. С опечаткой в переменной правило не сохранится: форма подскажет правильное имя.
Рядом с полем — превью: как сообщение придёт в Telegram, письмо и PagerDuty. Значения в нём — из последнего срабатывания правила, а если срабатываний не было — пример по условию правила.
Где работает. Свой текст уходит только при срабатывании. «Вернулось в норму» и «Нет данных» приходят стандартными.
- Telegram, Slack, Discord — весь текст. Символы разметки приходят как есть, ссылки — обычным адресом.
- Email — первая строка становится темой письма, весь текст — телом.
- PagerDuty — первая строка в заголовке инцидента, весь текст — в деталях.
- Webhook — поле
text, остальной payload прежний.
Текст длиннее предела канала (Telegram — 4 096 знаков, Discord — 2 000) обрезается с «…» в конце.
Тариф. Pro и выше. На Free виден стандартный текст под замком. После понижения тарифа свой текст работает дальше, изменить его можно только на Pro, а убрать — на любом тарифе.
Сводка за неделю
Раз в неделю — итог прошлой недели: сколько было срабатываний, сколько из них приняли, отклонили и оставили без ответа, сколько ушло в эскалацию. Отдельно — до трёх шумных правил с числами недели («6 из 7 отклонены»).
Настраивается в Настройки проекта → Сводка за неделю.
| Письмо | Сводка в чат | |
|---|---|---|
| Чья | Личная, каждый участник включает своё | Одна на проект |
| Куда | На почту участника | Telegram, Slack, Discord, webhook — один или несколько каналов проекта |
| Когда | Понедельник 08:00 UTC | День недели и время UTC, шаг 15 минут |
| Совет по порогу | Нет | Где подбор нашёл порог — предложенное значение |
| Тариф | Все тарифы | Pro и выше |
Неделя всегда прошлая: с понедельника 00:00 до понедельника 00:00 UTC, какой бы день вы ни выбрали. В канал сводка уходит один раз, а не каждому участнику. Webhook получает JSON с событием digest.weekly.
Тихая неделя. Если срабатываний не было, приходит одна строка. Флажок «Присылать строку, если срабатываний не было» это выключает — тогда в тихую неделю в чат ничего не уйдёт.
Пробная. Кнопка «Отправить пробную» шлёт сводку за прошлую неделю с настоящими числами в отмеченные каналы, до сохранения. Заголовок начинается с «Пробная · ». Не чаще раза в минуту и 20 раз в сутки.
Другие проекты. Включение, день, время и тихую неделю можно применить к другим проектам на Pro и выше, где вы владелец или участник. Каналы не копируются: у каждого проекта свои.
Сводка не уходит, если она выключена, в проекте нет контрактов или ни один отмеченный канал не работает. Причина видна на экране настройки рядом с «Следующая сводка».
Тариф. Сводка в чат — Pro и выше. На Free остаётся письмо по понедельникам; настройка чата сохраняется и снова работает после перехода на Pro.
Нашли ошибку или не нашли ответ? Напишите