def test_sampling_rule_sample_rate_1(): tracer = DummyTracer() rule = SamplingRule(sample_rate=1) iterations = int(1e4) assert all( rule.sample(Span(tracer=tracer, name=i)) for i in range(iterations))
def test_sampling_rule_sample_rate_0(): tracer = get_dummy_tracer() rule = SamplingRule(sample_rate=0) iterations = int(1e4) assert sum( rule.sample(Span(tracer=tracer, name=i)) for i in range(iterations)) == 0
def test_sampling_rule_sample(sample_rate): rule = SamplingRule(sample_rate=sample_rate) iterations = int(1e4 / sample_rate) sampled = sum(rule.sample(Span(name=str(i))) for i in range(iterations)) # Less than 5% deviation when 'enough' iterations (arbitrary, just check if it converges) deviation = abs(sampled - (iterations * sample_rate)) / (iterations * sample_rate) assert deviation < 0.05, "Deviation {!r} too high with sample_rate {!r} for {} sampled".format( deviation, sample_rate, sampled)
def test_sampling_rule_sample_rate_0(): rule = SamplingRule(sample_rate=0) iterations = int(1e4) assert sum(rule.sample(Span(name=str(i))) for i in range(iterations)) == 0