Skip to content

Discourage vendors from validating other vendors' tracestate entries #384

@justinfoote

Description

@justinfoote

Section 4.3.3 of the spec says:

The vendor MAY validate the tracestate header. If the tracestate header cannot be parsed the vendor MAY discard the entire header. Invalid tracestate entries MAY also be discarded.

The OpenTelemetry implementations have interpreted this in a way that is problematic for us.
In opentelemetry-dotnet, the entire tracestate is discarded it contains any invalid entries.
In opentelemetry-java, both tracestate and traceparent are discarded if tracestate contains any invalid entries!

Because of OpenTelemetry's interpretation of this clause, I believe every vendor will be forced to validate the entire tracestate payload (or risk OpenTelemetry restarting their traces), and I would very much prefer not to spend the resources parsing other vendors' tracestate entries.

I know we're too late for the first version of this spec, but I'd really like us to revisit this clause for the next version. Instead of a MAY, I'd like this changed to "SHOULD NOT validate the tracestate header".

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions