class OneApm::TransactionAnalysis::SegmentSummary
summarizes performance data for all calls to segments with the same metric_name
Attributes
call_count[RW]
current_nest_count[RW]
exclusive_time[RW]
metric_name[RW]
total_time[RW]
Public Class Methods
new(metric_name, sample)
click to toggle source
# File lib/one_apm/transaction/segment_summary.rb, line 9 def initialize(metric_name, sample) @metric_name = metric_name @total_time, @exclusive_time, @call_count = 0,0,0 @sample = sample @current_nest_count = 0 end
Public Instance Methods
<<(segment)
click to toggle source
# File lib/one_apm/transaction/segment_summary.rb, line 16 def <<(segment) if metric_name != segment.metric_name raise ArgumentError, "Metric Name Mismatch: #{segment.metric_name} != #{metric_name}" end # a nested segment should use the sum of the top level totals @total_time += segment.duration if current_nest_count == 0 @exclusive_time += segment.exclusive_duration @call_count += 1 end
average_exclusive_time()
click to toggle source
# File lib/one_apm/transaction/segment_summary.rb, line 31 def average_exclusive_time @exclusive_time / @call_count end
average_time()
click to toggle source
# File lib/one_apm/transaction/segment_summary.rb, line 27 def average_time @total_time / @call_count end
exclusive_time_percentage()
click to toggle source
# File lib/one_apm/transaction/segment_summary.rb, line 35 def exclusive_time_percentage return 0 unless @exclusive_time && @sample.duration && @sample.duration > 0 @exclusive_time / @sample.duration end
total_time_percentage()
click to toggle source
# File lib/one_apm/transaction/segment_summary.rb, line 40 def total_time_percentage return 0 unless @total_time && @sample.duration && @sample.duration > 0 @total_time / @sample.duration end