class OneApm::Transaction::DeveloperModeSampleBuffer

Constants

OA_CAPACITY

Public Instance Methods

capacity() click to toggle source
# File lib/one_apm/transaction/sample_buffer/developer_mode_sample_buffer.rb, line 11
def capacity
  max_capacity
end
enabled?() click to toggle source
# File lib/one_apm/transaction/sample_buffer/developer_mode_sample_buffer.rb, line 25
def enabled?
  Manager.config[:developer_mode]
end
harvest_samples() click to toggle source
# File lib/one_apm/transaction/sample_buffer/developer_mode_sample_buffer.rb, line 21
def harvest_samples
  OA_NO_SAMPLES
end
max_capacity() click to toggle source

Dev mode is allowed more than the typical upper limit. Sidestep normal cap by overriding max_capacity.

# File lib/one_apm/transaction/sample_buffer/developer_mode_sample_buffer.rb, line 17
def max_capacity
  OA_CAPACITY
end
store_previous(*) click to toggle source

We don't hold onto previously trapped transactions on harvest We've already got all the traces we want, thank you!

# File lib/one_apm/transaction/sample_buffer/developer_mode_sample_buffer.rb, line 36
def store_previous(*)
end
strip_oneapm_frames(trace) click to toggle source
# File lib/one_apm/transaction/sample_buffer/developer_mode_sample_buffer.rb, line 49
def strip_oneapm_frames(trace)
  while trace.first =~ /lib\/one_apm/
    trace.shift
  end
  trace
end
truncate_samples() click to toggle source

Truncate to the last capacity samples we've received

# File lib/one_apm/transaction/sample_buffer/developer_mode_sample_buffer.rb, line 30
def truncate_samples
  @samples = @samples.last(capacity)
end
visit_segment(segment) click to toggle source

Captures the stack trace for a segment This is expensive and not for production mode

# File lib/one_apm/transaction/sample_buffer/developer_mode_sample_buffer.rb, line 41
def visit_segment(segment)
  return unless enabled? && segment

  trace = strip_oneapm_frames(caller)
  trace = trace.first(40) if trace.length > 40
  segment[:backtrace] = trace
end