class MetricCollect::Backend::Graphite
Attributes
params[RW]
Public Class Methods
new(name)
click to toggle source
# File lib/backend/graphite.rb, line 23 def initialize(name) @params = Hash.new @params[:name] = name @params[:value] = nil @params[:key] = "metric_collect" end
Public Instance Methods
method_missing(method_symbol, *args, &block)
click to toggle source
# File lib/backend/graphite.rb, line 30 def method_missing(method_symbol, *args, &block) @params[method_symbol] end
process_metric(config)
click to toggle source
# File lib/backend/graphite.rb, line 36 def process_metric(config) @config = config.params name = @params[:name] value = @params[:value] key = @params[:key] report("#{key}.#{name}", value) end
Private Instance Methods
close_socket()
click to toggle source
# File lib/backend/graphite.rb, line 63 def close_socket @socket.close if @socket @socket = nil end
report(key, value, time = Time.now)
click to toggle source
# File lib/backend/graphite.rb, line 54 def report(key, value, time = Time.now) begin socket.write("#{key} #{value.to_f} #{time.to_i}\n") rescue Errno::EPIPE, Errno::EHOSTUNREACH, Errno::ECONNREFUSED @socket = nil nil end end
socket()
click to toggle source
# File lib/backend/graphite.rb, line 46 def socket host = @config[:graphite_server] port = @config[:graphit_port] return @socket if @socket && !@socket.closed? @socket = TCPSocket.new(@config[:graphite_server], @config[:graphite_port]) end