open-telemetry / open-telemetry/opentelemetry-java

B3 Propagator can't properly handle missing `X-B3-Sampled` header

Open
#3,517 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

blocked:spec Bug
Dominant language
Java
Stars
2.5k
Forks
1k
Avg merge
3d 17h
Merged PRs (30d)
58

Description

If the X-B3-Sampled header is missing, the propagator is considering this as "not sampled" when creating the resulting TraceFlags. This will cause Samplers to then consider the parent as "not sampled" when actually B3 says that this should "leave the decision to the server".

I think this might be a bigger issue, however. When propagation is happening in Otel, we only have 2 options: sampled & not-sampled. We don't have a value that represents "you decide".

This might be an issue for the specs and interop with B3.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the B3 propagator and the TraceFlags/Sampler interaction described in the issue. Review the B3 and OpenTelemetry propagation specifications to determine how a missing X-B3-Sampled header should be represented and whether the model supports leaving the sampling decision to the server. Done means an agreed interoperability behavior and a clear implementation scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
distributed-systems, observability-sre
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.