Наблюдаемость
Observability-капстоун: синтез с множественным выбором
Шесть вопросов, которые заставляют связать весь трек воедино — три pillar’а, OTel, RED/USE, SLO-бюджеты, trace propagation, профилирование. Каждый — это решение, которое вы принимаете посреди инцидента или на design-review, а не определение для пересказа.
Убедиться, что вы собираете главу в одну систему: воронку, которая ведёт MTTR, trace-id, который джойнит четыре сигнала, рычаги sampling и cardinality, удерживающие счёт, и арифметику, оправдывающую расход.
On-call получает пейдж 'checkout SLO burn 14x'. RED показывает рост p99 Duration, Rate и Errors ровные. Какой следующий шаг воронки правильный и почему именно он?
Запрос замедляется. RED Duration это показывает, трейс показывает, что inventory.lookup владеет 1.3s, профиль показывает, что CPU съел json.Marshal, а логи держат деталь ошибки. Какое единственное свойство заставляет все четыре сигнала отвечать на один запрос про ЭТОТ request?
Команда делает head sampling трейсов на 5% в SDK, чтобы срезать стоимость. Во время инцидента они не могут найти трейсы для падающих запросов. Что пошло не так и что чинит проблему?
Счёт за observability удвоился за неделю без изменения трафика. Одна команда добавила user_id как label метрики и начала логировать полные тела запросов на INFO. Какие два разных failure mode это и какой сигнал бьёт каждый?
Две команды делят идентичный тулинг. Команда A детектит outage за 30s и резолвит за 20min; команда B детектит за 8min и резолвит за 12min. При одинаковой severity, чьи пользователи страдают меньше суммарно и что это говорит о том, куда инвестировать?
CFO спрашивает, почему observability стоит $150k/год. Орг прогоняет ~30 инцидентов/год, каждый теперь резолвится на ~25 min быстрее baseline до инструментирования, при примерно $5k/min revenue-экспозиции. Какой ответ сильнейший?
Глава собирается в одну систему. Воронка (SLO burn → RED → trace → profile → git blame) ведёт диагностику, и каждый шаг продиктован предыдущим. Trace-id, пробрасываемый W3C traceparent, — это то, что заставляет четыре сигнала отвечать на один per-request запрос. Cost-дисциплина — это три независимых рычага: cardinality-лимиты, tail sampling, tiered retention, каждый бьёт по своему сигналу. MTTD обычно перевешивает MTTR для user impact, потому что окно детекта полностью не митигировано. А расход оправдан арифметикой: избегнутая стоимость outage из реальных MTTR-дельт, обычно 10–30x. Каждый ответ здесь — drill-down из этих сквозных линий.