SLO, SLI и SLA: в чём разница

SLI, SLO и SLA — три связанных понятия из SRE, которые описывают надёжность сервиса в числах. Коротко: SLI — это что вы измеряете, SLO — какую цель ставите, SLA — что обещаете клиенту по договору.

Определения

  • SLI (Service Level Indicator) — измеримый показатель качества. Примеры: доля успешных запросов, доля запросов быстрее 300 мс, аптайм.
  • SLO (Service Level Objective) — внутренняя цель по SLI. Например: «99.9% запросов успешны за 30 дней».
  • SLA (Service Level Agreement) — внешнее обещание клиенту с последствиями (компенсация, кредиты), если оно нарушено. Обычно мягче SLO.

Error budget (бюджет ошибок)

Если SLO = 99.9%, то 0.1% — это допустимый бюджет ошибок. За 30 дней это около 43 минут недоступности. Пока бюджет не исчерпан — можно катить релизы быстрее; кончился — фокус на стабилизацию.

Пример SLI на PromQL

sum(rate(http_requests_total{code!~"5.."}[28d]))
/
sum(rate(http_requests_total[28d]))

Это доля не-5xx ответов за окно 28 дней — кандидат в availability SLI.

Как считать в Unimoni

SLI — это обычное PromQL-выражение, цель SLO задаётся порогом в правиле алерта, а аптайм и доступность за период считает Uptime-мониторинг и публичная status-страница.