Что обычно входит в сферу мониторинга в DevOps-практике?

«Что обычно входит в сферу мониторинга в DevOps-практике?» — вопрос из категории Мониторинг и логирование, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В DevOps мониторинг — это комплексное наблюдение за всеми слоями стека, от физической инфраструктуры до бизнес-процессов. Цель — обеспечить видимость (visibility), быстрое обнаружение проблем и анализ трендов.

Ключевые уровни мониторинга:

  1. Инфраструктура (Infrastructure Monitoring):

    • Вычислительные ресурсы: Загрузка CPU, использование оперативной памяти, своп.
    • Дисковые системы: Свободное место, IOPS, latency чтения/записи.
    • Сеть: Пропускная способность, ошибки, потеря пакетов, задержка (latency) между узлами.
    • Инструменты: node_exporter для Prometheus, агенты Zabbix/Datadog.
  2. Платформа и сервисы (Platform & Services Monitoring):

    • Kubernetes/Оркестраторы: Состояние нод, подов, деплойментов. Использование квот (requests/limits).
    • Базы данных: Скорость выполнения запросов, количество активных соединений, репликация, размер таблиц.
    • Очереди сообщений (Kafka, RabbitMQ): Длина очереди, время обработки сообщений, отставание потребителей (consumer lag).
    • Веб-серверы и балансировщики: Доступность (health checks), активные соединения.
  3. Приложение (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"},
      )
  4. Логирование (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"}
  5. Синтетический мониторинг и проверки от пользователя (Synthetic & Real User Monitoring - RUM):

    • Synthetic: Скрипты, имитирующие действия пользователя (заход на сайт, логин) из разных точек мира (Blackbox exporter, Pingdom).
    • RUM: Сбор данных о реальной производительности фронтенда в браузерах пользователей (загрузка страницы, время отклика).
  6. Бизнес-метрики (Business Metrics):

    • Показатели, напрямую связанные с бизнес-целями: количество регистраций, конверсия, средний чек, активные пользователи (DAU/MAU). Их мониторинг связывает работу IT с результатами бизнеса.

Принцип "Мониторь то, от чего зависят твои SLA/SLO". Начинают всегда с критически важных для пользователя метрик (доступность, задержка), а затем расширяют наблюдаемость на другие уровни для упрощения отладки.