← Все кейсы
ITоднушка / Кейс

Monitor

URL → проверка → история → статистика → уведомление

Сервис мониторинга сайтов и API. Автоматически проверяет доступность сервисов, сохраняет историю, считает uptime и время ответа, а при изменении состояния отправляет уведомление в Telegram.

01 URL
→
02 Check
→
03 History
→
04 Alert
API up
https://example.com
200 128 ms 99.9%
Задача

Узнать о проблеме
раньше пользователя

Если сайт или API становится недоступен, проблема может обнаружиться только тогда, когда на неё пожалуется пользователь.

Monitor регулярно проверяет указанные URL и фиксирует результат каждой проверки. При изменении состояния система сразу отправляет уведомление.

При этом история проверок остаётся доступной, поэтому можно посмотреть не только текущий статус, но и то, как сервис работал раньше.

01 Один dashboard показывает текущее состояние сервисов и историю их работы.
Как работает

Проверка работает
без участия пользователя

01

Monitor

Пользователь добавляет URL и задаёт название монитора.

02

Beat

Celery Beat запускает периодическую проверку.

03

Worker

Celery Worker выполняет HTTP-запрос и измеряет время ответа.

04

Database

Результат проверки сохраняется в PostgreSQL.

05

Telegram

При изменении состояния отправляется уведомление.

Мониторинг

Не просто «работает / не работает»

Каждая проверка сохраняет HTTP status code, время ответа, статус и возможную ошибку.

Поэтому можно увидеть не только факт сбоя, но и посмотреть историю состояния сервиса и изменение времени ответа.

Monitor status up
Status 200 OK
Response time 128 ms
Last check just now
State
available
!
Уведомления

Сбой не должен остаться незамеченным

Monitor отслеживает изменение состояния монитора. Если сервис был доступен и стал недоступен, система отправляет сообщение в Telegram.

Когда сервис снова становится доступен, отправляется отдельное уведомление о восстановлении.

Dashboard

Состояние сервисов
на одном экране

ITоднушка Monitor Dashboard
Monitors 4
Up 4
Checks 11
Uptime 100%
Main website 200 UP
API 200 UP
Client service 200 UP
История

Можно посмотреть, что происходило раньше

Для каждого монитора хранится история проверок. В ней доступны статус, HTTP-код, время ответа, ошибка и время выполнения проверки.

Историю можно фильтровать по состоянию и использовать для анализа стабильности сервиса.

Для статистики доступны периоды 1 час, 24 часа, 7 дней и 30 дней.

Архитектура

Мониторинг
для нескольких пользователей

01

Register

Пользователь создаёт аккаунт с email и паролем.

02

JWT

После авторизации API выдаёт access token.

03

Isolation

Каждый пользователь получает доступ только к своим мониторам.

04

Argon2

Пароли не хранятся в открытом виде, используется Argon2.

Технологии

Что внутри

01 Python 3.13
02 FastAPI Async API
03 PostgreSQL Database
04 SQLAlchemy ORM
05 Celery Background jobs
06 Redis Broker
07 JWT + Argon2 Authentication
08 Docker Infrastructure
Инженерные решения

Не только dashboard,
но и backend под ним

API построен на FastAPI и SQLAlchemy 2 с использованием асинхронных сессий.

Периодические проверки вынесены из API в Celery Worker, а Celery Beat отвечает за расписание задач.

PostgreSQL хранит пользователей, мониторы и историю проверок. Redis используется как брокер и backend для Celery.

Для базы данных используются миграции Alembic, а API защищено JWT-аутентификацией.

Контейнеры запускаются от непривилегированного пользователя, а проект покрыт автоматическими тестами.

Результат

Мониторинг, который работает сам

ITоднушка Monitor собран как полноценный сервис: от авторизации и управления мониторами до фоновых проверок, статистики и уведомлений.

Проект можно использовать как основу для внутреннего мониторинга и как технический кейс с открытым исходным кодом.

Посмотреть код на GitHub →
Нужен похожий сервис?

Давайте автоматизируем контроль

Расскажите, что сейчас приходится проверять вручную. Посмотрим, что можно поставить на автоматический контроль.

Обсудить задачу →