@@ -376,25 +376,36 @@ def test_remoteconfig_global_sample_rate_and_rules(ddtrace_run_python_code_in_su
376376with tracer.trace("sample_rate") as span:
377377 pass
378378assert span.get_metric("_dd.rule_psr") == 0.2
379- assert span.get_tag("_dd.p.dm") == "-3 "
379+ assert span.get_tag("_dd.p.dm") == "-11 "
380380# Ensure the previous sampling rule with operation name "rules" is not used
381381with tracer.trace("rules") as span:
382382 pass
383383assert span.get_metric("_dd.rule_psr") == 0.2
384- assert span.get_tag("_dd.p.dm") == "-3 "
384+ assert span.get_tag("_dd.p.dm") == "-11 "
385385
386- # Set a new sampling rules via rc
387- call_apm_tracing_rc(_base_rc_config({"tracing_sampling_rate": 0.3}), config)
386+ # Set a dynamic sampling rule and a default sampling rate via rc
387+ call_apm_tracing_rc(_base_rc_config({
388+ "tracing_sampling_rate": 0.3,
389+ "tracing_sampling_rules": [
390+ {
391+ "service": "*",
392+ "name": "rules",
393+ "resource": "*",
394+ "provenance": "dynamic",
395+ "sample_rate": 0.1,
396+ }
397+ ],
398+ }), config)
388399# Ensure that the new default sampling rate is used
389400with tracer.trace("sample_rate") as span:
390401 pass
391402assert span.get_metric("_dd.rule_psr") == 0.3
392- assert span.get_tag("_dd.p.dm") == "-3 "
393- # Ensure the previous sampling rule with operation name "rules" is not used
403+ assert span.get_tag("_dd.p.dm") == "-11 "
404+ # Ensure that the dynamic sampling rule takes precedence over the default rate
394405with tracer.trace("rules") as span:
395406 pass
396- assert span.get_metric("_dd.rule_psr") == 0.3
397- assert span.get_tag("_dd.p.dm") == "-3 "
407+ assert span.get_metric("_dd.rule_psr") == 0.1
408+ assert span.get_tag("_dd.p.dm") == "-12 "
398409
399410# Remove all sampling rules from remote config
400411call_apm_tracing_rc(_base_rc_config({}), config)
0 commit comments