Наблюдаемость
Trace propagation: тест с множественным выбором
Шесть вопросов, прошивающих весь юнит. Каждый отражает решение, которое ты принимаешь в реальном инциденте, — не определение для пересказа, а выбор по propagation, который надо взвесить, пока дашборд врёт тебе о том, сколько ты на самом деле видишь.
Убедись, что можешь связать формат W3C-заголовка, consistent sampling, экономику tail-sampling-коллектора, сбои на async-границах и наблюдаемость самой propagation — синтез, к которому вели отдельные уроки.
Сервис получает 'traceparent: 99-aaaaaaaa-bbbbbbbb-01'. Что он обязан сделать по W3C-спеке и почему это правило важно для всего флота?
Команда гоняет вероятностный head sampling на 1% по 12 сервисам без центрального координатора. Как все 12 независимо договариваются оставить или отбросить один и тот же trace?
Tail-sampling-коллектор OOM-ится каждые несколько часов. Число трейсов ровное, но spans-per-trace растёт. В чём причина и какой «фикс» делает только хуже?
Node-сервис использует OTel HTTP-автоинструментацию. И работа, отложенная через setTimeout, и сообщения, которые он публикует в Kafka, появляются как orphan-трейсы. Какой правильный двухчастный фикс?
Orphan-span rate внутреннего сервиса держится на 5% целый квартал, а дашборды показывают на вид целые трейсы. Команда добавляет tail sampling в надежде это вычистить. В чём ключевое заблуждение?
Консьюмер тянет 1000 Kafka-сообщений и обрабатывает их одним batch. Моделирование этого как один parent span с 1000 детей OOM-ит коллектор. Какой идиоматичный фикс и что он сохраняет?
Сквозная линия юнита — одна цепочка: 55-байтный W3C traceparent сшивает сервисы, невалидный заголовок означает «старт заново», а равномерно случайный trace-id позволяет каждому сервису захешировать один и тот же вердикт keep/drop для consistent sampling. Tail-sampling-коллектор меняет RAM (активные трейсы × span × байты × окно) на отбор с учётом исхода, поэтому долгоживущие трейсы и fan-in надо разбивать через span-links. Async-границы (setTimeout требует context.bind, очереди — inject/extract) — главный источник orphan’ов, а поскольку propagation падает тихо, orphan-span rate — единственная метрика, которая говорит, что дашборд врёт.