Умные HTTP-алерты: замедление до жёсткого дауна

Помимо up/down, у HTTP-мониторов можно включить smart alerts: сканер смотрит последние проверки, сравнивает медианы задержек, считает жёсткие ошибки и «дребезг» состояний — затем открывает degraded-инцидент и шлёт отдельное письмо с темой про деградацию, с часовым кулдауном между отправками.

Что реально считает код

Хранятся до двадцати последних сканов. Сравниваются медианы времени ответа у десяти старых и десяти новых успешных проверок, считаются ответы с кодами уровня 5xx и число переключений success/failure как признак дребезга — прежде чем пометить деградацию.

Зачем тип degraded

Degraded — отдельный тип инцидента: предупредить о медленном или нестабильном поведении без полноценного «всё упало», оставаясь в той же модели контактов, что и обычные дауны.

Письма и кулдаун

Уведомления идут через те же контакты, но тема берётся из отдельной строки перевода про деградацию; повторная отправка не чаще одного часа на монитор.

Кому доступно включение

В текущей матрице планов smart alerts при создании монитора разрешены для оплаченного Enterprise (и superuser в dev). На Starter/Team переключатель недоступен — так совпадает выставление ожиданий и нагрузка поддержки.

Отличие от гайда по времени ответа

Гайд про response time объясняет перцентили для людей. Smart alerts — жёсткий набор правил на той же истории сканов, чтобы автоматически поднять инцидент и письмо.

Отличие от SLA-отчётов

SLA CSV суммирует аптайм за окно. Smart alerts реагируют на коротком скользящем окне проверок — раньше, чем закроется отчётный период SLA.

Осторожность в эксплуатации

Нужна накопленная история — у нового монитора сначала мало сканов. Используйте как дополнительный слой к обычным даун-алертам и ранбуку.

Где настраивать

На карточке HTTP-монитора при eligible-плане появляется блок smart alerts — включите его вместе с нужным контактом.

Что можно проверять в SitePuls на этой странице

  • Эвристика smart alerts вызывается для HTTP-мониторов с доступным в UI переключателем; остальные типы следуют своим правилам инцидентов без этого окна из двадцати сканов.
  • Берутся последние двадцать сканов: медианы задержек у десяти старых и десяти новых успешных проверок, число жёстких ошибок и число переключений success/failure как признак дребезга.
  • При срабатывании порогов открывается degraded-инцидент и может уйти письмо `_notify_degraded` с отдельной темой из переводов; между отправками — кулдаун около часа на монитор.
  • Включение smart alerts при создании монитора разрешено для оплаченного Enterprise (и superuser в dev) в текущей матрице планов; Starter/Team — переключатель выключен.

Куда уходят оповещения об инцидентах

  • Адреса электронной почты в контактах получают письма при открытии и закрытии инцидентов (в рамках настроек уведомлений).
  • Уведомления в Telegram через бота SitePuls после привязки чата к контакту (включая сценарий /start для ожидающих контактов).
  • HTTPS-вебхуки с JSON: тип события, идентификаторы монитора, статус, время, при необходимости id инцидента и короткое сообщение — для своих интеграций.
  • Режим Slack-compatible incoming webhook: отдельный формат полезной нагрузки в настройках контакта.

FAQ

Smart alerts заменяют обычные даун-уведомления?

Нет. Жёсткие падения идут по стандартному пути; smart добавляет degraded и отдельное письмо с кулдауном.

Работает для API или heartbeat?

Хук в коде вызывается для HTTP-мониторов с доступным в UI переключателем.

Какие пороги задержки?

Сравнение медиан десяти старых и десяти новых успешных сканов: деградация, если новая медиана ≥800 мс и в ≥1.8 раза выше базы, либо сработали пороги по ошибкам/дребезгу.

Сколько ошибок нужно?

Среди последних двадцати сканов три и более с жёсткой классификацией ошибки дают вклад в degraded.

Что такое flapping?

Больше трёх переключений между классами success и error в том же окне из двадцати сканов.

Можно отключить после включения?

Да — чекбокс на странице монитора, сохранение пишет `smart_alert_enabled` как обычное поле.

Виден ли degraded на публичном статусе?

Публичные страницы строятся из включённых мониторов и инцидентов; см. гайд по public status для колонок.

С чего читать?

Сначала аптайм и инциденты, затем response time для контекста перцентилей, затем возвращайтесь сюда к автоматическим правилам.