Sha256: f706b58acd93743c904819907667553b78e70ef763e53f45be1ad12195ed2ddc

Contents?: true

Size: 685 Bytes

Versions: 6

Compression:

Stored size: 685 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|
            redis.hincrby(key, k, v)
            redis.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

6 entries across 6 versions & 1 rubygems

Version Path
pulse-meter-0.3.1 lib/pulse-meter/sensor/timelined/hashed_counter.rb
pulse-meter-0.3.0 lib/pulse-meter/sensor/timelined/hashed_counter.rb
pulse-meter-0.2.11 lib/pulse-meter/sensor/timelined/hashed_counter.rb
pulse-meter-0.2.10 lib/pulse-meter/sensor/timelined/hashed_counter.rb
pulse-meter-0.2.9 lib/pulse-meter/sensor/timelined/hashed_counter.rb
pulse-meter-0.2.8 lib/pulse-meter/sensor/timelined/hashed_counter.rb