class NewRelic::Agent::Transaction::XraySampleBuffer

Attributes

xray_session_collection[W]

Public Class Methods

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

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

  @capacity = NewRelic::Agent.config[:'xray_session.max_samples']
  NewRelic::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/new_relic/agent/transaction/xray_sample_buffer.rb, line 40
def allow_sample?(sample)
  !full? && !lookup_session_id(sample).nil?
end
capacity() click to toggle source
# File lib/new_relic/agent/transaction/xray_sample_buffer.rb, line 32
def capacity
  @capacity
end
enabled?() click to toggle source
# File lib/new_relic/agent/transaction/xray_sample_buffer.rb, line 44
def enabled?
  @enabled
end
truncate_samples() click to toggle source
# File lib/new_relic/agent/transaction/xray_sample_buffer.rb, line 36
def truncate_samples
  # First in wins, so stop on allow_sample? instead of truncating
end
xray_session_collection() click to toggle source
# File lib/new_relic/agent/transaction/xray_sample_buffer.rb, line 28
def xray_session_collection
  @xray_session_collection ||= NewRelic::Agent.instance.agent_command_router.xray_session_collection
end

Private Instance Methods

add_sample(sample) click to toggle source
# File lib/new_relic/agent/transaction/xray_sample_buffer.rb, line 51
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/new_relic/agent/transaction/xray_sample_buffer.rb, line 56
def lookup_session_id(sample)
  xray_session_collection.session_id_for_transaction_name(sample.transaction_name)
end