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