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

[3.x] - Add support for multiple baggage items #7022

Merged

Conversation

dalexandrov
Copy link
Contributor

Resolves #7018

@dalexandrov dalexandrov added enhancement New feature or request tracing 3.x Issues for 3.x version branch labels Jun 19, 2023
@dalexandrov dalexandrov self-assigned this Jun 19, 2023
@oracle-contributor-agreement oracle-contributor-agreement bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label Jun 19, 2023
port: 14250
path: "/api/traces"
propagation: "w3c"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you specify only w3c will there be any traceId/spanId/parentSpanId/sampled values propagated? I know this single test doesn't rely on that (only baggage), but won't any other tests that are influenced by this yaml have the side-effect of not getting their traceId etc? Just trying to understand.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The w3c tracer documentation is available here: https://www.w3.org/TR/trace-context/
I think everything should be propagated correctly.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To clarify the above statement further. When w3c is added to propagation, it causes the following to be used:
io.opentelemetry.api.baggage.propagation.W3CBaggagePropagator
And as you can tell from the name, it's only baggage. This was done in helidon-6611
f365e61
As a result, to get similar (but not identical) baggage propagation while still retaining X-B3-TraceId headers you must use "b3,w3c" as the propagation.
I say not identical because the old b3 JaegerClient propagation used 1 header per baggage item, ex:
baggage-foo=[fooValue], baggage-bar=[barValue]
Whereas the b3,w3c propagation now uses 1 baggage header for all values, ex:
baggage=[foo=fooValue, bar=barValue]

@dalexandrov dalexandrov merged commit 9cc03f3 into helidon-io:helidon-3.x Jun 21, 2023
@dalexandrov dalexandrov deleted the 7018_multiple_baggage branch June 21, 2023 12:34
@dalexandrov dalexandrov added this to the 3.2.2 milestone Jun 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3.x Issues for 3.x version branch enhancement New feature or request OCA Verified All contributors have signed the Oracle Contributor Agreement. tracing
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Not able to propagate baggage using helidon-tracing-jaeger
3 participants