Уведомления
Уведомления устроены из двух сущностей:
- Канал — куда доставлять: email-адрес, Telegram-аккаунт, URL вебхука и т.д. Канал создаётся один раз и переиспользуется.
- Правило — что доставлять: связывает канал с одним монитором или со всеми мониторами сразу, включая те, что вы создадите в будущем.
При падении приходит сообщение о недоступности, при восстановлении — отдельное сообщение о том, что сервис снова работает. Сбой предварительно подтверждается из нескольких независимых точек сети проверки StatusFox.
Каналы и тарифы
| Канал | Тариф | Назначение (destination) |
|---|---|---|
email | Бесплатно, на любом тарифе | Email аккаунта (подставляется автоматически) |
telegram | Платные тарифы | Привязанный Telegram-аккаунт |
webhook | Платные тарифы | HTTPS-URL вашего обработчика |
ntfy | Платные тарифы | URL темы ntfy, например https://ntfy.sh/mytopic |
Особенности:
- Email всегда отправляется на адрес аккаунта — указать сторонний адрес нельзя (это защита от рассылки на чужие ящики).
- Telegram требует один раз привязать аккаунт (см. ниже).
- Попытка создать канал, который не входит в ваш тариф, вернёт ошибку
403.
Правила: один монитор или все
Правило задаёт область действия (scope):
all— канал получает события всех мониторов аккаунта, включая будущие. Удобно как «страховка по умолчанию»: новый монитор автоматически покрыт уведомлениями.monitor— только события одного конкретного монитора.
Правила комбинируются: например, email-правило на все мониторы плюс Telegram-правило на критичный продакшен-монитор.
Тестовое уведомление
У каждого сохранённого канала в разделе «Оповещения» есть кнопка «Тест» — она отправляет в канал настоящее тестовое сообщение, чтобы убедиться, что адрес указан верно и доставка работает, не дожидаясь реального сбоя. Для webhook приходит JSON в боевом формате с полем "test": true и статусом "test" — обработчик можно проверить тем же кодом.
Повторные тесты ограничены по времени на каждый тип канала:
| Канал | Пауза между тестами |
|---|---|
email | 60 секунд |
telegram, webhook, ntfy | 15 секунд |
Пока пауза не истекла, кнопка показывает обратный отсчёт; по API сервер отвечает 429 с точным временем до следующей попытки.
Подключение Telegram
- В разделе «Уведомления» (или «Настройки») нажмите «Привязать Telegram» — StatusFox выдаст ссылку вида
https://t.me/StatusFoxBot?start=<токен>. - Откройте ссылку — Telegram запустит чат с ботом и отправит ему токен.
- Бот подтвердит привязку; ссылка действует 15 минут, потом нужно запросить новую.
После привязки создайте канал типа telegram и правило для него. Отвязать аккаунт можно в любой момент — новые сообщения перестанут приходить.
Формат webhook
Канал webhook отправляет POST с JSON-телом на ваш URL при каждой смене статуса:
{
"monitor_id": "m_9f2c…",
"monitor_name": "Основной сайт",
"target": "https://example.ru",
"check_type": "http",
"status": "down",
"at_ms": 1719990000000,
"locations": [
{ "status": "down", "country": "RU", "city": "Moscow" },
{ "status": "down", "country": "NL", "city": "Amsterdam" }
]
}
status— новый статус:up,downилиdegraded;at_ms— момент перехода, unix-время в миллисекундах;locations— точки проверки, наблюдавшие событие, с их статусами.
Отвечайте кодом 2xx. Доставка выполняется «как минимум один раз» — редкие дубли возможны, дедуплицируйте по паре (monitor_id, at_ms). URL должен быть публично доступным HTTPS-адресом (локальные и приватные адреса отклоняются).
Управление по API
Каналы и правила полностью управляются через REST API — /v1/notification-channels и /v1/notification-rules, см. справочник API.