Ответ
В DevOps практиках стабильность системы количественно оценивается через набор ключевых метрик, часто объединяемых в формулу Service Level Indicators (SLI) и Service Level Objectives (SLO).
Основные метрики для оценки стабильности:
-
Доступность (Availability): Процент времени, когда сервис был доступен для пользователей.
- Формула:
(Общее время - Время простоя) / Общее время * 100% - Цель (SLO): Например, «99.9% доступности в месяц» (что допускает ~43 минуты простоя).
- Формула:
-
Частота ошибок (Error Rate): Процент запросов, завершившихся с ошибкой (HTTP 5xx, 4xx для клиентских ошибок).
- Формула:
Количество ошибочных запросов / Общее количество запросов * 100% - Цель (SLO): «Частота ошибок не более 0.1%».
- Формула:
-
Латентность (Latency): Время обработки запроса. Часто измеряется как перцентили (p50, p95, p99).
- Цель (SLO): «95% запросов должны обрабатываться быстрее 200 мс».
-
Восстановление (Time to Recovery): Среднее время восстановления сервиса после сбоя (MTTR — Mean Time To Recovery).
Практический пример мониторинга в Grafana/Prometheus:
# Доступность сервиса за последние 30 дней (на основе HTTP кодов)
100 - (
avg_over_time(
rate(http_requests_total{status=~"5..", job="my-service"}[30d])
)
/
avg_over_time(
rate(http_requests_total{job="my-service"}[30d])
)
) * 100
# Перцентиль latency за последний час (p95)
histogram_quantile(0.95,
sum(rate(http_request_duration_seconds_bucket{job="my-service"}[1h])) by (le)
)
Стабильность — это не просто «работает/не работает», а измеримое обязательство перед пользователем, выраженное в SLO. Мы используем эти метрики для триггеров алертов и принятия решений о развертывании новых версий.