Перейти к содержанию
Innovialabs

SLI, SLO и error budget: основы надежности SRE на практике

Продвинутое3 мин

Коротко

SLI — измеряемый показатель качества сервиса, SLO — целевое значение для него, а error budget — допустимая доля сбоев, которую команда может «потратить» на релизы и эксперименты.

Короткий ответ

  • SLI (Service Level Indicator) — метрика, которая отражает опыт пользователя. Например, доля успешных запросов или доля запросов быстрее заданного порога.
  • SLO (Service Level Objective) — цель для SLI за период. Например, 99,9% успешных запросов за 30 дней.
  • SLA (Service Level Agreement) — договор с клиентом с последствиями за нарушение. SLA обычно мягче SLO, чтобы у команды был запас.
  • Error budget — это 100% − SLO. При SLO 99,9% бюджет составляет 0,1% неудачных запросов или около 43 минут недоступности за 30 дней.

Смысл в том, чтобы договориться: какая надежность достаточна, и перестать спорить на эмоциях.

Как выбрать хорошие SLI

Хороший SLI измеряет то, что чувствует пользователь, а не состояние сервера. Загрузка CPU — плохой SLI: она может быть высокой, а пользователи довольны.

Типичные SLI по типу сервиса:

Тип сервисаSLI
API, веб-сайтДоступность (доля ответов не 5xx), задержка (доля запросов быстрее порога)
Очередь, фоновые задачиСвежесть данных, доля задач, обработанных вовремя
ХранилищеДолговечность, доля успешных чтений

Практические советы:

  • Формулируйте SLI как отношение хороших событий ко всем: хорошие / все.
  • Измеряйте как можно ближе к пользователю: балансировщик или синтетические проверки лучше логов приложения.
  • Начните с 2–3 SLI на ключевой пользовательский путь: вход, оплата, поиск.
  • Для задержки используйте перцентили (p95, p99), а не среднее.

Как поставить реалистичный SLO

  1. Посмотрите на историю. Если сервис стабильно держит определенный уровень, начните с цели чуть ниже текущего факта.
  2. Не ставьте 100%. Это недостижимо и блокирует любые изменения. Каждая дополнительная «девятка» резко увеличивает стоимость.
  3. Учтите зависимости. Ваш сервис не может быть надежнее облака или базы, на которых работает, без резервирования.
  4. Выберите окно. Скользящее окно в 28 или 30 дней — частый выбор.
  5. Пересматривайте SLO раз в квартал вместе с продуктом.

Как использовать error budget

Error budget превращает надежность в ресурс, который можно тратить:

  • Бюджет есть — команда спокойно выпускает фичи и экспериментирует.
  • Бюджет кончается — приоритет смещается на стабильность: фиксы, тесты, улучшение деплоя.
  • Бюджет исчерпан — заморозка рискованных релизов до восстановления.

Зафиксируйте это в error budget policy — коротком документе, который заранее согласован с бизнесом. Тогда решение «тормозить релизы» принимается по правилам, а не после конфликта.

Полезная практика — алерты по burn rate (скорости сжигания бюджета): если бюджет тратится в разы быстрее нормы, нужно реагировать сейчас, даже если SLO формально еще не нарушен.

Частые ошибки

  • Слишком много SLO. Никто не следит за двадцатью целями.
  • SLI на внутренних метриках вместо пользовательского опыта.
  • SLO без политики. Если превышение бюджета ни на что не влияет, это просто график.
  • Одинаковые цели для всего. Админка и оплата требуют разной надежности.

Частые вопросы

SLO — внутренняя цель команды, SLA — внешнее обязательство перед клиентом с компенсациями. SLA ставят ниже SLO, чтобы нарушение внутренней цели не означало сразу нарушения договора.

Поможем с этим

Если хотите не разбираться самим, а получить результат — этим мы занимаемся каждый день.

Обсудить проект

Читайте также

Есть идея или задача? Расскажите нам

Ответим в течение рабочего дня и предложим решение. Консультация бесплатная.