SLO & Error Budgets
Терминология
| Термин | Определение |
|---|---|
| SLI (Service Level Indicator) | Метрика, характеризующая качество сервиса |
| SLO (Service Level Objective) | Целевое значение SLI |
| SLA (Service Level Agreement) | Юридическое обязательство перед клиентом |
| Error Budget | Допустимый объём ошибок = 100% − SLO |
Как это работает
SLO = 99.9% uptime
Error Budget = 0.1% = ~43 минуты downtime в месяц
Потратили 30 мин → Осталось 13 мин → Замедляем деплои
Потратили 0 мин → Бюджет полный → Можно рисковатьSLO по сервисам
| Сервис | SLI | SLO | Error Budget (30 дней) |
|---|---|---|---|
| API Gateway | Availability | 99.9% | 43 мин |
| Payments | Success Rate | 99.95% | 21 мин |
| Auth | Latency (p99 < 500ms) | 99.9% | 43 мин |
| — | — | — | — |
Определение SLI
Availability
SLI = (успешные запросы / все запросы) × 100%
Успешные = HTTP 2xx + 3xx
Неуспешные = HTTP 5xx (4xx НЕ считаются ошибкой сервиса)Latency
SLI = (запросы быстрее порога / все запросы) × 100%
Пример: 99% запросов быстрее 500msCorrectness
SLI = (запросы с корректным результатом / все запросы) × 100%Error Budget Policy
Когда бюджет > 50%
- Нормальный режим работы
- Деплои без ограничений
- Можно проводить эксперименты
Когда бюджет 10–50%
- Осторожный режим
- Ревью каждого деплоя
- Фокус на стабильности
Когда бюджет < 10%
- Заморозка фич
- Только bugfix и reliability improvements
- Разбор причин расхода бюджета
Когда бюджет = 0%
- Полная заморозка деплоев (кроме hotfix)
- Incident review с руководством
- Возобновление после восстановления бюджета
Ревью SLO
- Еженедельно: проверка текущего расхода error budget
- Ежеквартально: ревью целевых значений SLO
- По необходимости: пересмотр после крупных инцидентов