use of io.jaegertracing.internal.samplers.http.ProbabilisticSamplingStrategy in project jaeger-client-java by jaegertracing.
the class HttpSamplingManagerTest method testParsePerOperationSampling.
@Test
public void testParsePerOperationSampling() throws Exception {
SamplingStrategyResponse response = undertest.parseJson(readFixture("per_operation_sampling.json"));
OperationSamplingParameters actual = response.getOperationSampling();
assertEquals(0.001, actual.getDefaultSamplingProbability(), 0.0001);
assertEquals(0.001666, actual.getDefaultLowerBoundTracesPerSecond(), 0.0001);
List<PerOperationSamplingParameters> actualPerOperationStrategies = actual.getPerOperationStrategies();
assertEquals(2, actualPerOperationStrategies.size());
assertEquals(new PerOperationSamplingParameters("GET:/search", new ProbabilisticSamplingStrategy(1.0)), actualPerOperationStrategies.get(0));
assertEquals(new PerOperationSamplingParameters("PUT:/pacifique", new ProbabilisticSamplingStrategy(0.8258308134813166)), actualPerOperationStrategies.get(1));
}
use of io.jaegertracing.internal.samplers.http.ProbabilisticSamplingStrategy in project jaeger-client-java by jaegertracing.
the class HttpSamplingManagerTest method testParseProbabilisticSampling.
@Test
public void testParseProbabilisticSampling() throws Exception {
SamplingStrategyResponse response = undertest.parseJson(readFixture("probabilistic_sampling.json"));
assertEquals(new ProbabilisticSamplingStrategy(0.01), response.getProbabilisticSampling());
assertNull(response.getRateLimitingSampling());
}
use of io.jaegertracing.internal.samplers.http.ProbabilisticSamplingStrategy in project jaeger-client-java by jaegertracing.
the class PerOperationSamplerTest method testAbsentOperationIsRemoved.
@Test
public void testAbsentOperationIsRemoved() {
String absentOp = "ShouldBeRemoved";
operationToSamplers.put(absentOp, mock(GuaranteedThroughputSampler.class));
PerOperationSamplingParameters perOperationSamplingParameters1 = new PerOperationSamplingParameters(OPERATION, new ProbabilisticSamplingStrategy(SAMPLING_RATE));
List<PerOperationSamplingParameters> parametersList = new ArrayList<>();
parametersList.add(perOperationSamplingParameters1);
undertest.update(new OperationSamplingParameters(DEFAULT_SAMPLING_PROBABILITY, DEFAULT_LOWER_BOUND_TRACES_PER_SECOND, parametersList));
assertEquals(1, undertest.getOperationNameToSampler().size());
assertEquals(new GuaranteedThroughputSampler(SAMPLING_RATE, DEFAULT_LOWER_BOUND_TRACES_PER_SECOND), undertest.getOperationNameToSampler().get(OPERATION));
assertFalse(undertest.getOperationNameToSampler().containsKey(absentOp));
}
use of io.jaegertracing.internal.samplers.http.ProbabilisticSamplingStrategy in project jaeger-client-java by jaegertracing.
the class RemoteControlledSamplerTest method testUpdateToProbabilisticSampler.
@Test
public void testUpdateToProbabilisticSampler() throws Exception {
final double samplingRate = 0.55;
SamplingStrategyResponse probabilisticResponse = new SamplingStrategyResponse(new ProbabilisticSamplingStrategy(samplingRate), null, null);
when(samplingManager.getSamplingStrategy(SERVICE_NAME)).thenReturn(probabilisticResponse);
undertest.updateSampler();
assertEquals(new ProbabilisticSampler(samplingRate), undertest.getSampler());
}
use of io.jaegertracing.internal.samplers.http.ProbabilisticSamplingStrategy in project jaeger-client-java by jaegertracing.
the class RemoteControlledSampler method updateRateLimitingOrProbabilisticSampler.
/**
* Replace {@link #sampler} with a new instance when parameters are updated.
* @param response which contains either a {@link ProbabilisticSampler} or {@link RateLimitingSampler}
*/
private void updateRateLimitingOrProbabilisticSampler(SamplingStrategyResponse response) {
Sampler sampler;
if (response.getProbabilisticSampling() != null) {
ProbabilisticSamplingStrategy strategy = response.getProbabilisticSampling();
sampler = new ProbabilisticSampler(strategy.getSamplingRate());
} else if (response.getRateLimitingSampling() != null) {
RateLimitingSamplingStrategy strategy = response.getRateLimitingSampling();
sampler = new RateLimitingSampler(strategy.getMaxTracesPerSecond());
} else {
metrics.samplerParsingFailure.inc(1);
log.error("No strategy present in response. Not updating sampler.");
return;
}
if (!this.sampler.equals(sampler)) {
this.sampler = sampler;
metrics.samplerUpdated.inc(1);
}
}
Aggregations