Is your feature request related to a problem? Please describe
When propagating tracing context, DotPulsar uses messaging.trace_parent and messaging.trace_state properties, both on the Producer and Consumer side.
Other clients use the TextMapPropagator from OpenTelemetry which uses other fields:
Behind the scenes, TextMapPropagator uses traceparent and tracestate across all implementations as defined by the W3C Trace Context recommendation (https://www.w3.org/TR/trace-context/) - Although this document sets recommendations for HTTP headers, it is widely used in other carriers.
The result is that context propagation does not work between DotPulsar and the other client implementations.
Describe the solution you'd like and alternatives you've considered
Implement PIP 23 from Pulsar: https://github.com/apache/pulsar/wiki/PIP-23:-Message-Tracing-By-Interceptors to allow Interceptors to hook into DotPulsar and create an OpenTelemetry contrib package that will live here: https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src and which will depend on the OpenTelemetry.API package and its standardized extractors.
By doing so, full OpenTelemetry support can be added (including Baggage and other propagation elements) without OpenTelemetry becoming a dependency in DotPulsar itself
Is your feature request related to a problem? Please describe
When propagating tracing context, DotPulsar uses
messaging.trace_parentandmessaging.trace_stateproperties, both on the Producer and Consumer side.Other clients use the TextMapPropagator from OpenTelemetry which uses other fields:
Behind the scenes,
TextMapPropagatorusestraceparentandtracestateacross all implementations as defined by the W3C Trace Context recommendation (https://www.w3.org/TR/trace-context/) - Although this document sets recommendations for HTTP headers, it is widely used in other carriers.The result is that context propagation does not work between DotPulsar and the other client implementations.
Describe the solution you'd like and alternatives you've considered
Implement PIP 23 from Pulsar: https://github.com/apache/pulsar/wiki/PIP-23:-Message-Tracing-By-Interceptors to allow Interceptors to hook into DotPulsar and create an OpenTelemetry contrib package that will live here: https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src and which will depend on the OpenTelemetry.API package and its standardized extractors.
By doing so, full OpenTelemetry support can be added (including Baggage and other propagation elements) without OpenTelemetry becoming a dependency in DotPulsar itself