Система мониторинга сервисов (pet-project)
Цель: изучение Boost 1.89.0, асинхронного программирования и сетевых операций. GUI: Qt 6.9.3.
ServiceMonitor — это приложение для периодического опроса сервисов (HTTP, TCP, ICMP Ping) с определением статуса UP / DOWN и замером времени отклика.
Проект создаётся как учебный, с фокусом на Boost.Asio, chrono, работу с конфигами и логированием.
- Boost 1.89.0
Boost.Asio— таймеры (asio::steady_timer), асинхронный TCP/PingBoost.Chrono— измерение времени откликаBoost.Log— запись логовBoost.Format— красивое форматирование
- Json-Nlohman-3.12.0
- Qt 6.9.3 — UI, сигналы/слоты
- C++20
- Инициализация репозитория (шаблон проекта)
- Подключение Qt 6.9.3
- Подключение Boost 1.89.0
- Выбор и подключение JSON-парсера (nlohmann/json или Qt JSON)
- Структура данных для ServiceConfig
- Парсинг JSON-конфига
- Валидация конфигурации (обязательные поля, типы)
- Загрузка конфига при старте приложения
- Горячая перезагрузка конфига (опционально)
- Базовый интерфейс
AbstractChecker - Реализация TCP-проверки (Boost.Asio)
- Реализация ICMP Ping (Boost.Asio)
- Реализация HTTP-проверки
- Периодический опрос (
asio::steady_timer) - Сбор времени отклика (Boost(STL).Chrono)
- Базовая статистика (last/min/max/avg)
- Singleton Logger с потокобезопасностью
- Файловое и консольное логирование через Boost.Log
- Логи в UI
- Qt UI — таблица сервисов
- Цветовые индикаторы UP/DOWN
- Автообновление UI от фоновых потоков
- Страница со статистикой (avg/min/max)
- Релиз