class Hitimes::ValueMetric - hitimes-1.2.6 Documentation

# 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