SYSTEM ATLASЗагрузка материала

Стандарт передачи контекста трассировки

Trace Context

Trace Context стандартизирует заголовки traceparent и tracestate для передачи идентичности трассы между сервисами.

Простыми словами

Например, frontend API передаёт traceparent в сервис каталога, а тот — в базу, поэтому задержка видна одной цепочкой. Поэтому заранее определяют границы ожидания и поведение при отказе - иначе один медленный компонент начинает удерживать ресурсы и распространять проблему дальше.

Пример от @Vibeclakr

Пример при разработке

Frontend API передаёт traceparent в сервис каталога, а тот — в базу, поэтому задержка видна одной цепочкой.

Это редакционный пример применения, а не часть определения или доказательство концепции.

Формальное определение

Trace Context стандартизирует заголовки traceparent и tracestate для передачи идентичности трассы между сервисами.

Механизм действия

Отправитель inject-ит trace id, parent id и flags, получатель валидирует их и создаёт дочерний span.

Пример в работе

Нерабочий подход

Внедрить «Стандарт передачи контекста трассировки» как формальную настройку, не проверив сценарий отказа и ограничение: Заголовки нельзя слепо доверять; sampling и приватность требуют политики на границах.

Системный подход

Применять «Стандарт передачи контекста трассировки» только для заявленной цели, проверять поведение на реальном контуре и сохранять наблюдаемый критерий результата.

Ограничения

Заголовки нельзя слепо доверять; sampling и приватность требуют политики на границах.

Источник

W3C Distributed Tracing Working Group, “Trace Context”, 2021.

Первоисточник