Передача внешнего trace-id в YDB
gRPC API
YDB поддерживает передачу внешних trace-id для построения цельной трассы операции. Передача trace-id производится согласно спецификации trace context — через заголовок traceparent
gRPC запроса должна передаваться строка вида 00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01
. Она состоит из 4 частей, разделенных символом -
:
- Версия – на момент написания документации спецификация определяет только версию 00.
- Trace id – идентификатор трассы, частью которой является запрос.
- Parent id – идентификатор родительского спана.
- Флаги – набор рекомендаций по работе с переданными в заголовке данными.
Только версия 00 поддерживается, флаги игнорируются. Если заголовок не соответствует спецификации, он игнорируется. Все получаемые таким образом трассы имеют уровень детализации 13 (все компоненты трассируются с уровнем Detailed
).
Важно
При наличии секции external_throttling
и потоке запросов, превышающем установленные лимиты, могут трассироваться не все запросы. При отсутствии секции external_throttling
заголовок traceparent
игноруется и никакие внешние трассы не продолжаются.
Поддержка SDK
Некоторые SDK поддерживают передачу trace-id, их список, а так же примеры использования вы можете найти на странице Включение трассировки в Jaeger.