-
Notifications
You must be signed in to change notification settings - Fork 931
OpenTelemetry TraceIdRatioBased sampler requirements following OTEP 235 #4166
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
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. |
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
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 <[email protected]>
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 <[email protected]> Co-authored-by: Trask Stalnaker <[email protected]>
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 <[email protected]> Co-authored-by: Trask Stalnaker <[email protected]> Co-authored-by: Carlos Alberto Cortez <[email protected]>
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.
TraceIdRatioBased
algorithm section. The existing TODO implies this is not a breaking change.TraceIdRatioBased
constructionTraceIdRatioBased
description (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/sampling
reference 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.md
spec-compliance-matrix.md