Skip to content

MikhailPI1/VK_metric_class

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MetricLogger - Потокобезопасный логгер метрик на C++

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

📁 Структура проекта

├── include/
│ └── metric_logger.h 
├── src/
│ └── metric_logger.cpp 
├── apps/
│ └── main.cpp 
├── tests/
│ └── test_metric_logger.cpp 
├── build/ 
├── .gitignore
├── CMakeLists.txt
├── Makefile 
└── README.md

✨ Особенности

  • Потокобезопасность - полная поддержка многопоточности
  • Автосохранение - периодическая запись в файл с настраиваемым интервалом
  • Гибкое управление - добавление, удаление, модификация метрик
  • Валидация данных - проверка корректности имен метрик и значений
  • Структурированный вывод - читаемый формат записи с временными метками
  • Полное тестирование - комплексные unit-тесты с Google Test
  • Двойная сборка - поддержка CMake и Makefile

Установка и сборка

  • Компилятор C++17 (g++ 7+, clang++ 5+, MSVC 2017+)
  • CMake 3.12+ (опционально)
  • Google Test (для тестов, опционально)

Быстрый старт

# Клонирование репозитория
git clone <repository-url>
cd metric-logger

# Сборка с Makefile
make all

# Или сборка с CMake
mkdir build && cd build
cmake .. && make

# Запуск демо
./bin/metric_logger_demo
 Сборка
Использование Makefile
bash
# Полная сборка 
make all

# Только библиотека
make lib

# Демонстрационное приложение
make demo

# Сборка и запуск тестов
make test

# Очистка
make clean

# Установка в систему
sudo make install
Использование CMake
bash
# Создание build директории
mkdir build && cd build

# Конфигурация и сборка
cmake .. -DBUILD_TESTS=ON
make

# Запуск тестов
./metric_logger_test

# Запуск демо
./metric_logger_demo

Формат выходного файла

Логгер создает структурированный файл с метриками:

[2024-01-15 10:30:45]
cpu_usage=45.7
memory_usage=82.3
requests=1250
---
[2024-01-15 10:31:45]
cpu_usage=42.1
memory_usage=81.5
requests=1342

Тестирование

Проект включает комплексные unit-тесты:

# Запуск тестов
make test

# Или с CMake
./metric_logger_test

Тесты покрывают:

  • Добавление и удаление метрик
  • Установка и получение значений
  • Потокобезопасность
  • Работу с файлами
  • Обработку ошибок

Производительность

  • Низкие накладные расходы - оптимизированные структуры данных
  • Минимальная блокировка - кратковременные mutex-блокировки
  • Эффективная запись - буферизация и batch-запись в файл
  • Потокобезопасность - корректная работа в многопоточной среде

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published