-
Couldn't load subscription status.
- Fork 10
Disable distributed OpenTelemetry propagation #1207
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
Prevent OpenTelemetry from sending tracing headers to other applications through HTTP requests. Use an unconfigured `CompositePropagator` to disable HTTP propagation headers while maintaining local trace correlation. It is not configured with any other propagators, so it will not add the headers to the outgoing requests. I hope this fixes the issue with app data being reported to the wrong app, if one app makes a request to another app and they're both instrumented with OpenTelemetry.
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.
I wonder/worry this might break instrumentations that use propagation for other reasons -- for example, our own BullMQ instrumentation, but also others.
It would be worth running the BullMQ instrumentation's tests (for older BullMQ versions, as the instrumentation is broken on latest BullMQ) with this propagator configuration and seeing if it works.
This comment has been minimized.
This comment has been minimized.
|
It would seem this breaks propagation at large: adding This by itself could be an acceptable breakage, but other instrumentations might rely on propagation as well. We may wish to disable propagation specifically for the HTTP integration, if that's possible. |
This is a message from the daily scheduled checks. |
That's weird. If I run the test app we have it does work with the changes in this PR. Request timeline:
Worker timeline:
|
|
I don't see a way to disable the trace headers to be disabled in the HTTP instrumentation. Do you think the suggested change is still acceptable? |
Ah, yes, for our purposes, the BullMQ instrumentation will work just fine with propagation disabled. It will fail to create a link between the Actually, I can't think of an use case for propagation that we wouldn't be okay with breaking -- its whole use case is having different processes share the same trace, which is what we want to avoid. So it's likely okay to merge this as-is, and we'll deal with issues if they arise. |
The previous commit removed all default OpenTelemetry propagators. This may break things we don't want, where our customers make use of the baggage for example. So, lets add back the default propagators, to just disable the `tracecontext` propagator. https://github.com/open-telemetry/opentelemetry-js/blob/e5c02e7cd266597e8658fcf3c1525b48f924082f/experimental/packages/opentelemetry-sdk-node/src/utils.ts#L203-L212


Prevent OpenTelemetry from sending tracing headers to other applications through HTTP requests.
Use an unconfigured
CompositePropagatorto disable HTTP propagation headers while maintaining local trace correlation. It is not configured with any other propagators, so it will not add the headers to the outgoing requests.I hope this fixes the issue with app data being reported to the wrong app, if one app makes a request to another app and they're both instrumented with OpenTelemetry.
To do
Resources