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

Support 128bit trace IDs #86

Closed
codefromthecrypt opened this issue Jul 12, 2017 · 0 comments
Closed

Support 128bit trace IDs #86

codefromthecrypt opened this issue Jul 12, 2017 · 0 comments

Comments

@codefromthecrypt
Copy link
Member

128bit trace IDs allow interoperability with systems like Google's tracing service, and less collision for those doing high-volume sampling (ex from devices or lambda functions).

The process includes adding a separate field TraceIdHigh which includes the upper 64 bits of the trace ID, or 0 if it 128-bit trace IDs aren't in use. Most implementations keep their sampling 64-bit even when 128-bit is on. A flag like below would be used to indicate whether or not zipkin4net would originate 128bit trace IDs or not. This would default to false to allow sites to slowly upgrade. In some sites it wouldn't be set to true ever.

    /** When true, new root spans will have 128-bit trace IDs. Defaults to false (64-bit) */
    public Builder traceId128Bit(boolean traceId128Bit) {

Key unit tests would include ensuring B3 propagation can accept the longer 32character trace IDs and not lose them on the way out (when applying to outbound requests). Other tests would show that the data sent to zipkin has traceIdHigh (if thrift) or a longer traceId field (if json)

openzipkin/b3-propagation#6

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

1 participant