Skip to content

Commit 3af6cf3

Browse files
authored
add a provider for consistent parent based probability sampler (#1005)
1 parent 8782546 commit 3af6cf3

File tree

3 files changed

+27
-0
lines changed

3 files changed

+27
-0
lines changed

consistent-sampling/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ otelJava.moduleName.set("io.opentelemetry.contrib.sampler.consistent")
88

99
dependencies {
1010
api("io.opentelemetry:opentelemetry-sdk-trace")
11+
api("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi")
1112
testImplementation("org.hipparchus:hipparchus-core:2.3")
1213
testImplementation("org.hipparchus:hipparchus-stat:2.3")
1314
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.contrib.sampler.consistent;
7+
8+
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
9+
import io.opentelemetry.sdk.autoconfigure.spi.traces.ConfigurableSamplerProvider;
10+
import io.opentelemetry.sdk.trace.samplers.Sampler;
11+
12+
public final class ParentBasedConsistentProbabilitySamplerProvider
13+
implements ConfigurableSamplerProvider {
14+
15+
@Override
16+
public Sampler createSampler(ConfigProperties config) {
17+
double samplingProbability = config.getDouble("otel.traces.sampler.arg", 1.0d);
18+
return ConsistentSampler.parentBased(ConsistentSampler.probabilityBased(samplingProbability));
19+
}
20+
21+
@Override
22+
public String getName() {
23+
return "parentbased_consistent_probability";
24+
}
25+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
io.opentelemetry.contrib.sampler.consistent.ParentBasedConsistentProbabilitySamplerProvider

0 commit comments

Comments
 (0)