Уведомления

Уведомления устроены из двух сущностей:

При падении приходит сообщение о недоступности, при восстановлении — отдельное сообщение о том, что сервис снова работает. Сбой предварительно подтверждается из нескольких независимых точек сети проверки StatusFox.

Каналы и тарифы

КаналТарифНазначение (destination)
emailБесплатно, на любом тарифеEmail аккаунта (подставляется автоматически)
telegramПлатные тарифыПривязанный Telegram-аккаунт
webhookПлатные тарифыHTTPS-URL вашего обработчика
ntfyПлатные тарифыURL темы ntfy, например https://ntfy.sh/mytopic

Особенности:

Правила: один монитор или все

Правило задаёт область действия (scope):

Правила комбинируются: например, email-правило на все мониторы плюс Telegram-правило на критичный продакшен-монитор.

Тестовое уведомление

У каждого сохранённого канала в разделе «Оповещения» есть кнопка «Тест» — она отправляет в канал настоящее тестовое сообщение, чтобы убедиться, что адрес указан верно и доставка работает, не дожидаясь реального сбоя. Для webhook приходит JSON в боевом формате с полем "test": true и статусом "test" — обработчик можно проверить тем же кодом.

Повторные тесты ограничены по времени на каждый тип канала:

КаналПауза между тестами
email60 секунд
telegram, webhook, ntfy15 секунд

Пока пауза не истекла, кнопка показывает обратный отсчёт; по API сервер отвечает 429 с точным временем до следующей попытки.

Подключение Telegram

  1. В разделе «Уведомления» (или «Настройки») нажмите «Привязать Telegram» — StatusFox выдаст ссылку вида https://t.me/StatusFoxBot?start=<токен>.
  2. Откройте ссылку — Telegram запустит чат с ботом и отправит ему токен.
  3. Бот подтвердит привязку; ссылка действует 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" }
  ]
}

Отвечайте кодом 2xx. Доставка выполняется «как минимум один раз» — редкие дубли возможны, дедуплицируйте по паре (monitor_id, at_ms). URL должен быть публично доступным HTTPS-адресом (локальные и приватные адреса отклоняются).

Управление по API

Каналы и правила полностью управляются через REST API — /v1/notification-channels и /v1/notification-rules, см. справочник API.