def test_datadog_sampler_update_rate_by_service_sample_rates(dummy_tracer): cases = [ { "service:,env:": 1, }, { "service:,env:": 1, "service:mcnulty,env:dev": 0.33, "service:postgres,env:dev": 0.7, }, { "service:,env:": 1, "service:mcnulty,env:dev": 0.25, "service:postgres,env:dev": 0.5, "service:redis,env:prod": 0.75, }, ] # By default sampler sets it's default sampler to RateByServiceSampler sampler = DatadogSampler() for case in cases: sampler.update_rate_by_service_sample_rates(case) rates = {} for k, v in iteritems(sampler.default_sampler._by_service_samplers): rates[k] = v.sample_rate assert case == rates, "%s != %s" % (case, rates) # It's important to also test in reverse mode for we want to make sure key deletion # works as well as key insertion (and doing this both ways ensures we trigger both cases) cases.reverse() for case in cases: sampler.update_rate_by_service_sample_rates(case) rates = {} for k, v in iteritems(sampler.default_sampler._by_service_samplers): rates[k] = v.sample_rate assert case == rates, "%s != %s" % (case, rates)
def test_update_rate_by_service_sample_rates(self): cases = [ { "service:,env:": 1, }, { "service:,env:": 1, "service:mcnulty,env:dev": 0.33, "service:postgres,env:dev": 0.7, }, { "service:,env:": 1, "service:mcnulty,env:dev": 0.25, "service:postgres,env:dev": 0.5, "service:redis,env:prod": 0.75, }, ] tracer = DummyTracer() tracer.configure(sampler=AllSampler()) priority_sampler = tracer.priority_sampler for case in cases: priority_sampler.update_rate_by_service_sample_rates(case) rates = {} for k, v in iteritems(priority_sampler._by_service_samplers): rates[k] = v.sample_rate assert case == rates, "%s != %s" % (case, rates) # It's important to also test in reverse mode for we want to make sure key deletion # works as well as key insertion (and doing this both ways ensures we trigger both cases) cases.reverse() for case in cases: priority_sampler.update_rate_by_service_sample_rates(case) rates = {} for k, v in iteritems(priority_sampler._by_service_samplers): rates[k] = v.sample_rate assert case == rates, "%s != %s" % (case, rates)