Class: PulseMeter::Sensor::Timelined::Average

Inherits:
PulseMeter::Sensor::Timeline show all
Defined in:
lib/pulse-meter/sensor/timelined/average.rb

Overview

Average value over interval

Constant Summary

Constants inherited from PulseMeter::Sensor::Timeline

PulseMeter::Sensor::Timeline::DEFAULTS

Constants included from Mixins::Dumper

Mixins::Dumper::DUMP_REDIS_KEY

Instance Attribute Summary

Attributes inherited from PulseMeter::Sensor::Timeline

#interval, #raw_data_ttl, #reduce_delay, #ttl

Attributes inherited from Base

#name, #redis

Instance Method Summary collapse

Methods inherited from PulseMeter::Sensor::Timeline

#cleanup, #current_interval_id, #current_raw_data_key, #data_key, #event, #get_interval_id, #get_timeline_value, #initialize, #raw_data_key, #reduce, reduce_all_raw, #reduce_all_raw, #timeline, #timeline_within

Methods included from Mixins::Utils

#assert_positive_integer!, #assert_ranged_float!, #camelize, #camelize_keys, #constantize, #symbolize_keys, #titleize, #uniqid

Methods inherited from Base

#annotate, #annotation, #cleanup, #event, #initialize

Methods included from Mixins::Dumper

included

Constructor Details

This class inherits a constructor from PulseMeter::Sensor::Timeline

Instance Method Details

#aggregate_event(key, value) ⇒ Object



7
8
9
10
# File 'lib/pulse-meter/sensor/timelined/average.rb', line 7

def aggregate_event(key, value)
  redis.hincrby(key, :count, 1)
  redis.hincrby(key, :sum, value)
end

#summarize(key) ⇒ Object



12
13
14
15
16
17
18
19
20
# File 'lib/pulse-meter/sensor/timelined/average.rb', line 12

def summarize(key)
  count = redis.hget(key, :count)
  sum = redis.hget(key, :sum)
  if count && !count.empty?
    sum.to_f / count.to_f
  else
    0
  end
end