Monitor
URL → проверка → история → статистика → уведомление
Сервис мониторинга сайтов и API. Автоматически проверяет доступность сервисов, сохраняет историю, считает uptime и время ответа, а при изменении состояния отправляет уведомление в Telegram.
Узнать о проблеме
раньше пользователя
Если сайт или API становится недоступен, проблема может обнаружиться только тогда, когда на неё пожалуется пользователь.
Monitor регулярно проверяет указанные URL и фиксирует результат каждой проверки. При изменении состояния система сразу отправляет уведомление.
При этом история проверок остаётся доступной, поэтому можно посмотреть не только текущий статус, но и то, как сервис работал раньше.
Проверка работает
без участия пользователя
Monitor
Пользователь добавляет URL и задаёт название монитора.
Beat
Celery Beat запускает периодическую проверку.
Worker
Celery Worker выполняет HTTP-запрос и измеряет время ответа.
Database
Результат проверки сохраняется в PostgreSQL.
Telegram
При изменении состояния отправляется уведомление.
Не просто «работает / не работает»
Каждая проверка сохраняет HTTP status code, время ответа, статус и возможную ошибку.
Поэтому можно увидеть не только факт сбоя, но и посмотреть историю состояния сервиса и изменение времени ответа.
Сбой не должен остаться незамеченным
Monitor отслеживает изменение состояния монитора. Если сервис был доступен и стал недоступен, система отправляет сообщение в Telegram.
Когда сервис снова становится доступен, отправляется отдельное уведомление о восстановлении.
Состояние сервисов
на одном экране
Можно посмотреть, что происходило раньше
Для каждого монитора хранится история проверок. В ней доступны статус, HTTP-код, время ответа, ошибка и время выполнения проверки.
Историю можно фильтровать по состоянию и использовать для анализа стабильности сервиса.
Для статистики доступны периоды 1 час, 24 часа, 7 дней и 30 дней.
Мониторинг
для нескольких пользователей
Register
Пользователь создаёт аккаунт с email и паролем.
JWT
После авторизации API выдаёт access token.
Isolation
Каждый пользователь получает доступ только к своим мониторам.
Argon2
Пароли не хранятся в открытом виде, используется Argon2.
Что внутри
Не только dashboard,
но и backend под ним
API построен на FastAPI и SQLAlchemy 2 с использованием асинхронных сессий.
Периодические проверки вынесены из API в Celery Worker, а Celery Beat отвечает за расписание задач.
PostgreSQL хранит пользователей, мониторы и историю проверок. Redis используется как брокер и backend для Celery.
Для базы данных используются миграции Alembic, а API защищено JWT-аутентификацией.
Контейнеры запускаются от непривилегированного пользователя, а проект покрыт автоматическими тестами.
Мониторинг, который работает сам
ITоднушка Monitor собран как полноценный сервис: от авторизации и управления мониторами до фоновых проверок, статистики и уведомлений.
Проект можно использовать как основу для внутреннего мониторинга и как технический кейс с открытым исходным кодом.
Посмотреть код на GitHub →Давайте автоматизируем контроль
Расскажите, что сейчас приходится проверять вручную. Посмотрим, что можно поставить на автоматический контроль.