Skip to content

Commit 4ecfed6

Browse files
committed
fix(sampling): preserve deterministic sampler rate
1 parent 7e204a9 commit 4ecfed6

2 files changed

Lines changed: 11 additions & 2 deletions

File tree

dd-trace-core/src/main/java/datadog/trace/common/sampling/DeterministicSampler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,11 @@ protected <T extends CoreSpan<T>> long getSamplingId(T span) {
3838

3939
private static final double MAX = Math.pow(2, 64) - 1;
4040

41-
private final float rate;
41+
private final double rate;
4242
private final long threshold;
4343

4444
public DeterministicSampler(final double rate) {
45-
this.rate = (float) rate;
45+
this.rate = rate;
4646
this.threshold = cutoff(rate);
4747
}
4848

dd-trace-core/src/test/java/datadog/trace/common/sampling/DeterministicTraceSamplerTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,15 @@ void testSamplingAll(String traceId) {
357357
assertTrue(sampler.sample(span));
358358
}
359359

360+
@TableTest({
361+
"rate ",
362+
"0.123456789",
363+
"0.999999999"
364+
})
365+
void preservesConfiguredSampleRate(double rate) {
366+
assertEquals(rate, new DeterministicSampler.TraceSampler(rate).getSampleRate());
367+
}
368+
360369
@ParameterizedTest(name = "rate={0}")
361370
@MethodSource("testCutoffCalculationArguments")
362371
void testCutoffCalculation(int rate) {

0 commit comments

Comments
 (0)