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-страница.