add a provider for consistent parent based probability sampler (#1005)

This commit is contained in:
kes2464 2023-08-19 01:14:29 +10:00 committed by GitHub
parent 87825466e7
commit 3af6cf32c1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 0 deletions

View File

@ -8,6 +8,7 @@ otelJava.moduleName.set("io.opentelemetry.contrib.sampler.consistent")
dependencies {
api("io.opentelemetry:opentelemetry-sdk-trace")
api("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi")
testImplementation("org.hipparchus:hipparchus-core:2.3")
testImplementation("org.hipparchus:hipparchus-stat:2.3")
}

View File

@ -0,0 +1,25 @@
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/
package io.opentelemetry.contrib.sampler.consistent;
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
import io.opentelemetry.sdk.autoconfigure.spi.traces.ConfigurableSamplerProvider;
import io.opentelemetry.sdk.trace.samplers.Sampler;
public final class ParentBasedConsistentProbabilitySamplerProvider
implements ConfigurableSamplerProvider {
@Override
public Sampler createSampler(ConfigProperties config) {
double samplingProbability = config.getDouble("otel.traces.sampler.arg", 1.0d);
return ConsistentSampler.parentBased(ConsistentSampler.probabilityBased(samplingProbability));
}
@Override
public String getName() {
return "parentbased_consistent_probability";
}
}

View File

@ -0,0 +1 @@
io.opentelemetry.contrib.sampler.consistent.ParentBasedConsistentProbabilitySamplerProvider