Class: OneApm::TransactionAnalysis::SegmentSummary
- Inherits:
-
Object
- Object
- OneApm::TransactionAnalysis::SegmentSummary
- Defined in:
- lib/one_apm/transaction/segment_summary.rb
Overview
summarizes performance data for all calls to segments with the same metric_name
Instance Attribute Summary collapse
-
#call_count ⇒ Object
Returns the value of attribute call_count.
-
#current_nest_count ⇒ Object
Returns the value of attribute current_nest_count.
-
#exclusive_time ⇒ Object
Returns the value of attribute exclusive_time.
-
#metric_name ⇒ Object
Returns the value of attribute metric_name.
-
#total_time ⇒ Object
Returns the value of attribute total_time.
Instance Method Summary collapse
- #<<(segment) ⇒ Object
- #average_exclusive_time ⇒ Object
- #average_time ⇒ Object
- #exclusive_time_percentage ⇒ Object
-
#initialize(metric_name, sample) ⇒ SegmentSummary
constructor
A new instance of SegmentSummary.
- #total_time_percentage ⇒ Object
Constructor Details
#initialize(metric_name, sample) ⇒ SegmentSummary
Returns a new instance of SegmentSummary.
9 10 11 12 13 14 |
# 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 |
Instance Attribute Details
#call_count ⇒ Object
Returns the value of attribute call_count.
8 9 10 |
# File 'lib/one_apm/transaction/segment_summary.rb', line 8 def call_count @call_count end |
#current_nest_count ⇒ Object
Returns the value of attribute current_nest_count.
8 9 10 |
# File 'lib/one_apm/transaction/segment_summary.rb', line 8 def current_nest_count @current_nest_count end |
#exclusive_time ⇒ Object
Returns the value of attribute exclusive_time.
8 9 10 |
# File 'lib/one_apm/transaction/segment_summary.rb', line 8 def exclusive_time @exclusive_time end |
#metric_name ⇒ Object
Returns the value of attribute metric_name.
8 9 10 |
# File 'lib/one_apm/transaction/segment_summary.rb', line 8 def metric_name @metric_name end |
#total_time ⇒ Object
Returns the value of attribute total_time.
8 9 10 |
# File 'lib/one_apm/transaction/segment_summary.rb', line 8 def total_time @total_time end |
Instance Method Details
#<<(segment) ⇒ Object
16 17 18 19 20 21 22 23 24 25 |
# 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 ⇒ Object
31 32 33 |
# File 'lib/one_apm/transaction/segment_summary.rb', line 31 def average_exclusive_time @exclusive_time / @call_count end |
#average_time ⇒ Object
27 28 29 |
# File 'lib/one_apm/transaction/segment_summary.rb', line 27 def average_time @total_time / @call_count end |
#exclusive_time_percentage ⇒ Object
35 36 37 38 |
# 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 ⇒ Object
40 41 42 43 |
# 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 |