Ответ
В DevOps мониторинг — это комплексное наблюдение за всеми слоями стека, от физической инфраструктуры до бизнес-процессов. Цель — обеспечить видимость (visibility), быстрое обнаружение проблем и анализ трендов.
Ключевые уровни мониторинга:
-
Инфраструктура (Infrastructure Monitoring):
- Вычислительные ресурсы: Загрузка CPU, использование оперативной памяти, своп.
- Дисковые системы: Свободное место, IOPS, latency чтения/записи.
- Сеть: Пропускная способность, ошибки, потеря пакетов, задержка (latency) между узлами.
- Инструменты:
node_exporterдля Prometheus, агенты Zabbix/Datadog.
-
Платформа и сервисы (Platform & Services Monitoring):
- Kubernetes/Оркестраторы: Состояние нод, подов, деплойментов. Использование квот (requests/limits).
- Базы данных: Скорость выполнения запросов, количество активных соединений, репликация, размер таблиц.
- Очереди сообщений (Kafka, RabbitMQ): Длина очереди, время обработки сообщений, отставание потребителей (consumer lag).
- Веб-серверы и балансировщики: Доступность (health checks), активные соединения.
-
Приложение (Application Monitoring):
- Метрики приложения (Application Metrics): Количество обработанных заказов, время выполнения ключевых транзакций, хиты кэша. Инструменты: Prometheus клиентские библиотеки, StatsD.
- Трассировка распределенных запросов (Distributed Tracing): Позволяет отследить путь одного запроса через множество микросервисов (Jaeger, Zipkin).
// Пример добавления метрики в код на Go (библиотека Prometheus) var httpRequests = prometheus.NewCounterVec( prometheus.CounterOpts{ Name: "http_requests_total", Help: "Total HTTP requests by method and path", }, []string{"method", "path", "status"}, )
-
Логирование (Logging):
- Сбор и агрегация логов: Централизованное хранение логов со всех сервисов (ELK Stack: Elasticsearch, Logstash/Fluentd, Kibana; или Loki/Grafana).
- Структурированные логи (JSON): Облегчают парсинг и анализ.
{"timestamp": "2023-10-01T12:00:00Z", "level": "ERROR", "service": "payment", "trace_id": "abc123", "message": "Failed to charge card"}
-
Синтетический мониторинг и проверки от пользователя (Synthetic & Real User Monitoring - RUM):
- Synthetic: Скрипты, имитирующие действия пользователя (заход на сайт, логин) из разных точек мира (Blackbox exporter, Pingdom).
- RUM: Сбор данных о реальной производительности фронтенда в браузерах пользователей (загрузка страницы, время отклика).
-
Бизнес-метрики (Business Metrics):
- Показатели, напрямую связанные с бизнес-целями: количество регистраций, конверсия, средний чек, активные пользователи (DAU/MAU). Их мониторинг связывает работу IT с результатами бизнеса.
Принцип "Мониторь то, от чего зависят твои SLA/SLO". Начинают всегда с критически важных для пользователя метрик (доступность, задержка), а затем расширяют наблюдаемость на другие уровни для упрощения отладки.