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

Consistent delegating sampler, alternative to ParentBased #4294

Closed
wants to merge 1 commit into from

Conversation

jmacd
Copy link
Contributor

@jmacd jmacd commented Nov 13, 2024

Part of #3602.

Changes

Adds Consistent sampler, a delegating consistent sampler to replace ParentBased.
Adds alternate Sampler API option for efficient sampler delegation and threshold management
Changes default sampler to Consistent(TraceIdRatio(1)).
Has TODO referring to supplemental guidelines on composite samplers, to be added in tracestate-probability-sampling.md after #4162 and #4166 gave merged. These rules will spell out how to form conditional forms of delegating samplers correctly, including the logic behind the Consistent sampler decision.

This absolutely needs a prototype. As seen in open-telemetry/opentelemetry-go#5645, there are immediately performance concerns when we implement consistent sampling decisions without the sampler API optimization described in this PR.

@jmacd
Copy link
Contributor Author

jmacd commented Nov 14, 2024

Sampling SIG would prefer to see the conditional sampler introduced in OTEP 250 specified first, after which the Consistent one proposed here becomes a composition of two predicates (root? local?).

Users of the existing ParentBased sampler, which allows composition to extend attributes and trace state will need a way to do that. @PeterF778's prototype used a "Marker" sampler for that purpose. I will create a new draft.

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

Successfully merging this pull request may close these issues.

1 participant