Class: NewRelic::TransactionAnalysis::SegmentSummary
- Defined in:
- lib/new_relic/transaction_analysis.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.
-
#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
- #developer_name ⇒ 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.
15 16 17 18 19 |
# File 'lib/new_relic/transaction_analysis.rb', line 15 def initialize(metric_name, sample) @metric_name = metric_name @total_time, @exclusive_time, @call_count = 0,0,0 @sample = sample end |
Instance Attribute Details
#call_count ⇒ Object
Returns the value of attribute call_count.
14 15 16 |
# File 'lib/new_relic/transaction_analysis.rb', line 14 def call_count @call_count end |
#exclusive_time ⇒ Object
Returns the value of attribute exclusive_time.
14 15 16 |
# File 'lib/new_relic/transaction_analysis.rb', line 14 def exclusive_time @exclusive_time end |
#metric_name ⇒ Object
Returns the value of attribute metric_name.
14 15 16 |
# File 'lib/new_relic/transaction_analysis.rb', line 14 def metric_name @metric_name end |
#total_time ⇒ Object
Returns the value of attribute total_time.
14 15 16 |
# File 'lib/new_relic/transaction_analysis.rb', line 14 def total_time @total_time end |
Instance Method Details
#<<(segment) ⇒ Object
21 22 23 24 25 26 27 28 29 |
# File 'lib/new_relic/transaction_analysis.rb', line 21 def <<(segment) if metric_name != segment.metric_name raise ArgumentError, "Metric Name Mismatch: #{segment.metric_name} != #{metric_name}" end @total_time += segment.duration @exclusive_time += segment.exclusive_duration @call_count += 1 end |
#average_exclusive_time ⇒ Object
35 36 37 |
# File 'lib/new_relic/transaction_analysis.rb', line 35 def average_exclusive_time @exclusive_time / @call_count end |
#average_time ⇒ Object
31 32 33 |
# File 'lib/new_relic/transaction_analysis.rb', line 31 def average_time @total_time / @call_count end |
#developer_name ⇒ Object
49 50 51 52 |
# File 'lib/new_relic/transaction_analysis.rb', line 49 def developer_name return @metric_name if @metric_name == 'Remainder' NewRelic::MetricParser.parse(@metric_name).developer_name end |
#exclusive_time_percentage ⇒ Object
39 40 41 42 |
# File 'lib/new_relic/transaction_analysis.rb', line 39 def exclusive_time_percentage return 0 unless @exclusive_time && @sample.duration && @sample.duration > 0 @exclusive_time / @sample.duration end |
#total_time_percentage ⇒ Object
44 45 46 47 |
# File 'lib/new_relic/transaction_analysis.rb', line 44 def total_time_percentage return 0 unless @total_time && @sample.duration && @sample.duration > 0 @total_time / @sample.duration end |