Проект Web Htop представляет собой многослойную высокопроизводительную клиент-серверную систему мониторинга, реализующую сбор, агрегацию и потоковую доставку системных метрик в реальном времени. Серверная часть, построенная на низкоуровневом взаимодействии с Linux-подсистемой /proc, инкапсулирует набор специализированных collectors, формирующих консистентный snapshot состояния системы (CPU, память, сеть, диск, процессы) с временной синхронизацией и вычислением производных метрик. Центральный компонент SharedState обеспечивает потокобезопасный доступ к актуальным данным, выступая в роли in-memory data layer. Поверх него реализован транспортный уровень, включающий асинхронный HTTP API с маршрутизацией и обработчиками, а также streaming-механизм для непрерывной передачи телеметрии по TCP. Клиентская часть использует эти интерфейсы для визуализации и анализа, формируя интерактивное представление состояния системы. Архитектура проекта демонстрирует принципы модульности, изоляции ответственности и эффективной работы с системными ресурсами, приближаясь по сложности к production-grade observability решениям.
- Server collects Linux metrics and process list.
- Server exposes HTTP API (
/health,/metrics,/processes). - Server pushes live snapshots over streaming TCP.
- Client connects to streaming server and renders terminal dashboard + process table.
cmake -S . -B build -DWEB_HTOP_BUILD_APPS=ON -DWEB_HTOP_BUILD_TESTS=ON
cmake --build build -j4./build/server/web_htop_server
./build/client/web_htop_client localhost 9999 8080Helper scripts:
bash scripts/run_server.sh
bash scripts/run_client.sh localhost 9999 8080curl http://127.0.0.1:8080/health
curl http://127.0.0.1:8080/metrics
curl http://127.0.0.1:8080/processesctest --test-dir build --output-on-failure