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

Make initial traceparent optional #401

Open
codefromthecrypt opened this issue Mar 26, 2020 · 5 comments
Open

Make initial traceparent optional #401

codefromthecrypt opened this issue Mar 26, 2020 · 5 comments

Comments

@codefromthecrypt
Copy link

There are a number of reasons why initial headers sent should allow tracestate without traceparent.

  • format or vendor-specific sampling hints. ex b3=1
  • passing in a format or vendor-specific way only the trace ID
  • vendors who are only using tracestate for non-trace data such as appId
  • special, vendor-specific instructions. ex return back a synthetic parent ID
  • mechanical conversion of existing headers by a proxy
    • ex stashing the b3 header as a b3 entry, as a save point, but without having to convert it to traceparent format which has a squishy notion of the sampling flag.

Most importantly, this can help reduce the pressure to add vendor-specific features to the traceparent or response variants.

@codefromthecrypt
Copy link
Author

The "initial" part is important. The state model impact is once, there is a traceparent header you must always continue to send that with the existing rules on state management. This is to cover the case where it doesn't already exist.

@danielkhan danielkhan added this to the 7. level-2 milestone Mar 27, 2020
@danielkhan danielkhan self-assigned this Mar 27, 2020
@danielkhan
Copy link
Contributor

danielkhan commented Mar 27, 2020

This is a valid scenario. Right now, the normative section is not really clear on that.
At the same time, the version is contained in traceparent and this might break parsing in later versions.
In our working group meeting, we leaned towards allowing that in level-2.

@SergeyKanzhelev
Copy link
Member

@Kanwaldeep I believe IOT in MS may be using specification this way. Do you want to propose the change for the spec in level-2? I think it is a good improvement for the spec

@kalyanaj
Copy link
Contributor

We need to understand the use cases that absolutely need this support.

@SergeyKanzhelev
Copy link
Member

To reiterate conversation we just had, the scenario is understood, but there are workarounds. Response header support in future may make it even easier to work around. Allowing this in spec may lead to abuse when tracestate is used as a general purpose baggage which is not desireable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants