-
Notifications
You must be signed in to change notification settings - Fork 19
Add traceparent to TRequestSettings #326 #400
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
||
// Add TraceParent to headers (if it is set) | ||
if (!settings.TraceParent_.empty()) { | ||
rpcSettings.Header.emplace_back("traceparent", settings.TraceParent_); |
There was a problem hiding this comment.
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 отдельным параметром.
Пока можно так замержить, но в будущем стоит поправить.
487877c
to
20ea715
Compare
PR merged in ydb repo: ydb-platform/ydb#17561 and synced to ydb-cpp-sdk repo: aec1485 |
Добавлена поддержка передачи traceparent (стандарт W3C TraceContext) через gRPC-заголовки. Это позволяет:
Как это работает
TraceParent
вTRequestSettings
.TRequestSettings
преобразуется вTRpcRequestSettings
Aux
.TGRpcRequestProcessorCommon
автоматически добавляет его вgRPC
-заголовки какtraceparent
. Поддерживаются все типы запросов (синхронные, асинхронные, streaming).TraceParent
пуст — заголовок не передается.В дальнейшем при интеграция с OpenTelemetry:
TraceParent
можно будет автоматически брать извне (например, из OpenTelemetry Context).Формат
Заголовок соответствует W3C TraceContext:
trace_id
: 32 hex chars (16 bytes)parent_span_id
: 16 hex chars (8 bytes)flags
:01
(sampled)