awesome-everything EN
↑ Обратно к восхождению

Наблюдаемость

Trace propagation: тест с множественным выбором

Суть Синтез юнита trace propagation в формате множественного выбора — W3C-заголовок, consistent sampling, лимиты tail-sampling-коллектора, async-границы и тихие production-сбои.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 13 min

Шесть вопросов, прошивающих весь юнит. Каждый отражает решение, которое ты принимаешь в реальном инциденте, — не определение для пересказа, а выбор по 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 — единственная метрика, которая говорит, что дашборд врёт.

Продолжить восхождение ↑Trace propagation: тест на свободное воспроизведение
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.