class Mmtrix::Agent::Transaction::XraySampleBuffer

Attributes

xray_session_collection[W]

Public Class Methods

new() click to toggle source
# File lib/mmtrix/agent/transaction/xray_sample_buffer.rb, line 14
def initialize
  super

  # Memoize the config setting since this happens per request
  @enabled = Mmtrix::Agent.config[:'xray_session.allow_traces']
  Mmtrix::Agent.config.register_callback(:'xray_session.allow_traces') do |new_value|
    @enabled = new_value
  end

  @capacity = Mmtrix::Agent.config[:'xray_session.max_samples']
  Mmtrix::Agent.config.register_callback(:'xray_session.max_samples') do |new_value|
    @capacity = new_value
  end
end

Public Instance Methods

allow_sample?(sample) click to toggle source
# File lib/mmtrix/agent/transaction/xray_sample_buffer.rb, line 41
def allow_sample?(sample)
  !full? && !lookup_session_id(sample).nil?
end
capacity() click to toggle source
# File lib/mmtrix/agent/transaction/xray_sample_buffer.rb, line 33
def capacity
  @capacity
end
enabled?() click to toggle source
# File lib/mmtrix/agent/transaction/xray_sample_buffer.rb, line 45
def enabled?
  @enabled
end
truncate_samples() click to toggle source
# File lib/mmtrix/agent/transaction/xray_sample_buffer.rb, line 37
def truncate_samples
  # First in wins, so stop on allow_sample? instead of truncating
end
xray_session_collection() click to toggle source
# File lib/mmtrix/agent/transaction/xray_sample_buffer.rb, line 29
def xray_session_collection
  @xray_session_collection ||= Mmtrix::Agent.instance.agent_command_router.xray_session_collection
end

Private Instance Methods

add_sample(sample) click to toggle source
# File lib/mmtrix/agent/transaction/xray_sample_buffer.rb, line 52
def add_sample(sample)
  super(sample)
  sample.xray_session_id = lookup_session_id(sample)
end
lookup_session_id(sample) click to toggle source
# File lib/mmtrix/agent/transaction/xray_sample_buffer.rb, line 57
def lookup_session_id(sample)
  xray_session_collection.session_id_for_transaction_name(sample.transaction_name)
end