@@ -95,7 +95,15 @@ def _map_aws_account_id(s):
9595# modules to look up customised settings defined in the loaded
9696# configuration file.
9797
98- _config_object = configparser .RawConfigParser ()
98+ def ratio (value ):
99+ try :
100+ val = float (value )
101+ if 0 < val <= 1 :
102+ return val
103+ except ValueError :
104+ pass
105+
106+ _config_object = configparser .RawConfigParser (converters = {"ratio" : ratio })
99107
100108# Cache of the parsed global settings found in the configuration
101109# file. We cache these so can dump them out to the log file once
@@ -378,6 +386,8 @@ def _process_dt_hidden_setting(section, option, getter):
378386 target = _settings
379387 fields = option .split ("." , 1 )
380388
389+ if value == "trace_id_ratio_based" :
390+ raise configparser .NoOptionError ("trace_id_ratio_sampler option can only be set by configuring the ratio" )
381391 while True :
382392 if len (fields ) == 1 :
383393 value = value or "default"
@@ -538,6 +548,9 @@ def _process_configuration(section):
538548 _process_dt_sampler_setting (
539549 section , "distributed_tracing.sampler.full_granularity.root.adaptive.sampling_target" , "getint"
540550 )
551+ _process_dt_sampler_setting (
552+ section , "distributed_tracing.sampler.full_granularity.root.trace_id_ratio_based.ratio" , "getratio"
553+ )
541554 _process_dt_setting (
542555 section ,
543556 "distributed_tracing.sampler.full_granularity.remote_parent_sampled" ,
@@ -547,6 +560,9 @@ def _process_configuration(section):
547560 _process_dt_sampler_setting (
548561 section , "distributed_tracing.sampler.full_granularity.remote_parent_sampled.adaptive.sampling_target" , "getint"
549562 )
563+ _process_dt_sampler_setting (
564+ section , "distributed_tracing.sampler.full_granularity.remote_parent_sampled.trace_id_ratio_based.ratio" , "getratio"
565+ )
550566 _process_dt_setting (
551567 section ,
552568 "distributed_tracing.sampler.full_granularity.remote_parent_not_sampled" ,
@@ -558,19 +574,32 @@ def _process_configuration(section):
558574 "distributed_tracing.sampler.full_granularity.remote_parent_not_sampled.adaptive.sampling_target" ,
559575 "getint" ,
560576 )
577+ _process_dt_sampler_setting (
578+ section ,
579+ "distributed_tracing.sampler.full_granularity.remote_parent_not_sampled.trace_id_ratio_based.ratio" ,
580+ "getratio" ,
581+ )
561582 _process_setting (section , "distributed_tracing.sampler.full_granularity.enabled" , "getboolean" , None )
562583 _process_setting (section , "distributed_tracing.sampler.partial_granularity.enabled" , "getboolean" , None )
563584 _process_setting (section , "distributed_tracing.sampler.partial_granularity.type" , "get" , None )
564585 _process_dt_hidden_setting (section , "distributed_tracing.sampler.partial_granularity.root" , "get" )
565586 _process_dt_sampler_setting (
566587 section , "distributed_tracing.sampler.partial_granularity.root.adaptive.sampling_target" , "getint"
567588 )
589+ _process_dt_sampler_setting (
590+ section , "distributed_tracing.sampler.partial_granularity.root.trace_id_ratio_based.ratio" , "getratio"
591+ )
568592 _process_dt_hidden_setting (section , "distributed_tracing.sampler.partial_granularity.remote_parent_sampled" , "get" )
569593 _process_dt_sampler_setting (
570594 section ,
571595 "distributed_tracing.sampler.partial_granularity.remote_parent_sampled.adaptive.sampling_target" ,
572596 "getint" ,
573597 )
598+ _process_dt_sampler_setting (
599+ section ,
600+ "distributed_tracing.sampler.partial_granularity.remote_parent_sampled.trace_id_ratio_based.ratio" ,
601+ "getratio" ,
602+ )
574603 _process_dt_hidden_setting (
575604 section , "distributed_tracing.sampler.partial_granularity.remote_parent_not_sampled" , "get"
576605 )
@@ -579,6 +608,11 @@ def _process_configuration(section):
579608 "distributed_tracing.sampler.partial_granularity.remote_parent_not_sampled.adaptive.sampling_target" ,
580609 "getint" ,
581610 )
611+ _process_dt_sampler_setting (
612+ section ,
613+ "distributed_tracing.sampler.partial_granularity.remote_parent_not_sampled.trace_id_ratio_based.ratio" ,
614+ "getratio" ,
615+ )
582616 _process_setting (section , "span_events.enabled" , "getboolean" , None )
583617 _process_setting (section , "span_events.max_samples_stored" , "getint" , None )
584618 _process_setting (section , "span_events.attributes.enabled" , "getboolean" , None )
0 commit comments