class Hitimes::ValueMetric

A ValueMetric holds the data from measuring a single value over a period of time. In most cases this may be a single measurement at a single point in time.

A good example of a ValueMetric is measuring the number of items in a queue.

A ValueMetric contains a Stats object, therefore ValueMetric has count, max, mean, min, stddev, sum, sumsq methods that delegate to that Stats object for convenience.

Attributes

stats[R]

holds all the statistics

Public Class Methods

new( 'my_metric' ) → ValueMetric click to toggle source
new( 'my_metric', 'foo' => 'bar', 'this' => 42 ) → ValueMetric

Create a new ValueMetric giving it a name and additional data. additional_data may be anything that follows the to_hash protocol.

Calls superclass method Hitimes::Metric.new
# File lib/hitimes/value_metric.rb, line 32
def initialize( name, additional_data = {} )
  super( name, additional_data )
  @stats = Stats.new
end

Public Instance Methods

measure( value ) → Float click to toggle source

Give the value as the measurement to the metric. The value is returned

# File lib/hitimes/value_metric.rb, line 43
def measure( value )
  @sampling_start_time ||= self.utc_microseconds()
  @sampling_start_interval ||= Interval.now

  @stats.update( value )
  
  # update the length of time we have been sampling
  @sampling_delta = @sampling_start_interval.duration_so_far
end
to_hash → Hash click to toggle source

Convert the metric to a hash

Calls superclass method Hitimes::Metric#to_hash
# File lib/hitimes/value_metric.rb, line 59
def to_hash
  h = super
  (Stats::STATS - %w[ rate ]).each do |s|
    h[s] = self.send( s ) 
  end
  return h
end