Цель команды — это SLO, а запас между целью и «без единой ошибки» — бюджет ошибок.
Доступность из урока о доле хороших запросов — SLI, показатель. SLO (Service Level Objective, цель уровня обслуживания) говорит, каким он должен быть: SLI, цель и окно вместе. «Доступность не меньше 99,5 % за 30 дней» — SLO магазина. Окно скользящее — всегда последние 30 дней от текущего момента, поэтому вчерашний сбой останется в счёте ещё 29 дней. Договор с клиентом, где за нарушение цели платят, называют SLA; его цель обычно мягче внутреннего SLO, чтобы команда заметила проблему раньше клиента.
Раз цель 99,5 %, до 0,5 % ответов могут быть плохими — и SLO всё равно выполнен. Эти 0,5 % и есть бюджет ошибок:
Например, при 400 000 запросах за 30 дней бюджет — 2000 плохих ответов. Если их уже было 1400, в остатке 600. Пока остаток больше нуля, SLO выполняется, и бюджет можно тратить на риск: выкладывать новые версии, менять конфигурацию. Кончился — по договорённости команды выкладки замораживают и занимаются надёжностью.
Журналы за 30 дней лежат несколькими файлами, как их обычно раскладывает logrotate: сегодняшний access.log, вчерашний access.log.1 и сжатые старые. zcat -f печатает подряд и сжатые, и обычные файлы, поэтому один конвейер считает по всем сразу.
Посчитай остаток бюджета
Посчитай, сколько ответов 5xx магазину ещё можно себе позволить по SLO 99,5 % за 30 дней, и запиши одно число в ~/slo/left.txt.
Цели · 0 из 1
- Записать в ~/slo/left.txt остаток бюджета ошибок ещё не выполнена