diff --git a/consistent-sampling/README.md b/consistent-sampling/README.md index 68ac6ac68..4f848eb3a 100644 --- a/consistent-sampling/README.md +++ b/consistent-sampling/README.md @@ -1,8 +1,15 @@ # Consistent sampling -This component adds various Sampler implementations for consistent sampling as defined by +There are two major components included here. + +## Original proposal implementation + +The original specification for consistent probability sampling is defined by and . +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. * **ConsistentSampler**: abstract base class of all consistent sampler implementations below @@ -23,6 +30,31 @@ and . 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 +## Current proposal implementation + +The current version of the specification for consistent probability sampling is described by +. +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](https://github.com/open-telemetry/oteps/pull/250) +* **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 - [Otmar Ertl](https://github.com/oertl), Dynatrace