Какие ключевые метрики для мониторинга сайта или сервиса вы отслеживаете?

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

Ответ

В DevOps я настраиваю мониторинг на основе четырех золотых сигналов и бизнес-метрик, используя стэк Prometheus/Grafana + Alertmanager.

Технические метрики (Four Golden Signals):

  1. Задержка (Latency): Время обработки запроса.
    • http_request_duration_seconds (Prometheus) или p99 в распределенных трейсах (Jaeger).
  2. Трафик (Traffic): Нагрузка на сервис.
    • Запросы в секунду (RPS/QPS): rate(http_requests_total[5m])
    • Пропускная способность сети.
  3. Ошибки (Errors): Частота неудачных запросов.
    • Rate ошибок 5xx: sum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total[5m]))
    • Ошибки 4xx (часто проблема клиента).
  4. Насыщенность (Saturation): Загрузка ресурсов.
    • CPU usage: rate(node_cpu_seconds_total{mode="idle"}[5m])
    • Memory usage: node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes
    • Дисковое I/O, сетевые интерфейсы.

Специфичные для веб-метрики:

  • TTFB (Time To First Byte): Ключевая метрика для пользовательского восприятия.
  • Core Web Vitals (LCP, FID, CLS): Мониторинг через Google PageSpeed Insights или Real User Monitoring (RUM).
  • Аптайм (Uptime): avg_over_time(up{job="my-service"}[1h])

Бизнес-метрики (пример):

  • Conversion Rate (часто вычисляется в отдельной аналитической системе).
  • Активные пользователи в секунду.

Пример алерта в Prometheus на высокую частоту ошибок:

- alert: HighErrorRate
  expr: sum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total[5m])) > 0.05
  for: 2m
  labels:
    severity: critical
  annotations:
    summary: "Высокий процент ошибок 5xx для {{ $labels.job }}"

Главное — не просто собирать метрики, а настраивать осмысленные алерты по ним и дашборды для быстрой диагностики.