Comments (8)
We explained in PR why we need limit. We still haven't explained why the limit is 512
from trace-context.
So far asking different providers - everybody wants smaller limit, but have not upper-bound physical limitation that will prevent saving and propagation of 512 characters.
So we need to put rationaly of why we need 512. If you implemented tracestate - can you post example/size you need?
from trace-context.
For example, B3 encoding will require 72 characters tracestate: b3=80f198ee56343ba864fe8b2a57d3eff7-05e3ac9a4f6e3b90-1-e457b5a2e4d86bd1
(see: openzipkin/b3-propagation#21).
from trace-context.
I feel that any limit number is going to be largely arbitrary. We can instead clearly outline procedure for trimming the state and not specify a hard limit, or use an external one like limit for cookies.
from trace-context.
One thing I think we can avoid by defining some hard limit is abuse of the header to propagate user-defined baggage. If you know that it will be cut anyway - you'd look for solution like Correlation-Context
from the beginning instead of frustration when context will not be propagated,
I like that idea though. Definitely good idea to detail the trimming procedure
from trace-context.
I just think the exact limit can be very application specific, e.g. an application that exchanges many small messages will be more sensitive to the header size than one that carries 20Kb JSON requests. So the exact limit might be configurable per application, but the spec's hard limit should be more generous, like the cookie size limit of 4093.
Let the market forces pressure vendors to keep the size to a minimum.
from trace-context.
Here is how the Dynatrace tracestate will likely (typically) look like:
fw5-29a-3039@dt=1;FEC354CD6;1;2;727c
(36 bytes)
However, the elements are of variable length, so they could be longer. The theoretical maximum would be like this:
fw5-ffffffff-ffffffff@dt=ffffffff;ffffffffffffffff;ffffffff;ffffffff;ffffffff
(77 bytes)
from trace-context.
Closing in favor of #239
from trace-context.
Related Issues (20)
- Adopt either span-id or parent-id for section headings HOT 4
- When headers should be propagated in browsers should be made more clear HOT 2
- Change the defining document for HTTP from RFC7230 to RFC9110 HOT 2
- Update tests to test Trace Context level 2 by default
- Incorporate Level 2 changes (random trace id flag) into traceresponse header in Level 3
- Add more normative text for flags processing in traceresponse
- Level 3 spec: Update privacy section to include information about traceresponse headers.
- Random part of trace ID should be uniformly distributed HOT 3
- Autopublishing level2/Level3 specs need to work with multiple markdown files HOT 2
- Document handling of tracestate duplicate keys HOT 6
- Does this specification define a way to handle retries? HOT 4
- Proposal: Add a "propagation-only-parent" flag to be set to true if parents is a no-tracing service HOT 6
- Proposal: Allow common base64 encoding in tracestate values HOT 5
- Should tracing headers be included in 304 Not Modified responses? HOT 14
- Revisit header name -- Server-Timing vs. traceresponse HOT 9
- Server-timing names HOT 6
- Remove all markdown includes
- Can Traceresponse enable parent-child relationship between browser and server spans?
- Trace Context Extensibility HOT 7
- request for clarification re size of parent-id HOT 4
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 trace-context.