Skip to content

Conversation

@zarinatlupova
Copy link
Contributor

@zarinatlupova zarinatlupova commented Apr 15, 2025

Добавлена поддержка передачи traceparent (стандарт W3C TraceContext) через gRPC-заголовки. Это позволяет:

  • Связывать трейсы клиента и сервера YDB в единую цепочку.
  • Интегрироваться с системами мониторинга (Jaeger, OpenTelemetry).

Как это работает

  • Пользователь задает TraceParent в TRequestSettings.
  • TRequestSettings преобразуется в TRpcRequestSettings
  • Заголовок теперь передается через Aux.
  • TGRpcRequestProcessorCommon автоматически добавляет его в gRPC-заголовки как traceparent. Поддерживаются все типы запросов (синхронные, асинхронные, streaming).
  • Если TraceParent пуст — заголовок не передается.

В дальнейшем при интеграция с OpenTelemetry:

  • TraceParent можно будет автоматически брать извне (например, из OpenTelemetry Context).

Формат

Заголовок соответствует W3C TraceContext:

00-trace_id-parent_span_id-flags
  • trace_id: 32 hex chars (16 bytes)
  • parent_span_id: 16 hex chars (8 bytes)
  • flags: 01 (sampled)


// Add TraceParent to headers (if it is set)
if (!settings.TraceParent_.empty()) {
rpcSettings.Header.emplace_back("traceparent", settings.TraceParent_);
Copy link
Collaborator

@Gazizonoki Gazizonoki Apr 21, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

На будущее, лучше traceparent сразу до инициализации Aux прокидывать (в grpc_connections.h).
Смысл такой - нам хочется в grpc_connections.h тоже собирать спаны, удобно, если там будет TraceParent отдельным параметром.
Пока можно так замержить, но в будущем стоит поправить.

@Gazizonoki
Copy link
Collaborator

PR merged in ydb repo: ydb-platform/ydb#17561 and synced to ydb-cpp-sdk repo: aec1485

@Gazizonoki Gazizonoki closed this May 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants