Создание системы мониторинга доступности — задача не из простых. Многие инструменты полагаются на один сервер, который посылает запросы к вашему сервису и определяет его работоспособность. Такой подход может привести к ложным срабатываниям: сеть может испытывать временные проблемы, что создаёт ложное впечатление о недоступности приложения.
Чтобы решить эту проблему, разработчик представил TrustMonitor, который использует распределённые проверки для повышения надежности уведомлений. Основная идея заключается в том, что каждое событие проходит несколько этапов, минимизирующих вероятность ложноположительных срабатываний.
Архитектура TrustMonitor
Система работает по следующему алгоритму: сначала создаётся задание для проверки, затем первичный монитор производит запрос, после чего вторичный монитор выполняет проверку для подтверждения результата. Если проверка завершилась неудачей, инцидент фиксируется с указанием времени и причины сбоя.
Ключевые особенности
Данное решение включает несколько важных компонентов:
- Планировщик: Управляет заданиями на проверку с возможностью настройки интервалов и условия срабатывания.
- Первичный монитор: Выполняет начальный запрос, используя возможности FastAPI для обработки асинхронных проверок.
- Вторичная проверка: Подтверждает результаты первичного монитора и исключает ложные срабатывания.
- Криптографическая подпись: Все инциденты подписываются для предотвращения подделки данных, что упрощает аудит и проверку на соответствие SLA.
Условно говоря, значение имеет не только фиксация инцидентов, но и их подлинность.
Польза для разработчиков
Данная система может значительно сократить количество ложных срабатываний, что улучшает работу команд разработчиков. Если инженеры могут быть уверены в точности уведомлений, это повышает общую эффективность процессов реагирования на сбои.
Внедрение подобных систем мониторинга имеет потенциал не только для стартапов, но и для крупных компаний, где критически важна доступность сервисов.
В будущем подобные решения могут расширяться, интегрируясь с другими инструментами DevOps и обеспечивая более комплексное мониторинг.


