OpenTelemetry TraceIdRatioBased sampler requirements following OTEP 235#4166
OpenTelemetry TraceIdRatioBased sampler requirements following OTEP 235#4166reyang merged 53 commits intoopen-telemetry:mainfrom
Conversation
|
Feedback from the OTel Spec SIG meeting discussion cc/ @jsuereth:
Update: 68fa270 |
|
This PR was marked stale due to lack of activity. It will be closed in 7 days. |
…ication into jmacd/otep235
…ication into jmacd/otep235
This reduces the number of lines of diff in PR 4166, which replaces the entire `tracestate-probability-sampling.md` file with new contents. Part of #4166. ## Changes Move a file, place a link to it and explain that a change is in progress.
|
@kalyanaj @PeterF778 @oertl @kentquirk Please take another look at this PR, especially the file |
|
@open-telemetry/specs-trace-approvers @open-telemetry/specs-approvers @open-telemetry/technical-committee this PR has reached consensus in the Sampling SIG, we have multiple prototypes implemented, and we are looking for final approvals. |
…ication into jmacd/otep235
…ication into jmacd/otep235
|
There had been an example written in Golang for computing the threshold with precision, and (a) I found a bug, (b) I rewrote it so that all the examples are now in Python. I fixed a few other inconsistencies. This PR is up-to-date but should be held until a corresponding draft for OTEP-0250 (#4321) is available. |
|
With some great luck, I have opened #4466 with the follow-on work (thats +300 PRs). |
### Context - Add context propagation through Environment Variables specification. ([#4454](#4454)) - On Propagators API, stabilize `GetAll` on the `TextMap` Extract. ([#4472](#4472)) ### Traces - Define sampling threshold field in OpenTelemetry TraceState; define the behavior of TraceIdRatioBased sampler in terms of W3C Trace Context Level 2 randomness. ([#4166](#4166)) ### Metrics - Clarify SDK behavior for Instrument Advisory Parameter. ([#4389](#4389)) ### Logs - Add `Enabled` opt-in operation to the `LogRecordProcessor`. ([#4439](#4439)) - Stabilize `Logger.Enabled`. ([#4463](#4463)) - Stabilize `EventName`. ([#4475](#4475)) ### Baggage - Add context (baggage) propagation through Environment Variables specification. ([#4454](#4454)) ### Resource - Add Datamodel for Entities. ([#4442](#4442)) ### SDK Configuration - Convert declarative config env var substitution syntax to ABNF. ([#4448](#4448)) - List declarative config supported SDK extension plugin interfaces. ([#4452](#4452)) --------- Co-authored-by: Armin Ruech <7052238+arminru@users.noreply.github.com>
July 2025 release. ### Context - Add Supplementary Guidelines for environment variables as context carrier specification. ([#4548](#4548)) ### Traces - Define sampling threshold field in OpenTelemetry TraceState; define the behavior of TraceIdRatioBased sampler in terms of W3C Trace Context Level 2 randomness. ([#4166](#4166)) - Define CompositeSampler implementation and built-in ComposableSampler interfaces. ([#4466](#4466)) - Define how SDK implements `Tracer.Enabled`. ([#4537](#4537)) ### Logs - Stabilize `Event Name` parameter of `Logger.Enabled`. ([#4534](#4534)) - Stabilize SDK and No-Op `Logger.Enabled`. ([#4536](#4536)) - `SeverityNumber=0` MAY be used to represent an unspecified value. ([#4535](#4535)) ### Baggage - Add Supplementary Guidelines for environment variables as context carrier specification. ([#4548](#4548)) ### Compatibility - Clarify expectations about Prometheus content negotiation for metric names. ([#4543](#4543)) --------- Co-authored-by: Armin Ruech <7052238+arminru@users.noreply.github.com> Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
Part of #1413 Fixes #4601 ## Changes Restores TraceIdRatioBased specification from before #4166. * [x] Related issues #1413 * [x] Related [OTEP 235](https://github.com/open-telemetry/opentelemetry-specification/blob/main/oteps/trace/0235-sampling-threshold-in-trace-state.md) * [x] [`CHANGELOG.md`](https://github.com/open-telemetry/opentelemetry-specification/blob/main/CHANGELOG.md) file updated for non-trivial changes --------- Co-authored-by: Otmar Ertl <otmar.ertl@gmail.com> Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com> Co-authored-by: Carlos Alberto Cortez <calberto.cortez@gmail.com>
Goal is to improve our public documentation, which has two documents with the same title today, the second one being correct. Finishes the deprecation process started in #4168. When #4166 added the new sampling specification, the old one was renamed. Now that the new specification is complete in the specification, the old one is a distraction. ## Changes This moves the old document into the `oteps/` repository where it will remain a permanent record of this effort.

Fixes #1413.
Changes
Updates Trace SDK and TraceState handling specifications with OTEP 235 sampling thresholds. This PR depends on #4162 to introduce the concept of Trace Randomness. This PR is the second part of two, it focuses on thresholds.
TraceIdRatioBasedalgorithm section. The existing TODO implies this is not a breaking change.TraceIdRatioBasedconstructionTraceIdRatioBaseddescription (leave unmodified).The content of OTEP 235 was revised for clarity by @kalyanaj in open-telemetry/oteps#261. I've heavily copied from the final text in that still-unmerged OTEP. I introduced new content explaining how to compute thresholds from probabilities with use of variable precision, referring to the OTel Collector-Contrib
pkg/samplingreference implementation. The new (Golang) demonstration code is validated here, https://go.dev/play/p/7eLM6FkuoA5.A proof of concept for this specification along with #4162 can be found in open-telemetry/opentelemetry-go#5645.
Part of #3602.
Product of the Sampling SIG members @kentquirk @kalyanaj @oertl @PeterF778 and myself.
CHANGELOG.mdspec-compliance-matrix.md