Sha256: f95f116ac51ce2b07f6f2eb0bff2386af9b5b5fe67007324f273f5e54ccec20c

Contents?: true

Size: 656 Bytes

Versions: 5

Compression:

Stored size: 656 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)
          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

5 entries across 5 versions & 1 rubygems

Version Path
pulse_meter_core-0.5.5 lib/pulse_meter/sensor/timelined/hashed_counter.rb
pulse_meter_core-0.5.4 lib/pulse_meter/sensor/timelined/hashed_counter.rb
pulse_meter_core-0.5.3 lib/pulse_meter/sensor/timelined/hashed_counter.rb
pulse_meter_core-0.5.2 lib/pulse_meter/sensor/timelined/hashed_counter.rb
pulse_meter_core-0.5.1 lib/pulse_meter/sensor/timelined/hashed_counter.rb