Module: NewRelic::Agent::Configuration::SamplerConfigValidator
- Defined in:
- lib/new_relic/agent/configuration/sampler_config_validator.rb
Overview
Handles validation for the ‘distributed_tracing.sampler.*` configs Focuses on validating the trace id ratio based ratios
Class Method Summary collapse
-
.reset_warnings! ⇒ Object
used for testing.
- .valid_ratio?(ratio) ⇒ Boolean
- .validate_sampler_strategy_with_ratio(strategy_key, ratio_key) ⇒ Object
- .validate_sampling_ratio(ratio) ⇒ Object
Class Method Details
.reset_warnings! ⇒ Object
used for testing
47 48 49 |
# File 'lib/new_relic/agent/configuration/sampler_config_validator.rb', line 47 def reset_warnings! @sampler_strategy_warnings = {} end |
.valid_ratio?(ratio) ⇒ Boolean
42 43 44 |
# File 'lib/new_relic/agent/configuration/sampler_config_validator.rb', line 42 def valid_ratio?(ratio) ratio.is_a?(Float) && (0.0..1.0).cover?(ratio) end |
.validate_sampler_strategy_with_ratio(strategy_key, ratio_key) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/new_relic/agent/configuration/sampler_config_validator.rb', line 21 def validate_sampler_strategy_with_ratio(strategy_key, ratio_key) proc do |strategy| next strategy unless strategy == 'trace_id_ratio_based' ratio = NewRelic::Agent.config[ratio_key] next strategy if valid_ratio?(ratio) unless @sampler_strategy_warnings[strategy_key] NewRelic::Agent.logger.warn( "Invalid or missing ratio for #{ratio_key} (value: #{ratio.inspect}). " \ "Falling back to 'default' for #{strategy_key}." ) @sampler_strategy_warnings[strategy_key] = true end 'default' end end |
.validate_sampling_ratio(ratio) ⇒ Object
14 15 16 17 18 19 |
# File 'lib/new_relic/agent/configuration/sampler_config_validator.rb', line 14 def validate_sampling_ratio(ratio) return nil if ratio.nil? return nil unless valid_ratio?(ratio) ratio end |