Multi-region проверка сбоев
Когда мониторинг работает только из одной точки, кратковременный сбой маршрутизации у нашего интернет-провайдера может разбудить вас в три часа ночи ложной тревогой. Проверка из нескольких регионов (multi-region) решает эту проблему: сбой подтверждается только тогда, когда о нём сообщает основной сервер и хотя бы один резервный в другом регионе или у другого интернет-провайдера.
Как это работает
- Основная проверка (с нашего центрального сервера) сообщает DOWN (недоступно).
- Перед отправкой уведомления система вызывает резервный воркер в другом регионе.
- Воркер выполняет собственный тест и обычно в течение нескольких секунд возвращает UP или DOWN (зависит от таймаута монитора).
- Если резервный воркер также подтверждает DOWN, монитор помечается как недоступный и отправляются уведомления.
- Если основной сервер сообщил DOWN, а резервный вернул UP, это была ложная тревога (по-английски flake) - уведомление не отправляется.
Когда запускается консенсус
Проверка из нескольких регионов вызывается не при каждой проверке, а только в чётко определённых случаях, чтобы не замедлять обычные измерения:
- Основной сервер (primary) сначала выполняет собственную проверку, включая внутренние повторы (2 попытки с короткой паузой).
- Консенсус запускается только тогда, когда основной сервер и после повтора сообщает DOWN. Если всё в порядке, резервные регионы вообще не вызываются.
- Это относится только к мониторам типа http (без многошаговых сценариев), tcp и ping. Остальные типы (ssl, dns, домен, визуальный, heartbeat) его не используют.
Как принимается решение о сбое
После того как основной сервер сообщает DOWN, система запрашивает независимую проверку у доступных резервных воркеров в других регионах. По результатам она подсчитывает, сколько точек подтвердили сбой:
- Монитор помечается как недоступный только тогда, когда количество сообщений DOWN достигает заданного порога (по умолчанию 2 региона, включая основной).
- Если порог не достигнут (например, основной сообщил DOWN, а резервный UP), это ложная тревога: монитор остаётся в состоянии UP и уведомление не отправляется. В качестве времени отклика используется среднее по регионам, ответившим корректно.
- Резервный воркер, который в данный момент не отвечает, тихо пропускается и не учитывается в голосовании.
Кто и как это включает
Проверка из нескольких регионов - это необязательная функция уровня всей платформы, которой управляет администратор ePulz.io. Регионы не фиксированы: администратор добавляет резервные воркеры по мере необходимости (например, основной сервер плюс один или два облачных узла в других странах) и задаёт, сколько из них должны подтвердить сбой.
Как это отображается в интерфейсе
В деталях монитора при сбое, прошедшем консенсус, вы видите результат проверки из каждой точки, например:
consensus: primary:down, eu1:down
result: DOWN (2 of 2 confirmed)
На публичной странице статуса посетители не видят никаких технических деталей: они получают только проверенный, достоверный статус сервиса без ложных тревог.
Практические последствия
- Меньше ложных уведомлений: кратковременный сбой на маршруте к одному провайдеру отфильтровывается проверкой из другого региона.
- Немного большее время обнаружения: при подтверждении сбоя добавляется несколько секунд по сравнению с измерением только из одной точки.
- Более надёжная история: в инциденты и статистику доступности записываются только реальные сбои, а не локальные сетевые колебания.