Closed youngbupark closed 1 month ago
This requires #437 "Update Binary format in the Specification" (since #426 removed it; it was there before but was "temporarily" removed due to a larger refactoring of both in-process and cross-process context propagation via https://github.com/open-telemetry/oteps/pull/66). However, #437 depends on #577 "Small clean up for Propagators" which turned out to be not so small (has been in review for over a month now).
While Binary
is expected to make it (back) into GA, I'm wondering whether we need this specific item too.
Opinion on this @bogdandrutu ?
How will grpc-trace-bin work?
I'd like to understand the motivation here because there is no detail or discussion.
Must both traceparent and grpc-trace-bin headers be present on a gRPC HTTP request?
grpc-trace-bin is the binary equivalent of the traceparent. They transmit the same data.
Or is grpc-trace-bin an optional additional for backwards compatibility. Servers check for traceparent, and if it is not present then use grpc-trace-bin? (or the other way around)
it is required for compatibility with opencensus (at least in js) because that is what OC used.
Or are gRPC HTTP requests unique that it uses grpc-trace-bin while other HTTP requests use traceparent?
the motivation is simply that gRPC is a binary protocol which can take advantage of the more tightly packed binary format to save some bytes on each request
I think we also need to have a separate discussion with gRPC to deprecate grpc-trace-bin and switch them to the TraceContext header.
Is this still in development? I'm trying to enable distributed tracing from a JS service to a Golang service which communicate via gRPC but it doesn't work as described on @opentelemetry/instrumentation-grpc, could grpc-trace-bin
be the reason? If it so, then how it's @opentelemetry/instrumentation-grpc supposed to work if is not sending grpc-trace-bin
?
Also an interested party here
In Java gRPC Instrumentation, we don't have any special handling for this, which means we (only) use the traceparent
header when W3C propagator is used.
Is this related to https://github.com/open-telemetry/opentelemetry-specification/issues/437?
Looks like current spec describes only W3C traceparent header for span context propagation for now.
However, Opencensus gRPC spec uses
grpc-trace-bin
header for spancontext propagation.Does open-telemetry have a plan to support it?