Sha256: cd61aef2f4778b474d6e96323c587bee47cf472232e137941ca331995f711114
Contents?: true
Size: 1.14 KB
Versions: 2
Compression:
Stored size: 1.14 KB
Contents
module FnordMetric::GaugeModifiers def incr(gauge_name, value=1) gauge = fetch_gauge(gauge_name) assure_two_dimensional!(gauge) if gauge.unique? incr_uniq(gauge, value) else incr_tick(gauge, value) end end def incr_tick(gauge, value) if gauge.progressive? @redis.incrby(gauge.key(:head), value).callback do |head| @redis.hsetnx(gauge.key, gauge.tick_at(time), head).callback do |_new| @redis.hincrby(gauge.key, gauge.tick_at(time), value) unless _new end end else @redis.hincrby(gauge.key, gauge.tick_at(time), value) end end def incr_uniq(gauge, value) return false unless session_key @redis.sadd(gauge.tick_key(time, :sessions), session_key).callback do |_new| @redis.expire(gauge.tick_key(time, :sessions), gauge.tick) if _new @redis.incr(gauge.tick_key(time, :"sessions-count")).callback do |sc| incr_tick(gauge, value) end end end end def incr_field(gauge_name, field_name, value=1) gauge = fetch_gauge(gauge_name) assure_three_dimensional!(gauge) # here be dragons end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
fnordmetric-0.5.1 | lib/fnordmetric/gauge_modifiers.rb |
fnordmetric-0.5.0 | lib/fnordmetric/gauge_modifiers.rb |