Class: Sqreen::Ecosystem::Tracing::SamplingConfiguration
- Inherits:
-
Object
- Object
- Sqreen::Ecosystem::Tracing::SamplingConfiguration
- Extended by:
- Loggable
- Includes:
- Loggable
- Defined in:
- lib/sqreen/ecosystem/tracing/sampling_configuration.rb
Overview
tracing sampling configuration, as specified by the 2nd argument of the tracing_enable command. See github.com/sqreen/TechDoc/blob/master/content/specs/spec000025-enabling-tracing.md
Constant Summary collapse
- DEFAULT_SCOPE =
'*'.freeze
Class Method Summary collapse
Instance Method Summary collapse
- #forget_virtual_scope(scope, qualifier) ⇒ Object
-
#initialize(sampling_config) ⇒ SamplingConfiguration
constructor
A new instance of SamplingConfiguration.
- #should_sample?(scope, qualifier = nil) ⇒ Boolean
Constructor Details
#initialize(sampling_config) ⇒ SamplingConfiguration
Returns a new instance of SamplingConfiguration.
21 22 23 24 25 |
# File 'lib/sqreen/ecosystem/tracing/sampling_configuration.rb', line 21 def initialize(sampling_config) @sampling_config = sampling_config @samplers = {} @samplers_virtual = build_virtual_holders(sampling_config) end |
Class Method Details
.build_sampler(scope, cfg) ⇒ Object
80 81 82 83 84 85 86 |
# File 'lib/sqreen/ecosystem/tracing/sampling_configuration.rb', line 80 def build_sampler(scope, cfg) do_build_sampler(cfg['enabled'], cfg['sampling'] || [{}]) rescue StandardError => e logger.warn "Invalid sampling configuration for #{scope}: #{e.inspect}" logger.debug { e.backtrace } DisabledScopeSampler end |
Instance Method Details
#forget_virtual_scope(scope, qualifier) ⇒ Object
37 38 39 40 |
# File 'lib/sqreen/ecosystem/tracing/sampling_configuration.rb', line 37 def forget_virtual_scope(scope, qualifier) holder = @samplers_virtual[scope] return unless holder.delete!(qualifier) end |
#should_sample?(scope, qualifier = nil) ⇒ Boolean
29 30 31 32 33 34 35 |
# File 'lib/sqreen/ecosystem/tracing/sampling_configuration.rb', line 29 def should_sample?(scope, qualifier = nil) if qualifier fetch_sampler_virtual(scope, qualifier).should_sample? else fetch_sampler(scope).should_sample? end end |