class OneApm::Transaction::CrossSampleBuffer

Public Class Methods

new(events) click to toggle source
# File lib/one_apm/transaction/sample_buffer/cross_sample_buffer.rb, line 9
def initialize(events)
  @counter = 0
  @samples = []
  @events = events
end

Public Instance Methods

allow_sample?(sample) click to toggle source
# File lib/one_apm/transaction/sample_buffer/cross_sample_buffer.rb, line 27
def allow_sample?(sample)
  sample.params[:custom_params][:'bw.trip_id'] rescue false
end
capacity() click to toggle source
# File lib/one_apm/transaction/sample_buffer/cross_sample_buffer.rb, line 15
def capacity
  Manager.config[:cross_sampler_count]
end
full?() click to toggle source
# File lib/one_apm/transaction/sample_buffer/cross_sample_buffer.rb, line 23
def full?
  @counter >= capacity
end
reset_counter!() click to toggle source
# File lib/one_apm/transaction/sample_buffer/cross_sample_buffer.rb, line 19
def reset_counter!
  @counter = 0
end

Private Instance Methods

add_sample(sample) click to toggle source

If a buffer needs to modify an added sample, override this method. Bounds checking, allowing samples and truncation belongs elsewhere.

# File lib/one_apm/transaction/sample_buffer/cross_sample_buffer.rb, line 35
def add_sample(sample)
  if full?
    OneApm::Manager.logger.debug "Cross sample buffer is full, counter: #{@counter} "
  else
    @counter += 1
    OneApm::Manager.logger.debug "Cross sample buffer add sample, counter: #{@counter} "
    @events.notify(:cross_sample_buffer_added, sample)
  end
end