Выбор ответа Junior Трейсы и OpenTelemetry спрашивают часто обновлено

Почему трейс рвётся

Вопрос

В трейсе видно сервисы A и B, а дальше вызовы B в C отображаются отдельным трейсом. Что вероятнее всего?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Сервис B не передаёт контекст (traceparent) в вызов C. Спаны C создают новый traceid, если не получили контекст родителя.

Варианты ответа

  1. У сервиса C неправильное время на сервере, и спаны не склеиваются
  2. Сервис C слишком медленный, и бэкенд закрыл исходный трейс по таймауту
  3. Бэкенд трейсов не поддерживает больше двух сервисов в одном трейсе
  4. Сервис B не передаёт контекст (traceparent) в вызов Cправильный ответ

Разбор

Спаны C создают новый trace_id, если не получили контекст родителя. Обычно виноват клиент без инструментирования, очередь без проброса заголовков или прокси, который выкидывает заголовки. Расхождение часов искажает отображение времени, но не рвёт трейс. Медленность и число сервисов ни при чём.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.