Рейтинг: 61
не верифицирован
Всего отзывов: 0
  • Работ в портфолио: 1
  • Типовых услуг: 0
  • Работ на продажу: 0
  • Возраст: 21 год
  • Зарегистрирован: 07.12.2025
Был на сайте:

Кроссплатформенный агент для сбора метрик (C++), REST API (Python FastAPI) и дашборды в Grafana

Описание

Клиенту требовалась легковесная, но полнофункциональная система для мониторинга состояния собственных Linux-серверов. Цель — в реальном времени отслеживать ключевые метрики (загрузку CPU, использование оперативной памяти, состояние дисков) без использования громоздких коммерческих решений. Система должна была легко разворачиваться, иметь понятный веб-интерфейс для визуализации и допускать дальнейшее расширение функционала.

Решение

Спроектировал и реализовал распределенную систему с нуля, разделив её на три ключевых компонента:

Агент на C++: Написал высокоэффективное приложение, которое с заданным интервалом собирает системные метрики с помощью вызовов ядра Linux. Для сетевого взаимодействия использовал библиотеку libcurl. Код написан на современном C++17 с использованием RAII и безопасных паттернов.
Сервер приёма данных на Python: Разработал REST API сервер на фреймворке FastAPI. Сервер принимает данные от агентов в формате JSON, проводит валидацию через Pydantic и сохраняет их в специализированную базу данных временных рядов InfluxDB, оптимизированную для работы с метриками.
Инфраструктура и визуализация: Весь стек (InfluxDB, Grafana для дашбордов, Python ​​сервер) упаковал в Docker-контейнеры и оркестрировал через Docker Compose для максимально простого развертывания одной командой. Настроил готовый дашборд в Grafana для отображения графиков.

Результат

Клиент получил готовую к промышленному использованию систему мониторинга. Решение является кроссплатформенным (агент может быть портирован под macOS/Windows), потребляет минимум ресурсов на наблюдаемых серверах и полностью контролируется заказчиком. Вся система разворачивается за несколько минут, предоставляя интуитивно понятный веб-интерфейс с графиками в реальном времени. Архитектура проекта позволяет легко добавлять новые типы собираемых метрик и масштабировать его под нужды растущей инфраструктуры.

Ссылки на примеры реализации

 github.com/tiflark/monitoring-system

Презентация проекта

7fd0a6fb-f4dc-4015-a188-44f4563039ba.png

Оценили проект:

0