class Mmtrix::MetricData
Attributes
metric_id[RW]
nil or a cached integer ID for the metric from the collector.
metric_spec[R]
nil, or a Mmtrix::MetricSpec
object if we have no cached ID
stats[RW]
the actual statistics object
Public Class Methods
new(metric_spec, stats, metric_id)
click to toggle source
# File lib/mmtrix/metric_data.rb, line 16 def initialize(metric_spec, stats, metric_id) @metric_spec = metric_spec self.stats = stats self.metric_id = metric_id end
Public Instance Methods
eql?(o)
click to toggle source
# File lib/mmtrix/metric_data.rb, line 22 def eql?(o) (metric_spec.eql? o.metric_spec) && (stats.eql? o.stats) end
hash()
click to toggle source
# File lib/mmtrix/metric_data.rb, line 37 def hash metric_spec.hash ^ stats.hash end
inspect()
click to toggle source
# File lib/mmtrix/metric_data.rb, line 54 def inspect "#<MetricData metric_spec:#{metric_spec.inspect}, stats:#{stats.inspect}, metric_id:#{metric_id.inspect}>" end
metric_spec=(new_spec)
click to toggle source
assigns a new metric spec, and retains the old metric spec as @original_spec if it exists currently
# File lib/mmtrix/metric_data.rb, line 32 def metric_spec= new_spec @original_spec = @metric_spec if @metric_spec @metric_spec = new_spec end
original_spec()
click to toggle source
# File lib/mmtrix/metric_data.rb, line 26 def original_spec @original_spec || @metric_spec end
to_collector_array(encoder=nil)
click to toggle source
# File lib/mmtrix/metric_data.rb, line 60 def to_collector_array(encoder=nil) stat_key = metric_id || { 'name' => metric_spec.name, 'scope' => metric_spec.scope } [ stat_key, [ int(stats.call_count, stat_key), float(stats.total_call_time, stat_key), float(stats.total_exclusive_time, stat_key), float(stats.min_call_time, stat_key), float(stats.max_call_time, stat_key), float(stats.sum_of_squares, stat_key) ] ] end
to_json(*a)
click to toggle source
Serialize with all attributes, but if the metric id is not nil, then don’t send the metric spec
# File lib/mmtrix/metric_data.rb, line 42 def to_json(*a) %Q[{"metric_spec":#{metric_id ? 'null' : metric_spec.to_json},"stats":{"total_exclusive_time":#{stats.total_exclusive_time},"min_call_time":#{stats.min_call_time},"call_count":#{stats.call_count},"sum_of_squares":#{stats.sum_of_squares},"total_call_time":#{stats.total_call_time},"max_call_time":#{stats.max_call_time}},"metric_id":#{metric_id ? metric_id : 'null'}}] end
to_s()
click to toggle source
# File lib/mmtrix/metric_data.rb, line 46 def to_s if metric_spec "#{metric_spec.name}(#{metric_spec.scope}): #{stats}" else "#{metric_id}: #{stats}" end end