Class: NewRelic::Agent::Transaction::XraySampleBuffer

Inherits:
TransactionSampleBuffer show all
Defined in:
lib/new_relic/agent/transaction/xray_sample_buffer.rb

Constant Summary

Constants inherited from TransactionSampleBuffer

TransactionSampleBuffer::NO_SAMPLES

Instance Attribute Summary collapse

Attributes inherited from TransactionSampleBuffer

#samples

Instance Method Summary collapse

Methods inherited from TransactionSampleBuffer

#full?, #harvest_samples, #reset!, #store, #store_previous, #truncate_samples_if_needed, #visit_segment

Constructor Details

#initializeXraySampleBuffer

Returns a new instance of XraySampleBuffer.



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/new_relic/agent/transaction/xray_sample_buffer.rb', line 14

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

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

Instance Attribute Details

#xray_session_collectionObject



29
30
31
# File 'lib/new_relic/agent/transaction/xray_sample_buffer.rb', line 29

def xray_session_collection
  @xray_session_collection ||= NewRelic::Agent.instance.agent_command_router.xray_session_collection
end

Instance Method Details

#allow_sample?(sample) ⇒ Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/new_relic/agent/transaction/xray_sample_buffer.rb', line 41

def allow_sample?(sample)
  !full? && !lookup_session_id(sample).nil?
end

#enabled?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/new_relic/agent/transaction/xray_sample_buffer.rb', line 45

def enabled?
  @enabled
end

#max_samplesObject



33
34
35
# File 'lib/new_relic/agent/transaction/xray_sample_buffer.rb', line 33

def max_samples
  @max_samples
end

#truncate_samplesObject



37
38
39
# File 'lib/new_relic/agent/transaction/xray_sample_buffer.rb', line 37

def truncate_samples
  # First in wins, so stop on allow_sample? instead of truncating
end