class Object
Public Instance Methods
aggregate(metric, value, type, state)
click to toggle source
# File bin/memcache2graphite, line 27 def aggregate(metric, value, type, state) if type == "sum" prev = state[metric] state[metric] = value if prev return value.to_f - prev.to_f end else return value end end
collect(conf, memcache, graphite, state)
click to toggle source
# File bin/memcache2graphite, line 39 def collect(conf, memcache, graphite, state) metrics_filter = conf["metrics"] message = {} memcache.stats.select{|node, metrics| metrics}.each do |node, metrics| metrics.select{|metric, value| metrics_filter.has_key?(metric)}.each do |metric, value| type = metrics_filter[metric] to_send = aggregate(metric, value, type, state) if to_send message[conf["graphite"]["path"].gsub(/<type>/,type).gsub(/<metric>/,metric)] = to_send end end end graphite.send_metrics(message) end
run_timer(conf, memcache, graphite)
click to toggle source
# File bin/memcache2graphite, line 54 def run_timer(conf, memcache, graphite) EventMachine.run { state = {} EventMachine.add_periodic_timer(conf.fetch("freq",1)) do collect(conf, memcache, graphite, state) end } end