Skip to content

Commit 193f1f5

Browse files
authored
Updating the README file (#1502)
1 parent 4192794 commit 193f1f5

File tree

1 file changed

+33
-1
lines changed

1 file changed

+33
-1
lines changed

consistent-sampling/README.md

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
11
# Consistent sampling
22

3-
This component adds various Sampler implementations for consistent sampling as defined by
3+
There are two major components included here.
4+
5+
## Original proposal implementation
6+
7+
The original specification for consistent probability sampling is defined by
48
<https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/tracestate-probability-sampling.md>
59
and <https://github.com/open-telemetry/opentelemetry-specification/pull/2047>.
10+
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.
11+
12+
The implementation of this proposal is contained by the package `io/opentelemetry/contrib/sampler/consistent` in this repository and provides various Sampler implementations.
613

714
* **ConsistentSampler**:
815
abstract base class of all consistent sampler implementations below
@@ -23,6 +30,31 @@ and <https://github.com/open-telemetry/opentelemetry-specification/pull/2047>.
2330
a rate limiting sampler based on exponential smoothing that dynamically adjusts the sampling
2431
probability based on the estimated rate of spans occurring to satisfy a given rate of sampled spans
2532

33+
## Current proposal implementation
34+
35+
The current version of the specification for consistent probability sampling is described by
36+
<https://github.com/open-telemetry/oteps/blob/main/text/trace/0235-sampling-threshold-in-trace-state.md>.
37+
It uses **56** bits for representing _rejection threshold_, which corresponds to a much wider range of sampling probabilities than the original proposal.
38+
39+
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.
40+
41+
* **ConsistentSampler**
42+
abstract base class for all consistent sampler implementations
43+
* **ComposableSampler**:
44+
interface used to build hierarchies of Samplers, see [Composite Samplers](https://github.com/open-telemetry/oteps/pull/250)
45+
* **ConsistentAlwaysOffSampler**:
46+
* **ConsistentAlwaysOnSampler**:
47+
* **ConsistentAnyOfSampler**:
48+
allows combining several consistent samplers; it samples when at least one of them would sample,
49+
* **ConsistentParentBasedSampler**:
50+
* **ConsistentFixedThresholdSampler**:
51+
consistent probability sampler that uses a predefined sampling probability
52+
* **ConsistentRateLimitingSampler**:
53+
a rate limiting sampler based on exponential smoothing that dynamically adjusts the sampling
54+
probability based on the estimated rate of spans occurring to satisfy a given rate of sampled spans
55+
* **ConsistentRuleBasedSampler**
56+
a sampler that performs stratified sampling by evaluating qualifying conditions and propagating the sampling decision from one of its delegate samplers
57+
2658
## Component owners
2759

2860
- [Otmar Ertl](https://github.com/oertl), Dynatrace

0 commit comments

Comments
 (0)