Sha256: 27b70a2db0cb553c013ad5dcc5f3af0a9c8833896ea0f4d690f87eb945996d7d

Contents?: true

Size: 711 Bytes

Versions: 13

Compression:

Stored size: 711 Bytes

Contents

require 'json'

module PulseMeter
  module Sensor
    module Timelined
      # Counts multiple types of events per interval.
      # Good replacement for multiple counters to be visualized together
      class HashedCounter < Timeline
        def aggregate_event(key, data)
          data.each_pair do |k, v|
            command_aggregator.hincrby(key, k, v)
            command_aggregator.hincrby(key, :total, v)
          end
        end

        def summarize(key)
          redis.
            hgetall(key).
            inject({}) {|h, (k, v)| h[k] = v.to_i; h}.
            to_json
        end

        private

        def deflate(value)
          JSON.parse(value)
        end
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 2 rubygems

Version Path
pulse_meter_core-0.5.0 lib/pulse_meter/sensor/timelined/hashed_counter.rb
pulse_meter_core-0.4.13 lib/pulse_meter/sensor/timelined/hashed_counter.rb
pulse-meter-0.4.9 lib/pulse-meter/sensor/timelined/hashed_counter.rb
pulse-meter-0.4.8 lib/pulse-meter/sensor/timelined/hashed_counter.rb
pulse-meter-0.4.7 lib/pulse-meter/sensor/timelined/hashed_counter.rb
pulse-meter-0.4.6 lib/pulse-meter/sensor/timelined/hashed_counter.rb
pulse-meter-0.4.5 lib/pulse-meter/sensor/timelined/hashed_counter.rb
pulse-meter-0.4.4 lib/pulse-meter/sensor/timelined/hashed_counter.rb
pulse-meter-0.4.3 lib/pulse-meter/sensor/timelined/hashed_counter.rb
pulse-meter-0.4.2 lib/pulse-meter/sensor/timelined/hashed_counter.rb
pulse-meter-0.4.1 lib/pulse-meter/sensor/timelined/hashed_counter.rb
pulse-meter-0.4.0 lib/pulse-meter/sensor/timelined/hashed_counter.rb
pulse-meter-0.3.2 lib/pulse-meter/sensor/timelined/hashed_counter.rb