👀 Метрики и мониторинг
🙃 Метрики — данные, которые измеряют состояние системы
😂 Мониторинг — процесс сбора, анализа и визуализации этих метрик (для контроля работы системы и реагирования на проблемы)
Примеры типов метрик
😥Бизнес-метрики: отражают эффективность бизнес-процессов
(конверсия, средний чек, количество активных пользователей)
😥Технические: состояние инфраструктуры и приложений
(загрузка CPU, время ответа сервера, количество ошибок)
😥Пользовательские: оценка опыта пользователей
(время загрузки страницы, кол-во кликов до целевого действия)
Примеры технических метрик
Серверные
⭕CPU: загрузка процессора (%)
⭕Memory: использование оперативной памяти (%)
⭕Disk: использование дискового пространства (%), скорость чтения/записи
⭕Network: входящий/исходящий трафик (Мбит/с), кол-во соединений
Приложений
⭕Время ответа API (мс)
⭕Кол-во HTTP-запросов и ошибок (500, 404)
⭕Кол-во активных сессий
БД
⭕Время выполнения запроса (мс)
⭕Кол-во активных соединений
⭕Кол-во медленных запросов
Методологии анализа метрик
😂 USE
Анализ производительности ресурсов (CPU, память, диски, сеть)
Для инфраструктурных метрик
😍Utilization (Использование): какую часть ресурса используют (загрузка CPU на 80%)
😍Saturation (Насыщение): насколько ресурс перегружен (очередь запросов к диску)
😍Errors (Ошибки): например, ошибки чтения/записи
😂 RED
Для для мониторинга сервисов (часто микросервисов), API
😍Rate (Частота): кол-во запросов или событий в единицу времени (500 запросов в сек)
😍Errors (Ошибки): например, 10 ошибок "500" за мин)
😍Duration (Длительность): время выполнения запроса (среднее время ответа API — 200 мс, или 95-й перцентиль* времени ответа — 300 мс)
*какой % значений ниже определённого значения
😂 LTES
Расширенная версия RED, для сложных распределённых систем
😍Latency (Задержка): время ответа системы (ответ API за 150 мс, или в бд время выполнения запроса — 50 мс)
😍Traffic (Трафик): кол-во запросов / данных (10 ГБ входящего трафика, в бд 5000 запросов в минуту)
😍Errors (Ошибки)
😍Saturation (Насыщение): насколько ресурс перегружен (загрузка памяти 90%, в бд очередь запросов 20 шт)
Подходы к сбору метрик
💚Push-модель
Агенты на серверах/приложениях отправляют данные на сервер мониторинга
➡ Prometheus Pushgateway: для отправки метрик от краткосрочных задач (например, cron-задач)
➡ Zabbix Agent: агент собирает данные (CPU, память, диски) и отправляет их на сервер Zabbix
💚 Pull-модель
Сервер мониторинга запрашивает данные у агентов или экспортеров
Меньше нагрузки на сеть, сервер контролирует частоту запросов
➡ Prometheus Scrape: каждые 15 сек запрашивает метрики загрузки CPU у Node Exporter, установленного на сервере
➡ SNMP: протокол для мониторинга сетевых устройств (роутеры, свитчи)
💚 Логирование
Анализ логов для извлечения метрик (кол-во ошибок, время выполнения запросов)
Универсальный подход, логи есть почти везде
Можно анализировать исторические данные
➡ ELK (Elasticsearch, Logstash, Kibana) : Logstash собирает логи веб-сервера, парсит их и отправляет в Elasticsearch, Kibana визуализирует ошибки
➡ Grafana Loki: легковесное решение для анализа логов
💚Трейсинг
Отслеживание запросов через распределённую систему
Позволяет понять, как запрос проходит через компоненты системы
➡ Jaeger: отправляется запрос к API. Отслеживает, как он проходит через API Gateway, микросервис A и БД, измеряется время выполнения всех этапов
Инструменты мониторинга
Grafana: визуализация метрик
Prometheus: сбор и хранение метрик
ELK: логирование и анализ событий
Zabbix: мониторинг инфраструктуры
Nagios: мониторинг сетей и серверов
📎Материалы
1. Мониторинг начинается с метрик | Часть 2: серверное ПО
2. Как построить эффективную стратегию мониторинга
3. Основы мониторинга и сбора метрик
4. Мониторинг и сбор метрик
5. Руководство по мониторингу производительности сервера
6. Выбираем оптимальную архитектуру мониторинга
7. Как организовать мониторинг в мультипроцессорном режиме
#инфраструктура
➿➿➿➿➿➿➿➿➿➿
🧑🎓 Больше полезного в базе знаний по системному анализу
Post #592
17.8K
- 👍 14
- ❤ 13
- 🔥 9