Skip to content

Latest commit

 

History

History
63 lines (51 loc) · 4.07 KB

File metadata and controls

63 lines (51 loc) · 4.07 KB

Consistent sampling

There are two major components included here.

Original proposal implementation

The original specification for consistent probability sampling is defined by https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/tracestate-probability-sampling.md and open-telemetry/opentelemetry-specification#2047. It supports sampling probabilities that are power of 2 (1, 1/2, 1/4, ...), and uses 8-bit r-value and 8-bit p-value in tracestate.

The implementation of this proposal is contained by the package io/opentelemetry/contrib/sampler/consistent in this repository and provides various Sampler implementations.

Current proposal implementation

The current version of the specification for consistent probability sampling is described by https://github.com/open-telemetry/oteps/blob/main/text/trace/0235-sampling-threshold-in-trace-state.md. It uses 56 bits for representing rejection threshold, which corresponds to a much wider range of sampling probabilities than the original proposal.

The implementation of the current proposal is contained by the package io/opentelemetry/contrib/sampler/consistent56 in this repository and provides implementation for a number of different Samplers.

  • ConsistentSampler abstract base class for all consistent sampler implementations
  • ComposableSampler: interface used to build hierarchies of Samplers, see Composite Samplers
  • ConsistentAlwaysOffSampler:
  • ConsistentAlwaysOnSampler:
  • ConsistentAnyOfSampler: allows combining several consistent samplers; it samples when at least one of them would sample,
  • ConsistentParentBasedSampler:
  • ConsistentFixedThresholdSampler: consistent probability sampler that uses a predefined sampling probability
  • ConsistentRateLimitingSampler: a rate limiting sampler based on exponential smoothing that dynamically adjusts the sampling probability based on the estimated rate of spans occurring to satisfy a given rate of sampled spans
  • ConsistentRuleBasedSampler a sampler that performs stratified sampling by evaluating qualifying conditions and propagating the sampling decision from one of its delegate samplers

Component owners

Learn more about component owners in component_owners.yml.