Ответ
Мы фокусируемся на метриках, которые отражают скорость, стабильность и качество доставки ПО. Основные из 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.