Какие ключевые показатели (KPI) и метрики в DevOps вы отслеживаете?

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

Ответ

Мы фокусируемся на метриках, которые отражают скорость, стабильность и качество доставки ПО. Основные из DORA (DevOps Research & Assessment) плюс дополнительные:

1. Скорость доставки:

  • Частота деплоев (Deployment Frequency): Сколько раз в день/неделю мы успешно выпускаем изменения в прод. Для нашего сервиса API цель — несколько деплоев в день.
  • Время выполнения изменений (Lead Time for Changes): Время от коммита кода до его работы в продакшене. Отслеживаем через интеграцию Git (например, GitHub) с CI/CD (например, GitLab CI). Цель — менее одного дня.

2. Стабильность:

  • Процент неудачных изменений (Change Failure Rate): Доля деплоев, вызвавших инциденты в прод-среде. Стараемся держать ниже 5%.
  • Среднее время восстановления (MTTR - Mean Time To Recovery): Ключевая метрика. Включает время на обнаружение (через Alertmanager/PagerDuty), диагностику и откат/фикс. Рассчитываем по данным из Jira Service Management или Incident.io.

3. Операционные метрики (SRE):

  • Доступность (Availability/SLA): Рассчитываем по формуле (Total Time - Downtime) / Total Time. Для критичного сервиса цель — 99.95%.
  • Загрузка и эффективность: Использование CPU/памяти нод в Kubernetes (отслеживаем через Prometheus и визуализируем в Grafana), чтобы оптимизировать затраты на облачную инфраструктуру.

Пример PromQL запроса для отслеживания успешности деплоев (по метрикам от ArgoCD или CI-системы):

# Условная метрика успешных/неуспешных деплоев
sum(rate(cicd_pipeline_duration_seconds_count{status="failed"}[7d])) 
/ 
sum(rate(cicd_pipeline_duration_seconds_count[7d])) * 100

Эти метрики обсуждаем на еженедельных операционных встречах и используем для принятия решений: например, если MTTR растет, инвестируем в улучшение observability или runbooks.