Выбор ответа Junior Трейсы и OpenTelemetry спрашивают часто обновлено
Почему трейс рвётся
Вопрос
В трейсе видно сервисы A и B, а дальше вызовы B в C отображаются отдельным трейсом. Что вероятнее всего?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Сервис B не передаёт контекст (traceparent) в вызов C. Спаны C создают новый traceid, если не получили контекст родителя.
Варианты ответа
- У сервиса C неправильное время на сервере, и спаны не склеиваются
- Сервис C слишком медленный, и бэкенд закрыл исходный трейс по таймауту
- Бэкенд трейсов не поддерживает больше двух сервисов в одном трейсе
- Сервис B не передаёт контекст (traceparent) в вызов Cправильный ответ
Разбор
Спаны C создают новый trace_id, если не получили контекст родителя. Обычно виноват клиент без инструментирования, очередь без проброса заголовков или прокси, который выкидывает заголовки. Расхождение часов искажает отображение времени, но не рвёт трейс. Медленность и число сервисов ни при чём.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.