Class: Sqreen::Ecosystem::Tracing::VirtualScopesHolder

Inherits:
Object
  • Object
show all
Includes:
Loggable
Defined in:
lib/sqreen/ecosystem/tracing/sampling_configuration.rb

Constant Summary collapse

MAX_VIRTUAL_SCOPES =
120
DISCARD_SIZE =
20

Instance Method Summary collapse

Constructor Details

#initialize(parent, cfg) ⇒ VirtualScopesHolder

Returns a new instance of VirtualScopesHolder.



107
108
109
110
111
112
# File 'lib/sqreen/ecosystem/tracing/sampling_configuration.rb', line 107

def initialize(parent, cfg)
  @parent = parent
  @cfg = cfg
  @virtual_scopes = {}
  @mutex = Mutex.new
end

Instance Method Details

#[](qualifier) ⇒ Object



114
115
116
117
118
119
120
121
122
123
# File 'lib/sqreen/ecosystem/tracing/sampling_configuration.rb', line 114

def [](qualifier)
  return false unless @cfg['enabled']

  @mutex.synchronize do
    sampler = @virtual_scopes[qualifier]
    return sampler if sampler

    @virtual_scopes[qualifier] = create_virtual(qualifier)
  end
end

#delete!(qualifier) ⇒ Object



125
126
127
# File 'lib/sqreen/ecosystem/tracing/sampling_configuration.rb', line 125

def delete!(qualifier)
  @virtual_scopes.delete(qualifier)
end