Comments (6)
I think we should probably just remove the wording that states this is a companion to traceparent. It solves an entirely different problem and could be propagated with or without trace context.
from baggage.
I agree. They're two separate things, with mostly non-overlapping use cases.
But even if we don't remove the line about correlation context being a companion to traceparent, this doesn't feel too inconsistent to me. Some parts of the spec are mandatory (traceparent and tracestate), and some parts of the spec are optional (correlation context).
from baggage.
Thanks @anuraaga the spec you mentioned is the only reason why brave's impl is nonsensically dropping good data in tracestate when traceparent doesn't exist.
To carry B3 (in tracestate) without traceparent is much easier than with it as the traceparent header, especially how it defines sampled is of no use except ID correlation. We have to ignore it basically.
from baggage.
It's an interesting point about keeping tracestate even if parent gets lost to at least have something to work with.
It feels like that also fits the MUST propagate model well - header in, header out should generally give more functionality to users.
I guess I'm still not clear on, is this one of the larger bucket of w3c trace header, so it's an optional feature (leaving it up to the user to manage libraries to get the features they need)? Or is it an independent feature. The replies give me both impressions. If it is an independent feature, surely we want that to mandate propagation so context parameters don't get lost?
from baggage.
I see correlation context as a separate feature from trace context.
@adriancole if we allow propagation of tracestate without traceparent, that would violate what I view as one of the most important parts of the trace context spec which is interoperability between tracing systems. If one implementation only needs tracestate and doesn't create a traceparent, they are potentially breaking the traces of other systems.
In any case, I don't think that should apply to correlation context, which should be allowed to be propagated without a trace context.
from baggage.
We will remove traceparent
wording and change to SHOULD
from baggage.
Related Issues (20)
- RFC 8941 HOT 2
- Clarify in text the relationship to Trace Context HOT 1
- Relationship to other HTTP Header encoding proposals HOT 8
- Make trust/privacy boundary explicit (at least in browsers)
- Need to update the limits section in rationale to be in sync with the new lower limits HOT 1
- Clarification on how baggage should be propagated when using websockets HOT 2
- Acknowledgements HOT 5
- Precent character in value must be precent-encoded
- When multiple baggage headers are used, clarify that minimum limits apply to the cumulative total HOT 3
- Baggage: Mention about minimum limits approach first before describing the conditions HOT 1
- We need to document the reasoning for the supported character range
- Test harness to show handling of invalid inputs
- Extend parse tests with more use cases
- Clarification regarding baggage list-member value
- Clarify how compliant implementations should handle invalid baggage entries HOT 2
- Java: Audit the Otel implementation of Baggage using Baggage Test Suite
- .NET: Audit the OpenTelemetry implementation of Baggage using Baggage test suite
- Python: Audit the Otel implementation of Baggage
- GoLang: Audit the Otel implementation of Baggage
- Audit a sample of Otel's baggage test suites
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from baggage.