М етрики, мониторинг и их реализация
Метрики — данные, которые измеряют состояние системы.
Мониторинг — процесс сбора, анализа и визуализации этих метрик (для контроля работы системы и реагирования на проблемы).
Примеры типов метрик
Бизнес-метрики
Отражают эффективность бизнес-процессов (конверсия, средний чек, количество активных пользователей).
Технические
Состояние инфраструктуры и приложений (загрузка CPU, время ответа сервера, количество ошибок).
Пользовательские
Оценивают опыт пользователей (время загрузки страницы, количество кликов до целевого действия).
Примеры технических метрик
Серверные
- CPU: Загрузка процессора (%).
- Memory: Использование оперативной памяти (%).
- Disk: Использование дискового пространства (%), скорость чтения/записи.
- Network: Входящий/исходящий трафик (Мбит/с), количество соединений.
Приложений
- Время ответа API (мс).
- Количество HTTP-запросов.
- Количество ошибок (500, 404).
- Количество активных сессий.
БД
- Время выполнения запроса (мс).
- Количество активных соединений.
- Количество медленных запросов.
Методологии анализа метрик
USE (Utilization, Saturation, Errors)
Анализ производительности ресурсов (CPU, память, диски, сеть).
Для инфраструктурных метрик.
- Utilization (Использование): какую часть ресурса используют (Загрузка CPU на 80%)
- Saturation (Насыщение): насколько ресурс перегружен (Очередь запросов к диску)
- Errors (Ошибки): количество сбоев или ошибок (Ошибки чтения/записи на диск)
RED (Rate, Errors, Duration)
Для мониторинга сервисов (часто микросервисов), API.
- Rate (Частота): количество запросов или событий в единицу времени (500 запросов в секунду)
- Errors (Ошибки): количество неудачных запросов (10 ошибок "500" за минуту)
- Duration (Длительность): время выполнения запроса (Среднее время ответа API — 200 мс, или 95-й перцентиль1 времени ответа — 300 мс)
LTES (Latency, Traffic, Errors, Saturation)
Расширенная версия RED, для сложных распределённых систем.
- Latency (Задержка): Время ответа системы (Время ответа API — 150 мс, или в БД время выполнения запроса — 50 мс)
- Traffic (Трафик): Количество запросов или данных (10 ГБ входящего трафика, в БД 5000 запросов в минуту)
- Errors (Ошибки): Количество сбоев.
- Saturation (Насыщение): Насколько ресурс перегружен (Загрузка памяти — 90%, в БД очередь запросов — 20)
Подходы к сбору метрик
1. Push-модель
Агенты на серверах или приложениях отправляют данные на сервер мониторинга.
Минусы: может создавать нагрузку на сеть при большом количестве данных.
Примеры:
- Prometheus Pushgateway: для отправки метрик от краткосрочных задач (например, cron-задач).
- Zabbix Agent: агент собирает данные (CPU, память, диски) и отправляет их на сервер Zabbix.
2. Pull-модель
Сервер мониторинга запрашивает данные у агентов или экспортеров.
Меньше нагрузки на сеть, сервер контролирует частоту запросов.
Минусы: агенты или экспортеры должны быть доступны для запросов, задержки в получении данных.
Примеры:
- Prometheus Scrape: каждые 15 секунд запрашивает метрики загрузки CPU у Node Exporter, установленного на сервере.
- SNMP: Протокол для мониторинга сетевых устройств (роутеры, свитчи).
3. Логирование
Анализ логов для извлечения метрик (количество ошибок, время выполнения запросов).
Универсальный подход, логи есть почти везде.
Можно анализировать исторические данные.
Минусы:
- Требует больших ресурсов для хранения и обработки логов.
- Не всегда подходит для реального времени.
Примеры:
- ELK Stack (Elasticsearch, Logstash, Kibana): Logstash собирает логи веб-сервера, парсит их и отправляет в Elasticsearch. Kibana визуализирует количество ошибок.
- Grafana Loki: Легковесное решение для анализа логов.
4. Трейсинг
Отслеживание за просов через распределённую систему.
Позволяет понять, как запрос проходит через компоненты системы.
Минусы:
- Требует интеграции в код приложения.
- Может создавать дополнительную нагрузку на систему.
Примеры:
- Jaeger: отправляется запрос к API. Jaeger отслеживает, как он проходит через API Gateway, микросервис A и БД, измеряя время выполнения каждого этапа.
- OpenTelemetry: стандарт для сбора метрик, логов, трейсов.
Инструменты для мониторинга
Grafana
- визуализация метрик.
- поддержка множества источников данных (Prometheus, InfluxDB, Elasticsearch).
создание дашбордов для отображения загрузки CPU, памяти и времени ответа API.
Prometheus
- сбор и хранение метрик.
- поддержка алертов, гибкость в настройке.
мониторинг микросервисов с использованием RED-метрик.
Zabbix
- комплексный мониторинг инфраструктуры.
- поддержка сетей, серверов, приложений.
мониторинг состояния серверов и сетевого оборудования.
Elasticsearch
- распределённая поисковая и аналитическая система.
- хранение, поиск и анализ больших объёмов данных в реальном времени.
поиск и анализ логов приложений для выявления ошибок и аномалий.
Nagios
- мониторинг сетей и серверов.
- гибкость в настройке проверок и алертов.
отслеживание доступности серверов и сетевых устройств.
New Relic
- мониторинг производительности приложений.
- интеграция с облачными сервисами, трейсинг запросов.
анализ производительности веб-приложений.
Datadog
- мониторинг инфраструктуры и приложений.
- поддержка
Материалы
-
Мониторинг начинается с метрик, или Как не сделать из алертов белый шум
-
Как построить эффективную стратегию мониторинга с высокой наблюдаемостью
-
Руководство по мониторингу производительности сервера: Метрики и советы
-
Выбираем оптимальную архитектуру мониторинга: от легковесного сервиса до высоконагруженных кластеров
-
Мониторинг высоконагруженных систем: поддержка SLA и масштабируемость
-
Observability vs Monitoring: почему в 2025 году это две стороны одной медали
-
Chaos Engineering и мониторинг: как готовиться к неожиданным сбоям
-
Как уменьшить размер бандла раз и навсегда: приемы, метрики, мониторинг
-
Nagios — система мониторинга и некоторые самодельные плагины
-
7 основных этапов реагирования на ИТ-инциденты, используя мониторинг Monq
Видео
- Типы метрик в Prometheus. Что такое Прометеус?
- Обзор возможностей Monq 8.0
- Лекторий по SRE: Цели мониторинга, логи и метрики
- Мониторинг. Метрики, Алертинг. Собеседования DevOps
- Метрики бэкенда, мониторинг и алертинг – Иван Цыбулин
- Сейчас объясню. Мониторинг ИТ-инфраструктуры: метрики, инструменты и полезные советы
- Prometheus + Grafana. Мониторинг софта и железа. Сбор метрик и построение графиков
- Андрей Юртаев - Prometheus. Про метрики и им сопереживающих
- Мониторинг и работа с метриками приложения. Prometheus + Grafana
- Grafana формирование дашбордов // занятие курса «Мониторинг и логирование: Zabbix, Prometheus, ELK»
Конференции
- HighLoad++: Prometheus: мониторинг микросервисных приложений / Виталий Левченко
- HighLoad++: Мониторинг в микросервисной архитектуре / Владимир Колобаев (Avito)
Книги
- Изучаем OpenTelemetry: современный мониторинг систем (2025) - Паркер Остин, Янг Тед
Footnotes
-
перцентиль: какой % значений ниже определённого значения. ↩