Skip to content
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

Implement non-default trace context propagators #156

Open
tapih opened this issue Mar 11, 2024 · 1 comment
Open

Implement non-default trace context propagators #156

tapih opened this issue Mar 11, 2024 · 1 comment

Comments

@tapih
Copy link
Contributor

tapih commented Mar 11, 2024

Is your feature request related to a problem? Please describe.

My company runs Dart gRPC servers in production, and I am thinking of using this SDK to implement distributed tracing.
There are the Envoy proxy running in front of the gRPC servers, and all the HTTP requests are sent through the Envoy proxy.

In this scenario, Envoy needs to generate a tracing id, but the OpenTelemetry tracing extension is still marked as work-in-progress and it does not support OpenTelemetry's default W3C context propagator. Instead, Envoy supports Zipkin's B3 and Datadog as described in this document.

Envoy is widely accepted in the cloud-native community, and some SDKs for other languages seem to implement the B3 propagator. I think it would be nice to implement a propagator other than W3C as well in Dart SDK.

Describe the solution you'd like

Actually, I have already implemented both the propagators in my forked repository and confirmed that they worked properly in our development environment.

There are 2 options for where to place non-default propagator implementations.

  1. Inside Workvia/opentelemetry-dart
  2. Outside Workvia/opentelemetry-dart (like https://github.com/open-telemetry/opentelemetry-go-contrib/tree/main/propagators)

If you think the second option is better, we should export NonRecordingSpan in order to implement these propagators outside of the upstream repository.
Basically, I'd be happy to contribute this to upstream(this repository), but I'd like to know which approach I should take since it might increase the maintenance burden.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

@blakeroberts-wk
Copy link
Contributor

Nice. I think you've stated this very well in that these additional propagators should exist in another repo such as a opentelemetry-dart-contrib or similar. And to do that, NonRecordingSpan should be exposed.

I would be happy to review a PR to expose NonRecordingSpan!

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

No branches or pull requests

2 participants