Передача внешнего trace-id в YDB

gRPC API

YDB поддерживает передачу внешних trace-id для построения цельной трассы операции. Передача trace-id производится согласно спецификации trace context — через заголовок traceparent gRPC запроса должна передаваться строка вида 00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01. Она состоит из 4 частей, разделенных символом -:

  1. Версия – на момент написания документации спецификация определяет только версию 00.
  2. Trace id – идентификатор трассы, частью которой является запрос.
  3. Parent id – идентификатор родительского спана.
  4. Флаги – набор рекомендаций по работе с переданными в заголовке данными.

Только версия 00 поддерживается, флаги игнорируются. Если заголовок не соответствует спецификации, он игнорируется. Все получаемые таким образом трассы имеют уровень детализации 13 (все компоненты трассируются с уровнем Detailed).

Важно

При наличии секции external_throttling и потоке запросов, превышающем установленные лимиты, могут трассироваться не все запросы. При отсутствии секции external_throttling заголовок traceparent игноруется и никакие внешние трассы не продолжаются.

Поддержка SDK

Некоторые SDK поддерживают передачу trace-id, их список, а так же примеры использования вы можете найти на странице Включение трассировки в Jaeger.

Предыдущая
Следующая