Перейти к основному содержимому

Метрики, мониторинг и их реализация

Метрики — данные, которые измеряют состояние системы.
Мониторинг — процесс сбора, анализа и визуализации этих метрик (для контроля работы системы и реагирования на проблемы).

Примеры типов метрик

Бизнес-метрики

Отражают эффективность бизнес-процессов (конверсия, средний чек, количество активных пользователей).

Технические

Состояние инфраструктуры и приложений (загрузка 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

  • мониторинг инфраструктуры и приложений.
  • поддержка

Материалы

  1. Мониторинг начинается с метрик, или Как не сделать из алертов белый шум

  2. Мониторинг начинается с метрик. Часть 2: серверное ПО

  3. Как построить эффективную стратегию мониторинга с высокой наблюдаемостью

  4. Основы мониторинга и сбора метрик

  5. Оcновы мониторинга и сбора метрик

  6. Руководство по мониторингу производительности сервера: Метрики и советы

  7. Выбираем оптимальную архитектуру мониторинга: от легковесного сервиса до высоконагруженных кластеров

  8. Как организовать мониторинг в мультипроцессорном режиме

  9. Мониторинг с помощью Prometheus: как это работает

  10. 9 правил внедрения корпоративного ИТ-мониторинга: как сделать все правильно и избежать боли на старте

  11. Мониторинг высоконагруженных систем: поддержка SLA и масштабируемость

  12. Observability vs Monitoring: почему в 2025 году это две стороны одной медали

  13. Chaos Engineering и мониторинг: как готовиться к неожиданным сбоям

  14. Все метрики мониторинга ИТ-инфраструктуры под один зонтик

  15. Как уменьшить размер бандла раз и навсегда: приемы, метрики, мониторинг

  16. Человеческим языком про метрики 3: перцентили для чайников

  17. OpenTelemetry на практике

  18. Nagios — система мониторинга и некоторые самодельные плагины

  19. SNMP: Управление и мониторинг сетей

  20. Пушим метрики Prometheus с помощью pushgateway

  21. Jaeger для трассировки в микросервисной архитектуре

  22. MONQ — мониторинг и AIOps родом из России

  23. 7 основных этапов реагирования на ИТ-инциденты, используя мониторинг Monq

  24. Мониторинг с Grafana. Best practices

Видео

  1. Типы метрик в Prometheus. Что такое Прометеус?
  2. Обзор возможностей Monq 8.0
  3. Лекторий по SRE: Цели мониторинга, логи и метрики
  4. Мониторинг. Метрики, Алертинг. Собеседования DevOps
  5. Метрики бэкенда, мониторинг и алертинг – Иван Цыбулин
  6. Сейчас объясню. Мониторинг ИТ-инфраструктуры: метрики, инструменты и полезные советы
  7. Prometheus + Grafana. Мониторинг софта и железа. Сбор метрик и построение графиков
  8. Андрей Юртаев - Prometheus. Про метрики и им сопереживающих
  9. Мониторинг и работа с метриками приложения. Prometheus + Grafana
  10. Grafana формирование дашбордов // занятие курса «Мониторинг и логирование: Zabbix, Prometheus, ELK»

Конференции

  1. HighLoad++: Prometheus: мониторинг микросервисных приложений / Виталий Левченко
  2. HighLoad++: Мониторинг в микросервисной архитектуре / Владимир Колобаев (Avito)

Книги

  1. Изучаем OpenTelemetry: современный мониторинг систем (2025) - Паркер Остин, Янг Тед

Footnotes

  1. перцентиль: какой % значений ниже определённого значения.