Exemple #1
0
        public void GuaranteedThroughputProbabilisticSampler_Update_ShouldNotCreateNewSamplersWhenTheValuesDoNotChange()
        {
            var    samplingRate = 0.4;
            double lowerBound   = 5;

            var sampler = new GuaranteedThroughputProbabilisticSampler(samplingRate, lowerBound);
            var updated = sampler.Update(samplingRate, lowerBound);

            Assert.False(updated);
        }
Exemple #2
0
        public void GuaranteedThroughputProbabilisticSampler_Update_ShouldCreateNewSamplersWhenTheValuesChange()
        {
            var    samplingRate = 0.4;
            double lowerBound   = 5;

            var sampler = new GuaranteedThroughputProbabilisticSampler(0.2, 4);
            var updated = sampler.Update(samplingRate, lowerBound);

            Assert.True(updated);
            Assert.Equal(samplingRate, sampler._probabilisticSampler.SamplingRate);
            Assert.Equal(lowerBound, sampler._rateLimitingSampler.MaxTracesPerSecond);
        }
Exemple #3
0
        public void GuaranteedThroughputProbabilisticSampler_UsesDefaultSamplers()
        {
            var    samplingRate = 0.4;
            double lowerBound   = 5;

            var sampler = new GuaranteedThroughputProbabilisticSampler(samplingRate, lowerBound);

            Assert.IsType <ProbabilisticSampler>(sampler._probabilisticSampler);
            Assert.IsType <RateLimitingSampler>(sampler._rateLimitingSampler);
            Assert.Equal(samplingRate, sampler._probabilisticSampler.SamplingRate);
            Assert.Equal(lowerBound, sampler._rateLimitingSampler.MaxTracesPerSecond);
        }
Exemple #4
0
        public void GuaranteedThroughputProbabilisticSampler_IsSampled_FallsBackToRateLimitingSampler()
        {
            var probabilisticSampler = Substitute.For <IProbabilisticSampler>();
            var rateLimitingSampler  = Substitute.For <IRateLimitingSampler>();
            var traceId       = new TraceId(1);
            var operationName = "op";
            var sampler       = new GuaranteedThroughputProbabilisticSampler(probabilisticSampler, rateLimitingSampler);

            probabilisticSampler.IsSampled(Arg.Is <TraceId>(t => t == traceId), Arg.Is <string>(o => o == operationName)).Returns((false, new Dictionary <string, object>()));
            rateLimitingSampler.IsSampled(Arg.Is <TraceId>(t => t == traceId), Arg.Is <string>(o => o == operationName));

            sampler.IsSampled(traceId, operationName);

            probabilisticSampler.Received(1).IsSampled(Arg.Any <TraceId>(), Arg.Any <string>());
            rateLimitingSampler.Received(1).IsSampled(Arg.Any <TraceId>(), Arg.Any <string>());
        }