Наблюдаемость
SLO и error budget: тест с выбором ответа
Шесть вопросов поперёк всего юнита. Каждый — это решение, которое ты принимаешь на реальном reliability-ревью: не определение для заучивания, а число, которое надо посчитать, и компромисс, который надо обосновать.
Убедись, что связываешь выбор SLI, арифметику бюджета, вывод burn rate, MWMBR-алертинг, composite-математику пути и организационный слой — тот синтез, к которому вели все восемь уроков.
Сервис держит 99.9% SLO по доступности на окне 28 дней при 1M запросов/день. На 14-й день обслужено 14M запросов и накопилось 21 000 отказов. Насколько здоров бюджет?
On-call копирует page-правило 1h+5m с сервиса на 99.9% SLO — expr (1 − ratio_rate1h) > (14.4 × 0.001) — на сервис с SLO 99.5%, не меняя выражение. Что ломается?
MWMBR page-правило срабатывает, когда burn за 1h И burn за 5m оба превышают 14.4x. Во время инцидента 1h-burn = 18x, но 5m-burn упал до 9x. Должно ли пейджить и что говорит каждое окно?
Путь checkout проходит через API gateway, auth, inventory, payment и database, каждый держит независимый 99.9% SLO, все зелёные. Пользовательский success rate checkout — ~99.5%. Как это читать и чинить?
SLI доступности checkout считает любой 2xx «хорошим». Он стабильно зелёный, но клиенты сообщают о двойных списаниях и 30-секундных «успешных» checkout. Почему SLO это пропускает и какой senior-фикс?
Через полгода после раскатки SLO на 80 сервисов с корректно сгенерированными MWMBR-алертами и подписанной error budget policy половина команд игнорирует пейджи, а бюджеты уходят в минус без freeze. Какова наиболее вероятная корневая причина?
Сквозная линия юнита — одна цепочка арифметики, ставшей организационной: SLI = good/total (и он обязан отслеживать боль пользователя, а не 2xx), SLO — это цель, error budget = (1 − SLO) × events, а burn rate нормализует трату. Алертинг выводится из burn = (budget_fraction × period) / window, срабатывает по длинному-AND-короткому окну, чтобы быть и устойчивым к шуму, и быстрым на сброс; не забудь пересчитать budget rate при смене SLO-цели. Пути перемножаются (0.999^5 ≈ 99.5%), iceberg SLI прячут корректность за 2xx, SLO обязан быть строже SLA, и фреймворк приносит пользу, только когда подписанная и исполняемая политика превращает число в решение.