class Naplug::Helpers::ENGraphite::Client

Attributes

metrics[R]

Public Class Methods

new(options) click to toggle source
# File lib/naplug/helpers.rb, line 39
def initialize(options)
  raise ArgumentError, 'missing graphite server address' if options[:graphite].nil?
  @graphite = options[:graphite]
  @port = options[:port].nil? ? 2003 : options[:port].to_i
  @prefix = options[:prefix].nil? ? '' : options[:prefix]
  @metrics = []
end

Public Instance Methods

flush!(options = { :timeout => 3}) click to toggle source
# File lib/naplug/helpers.rb, line 58
def flush!(options = { :timeout => 3})
  begin
    Timeout.timeout(options[:timeout]) do
      s = TCPSocket.open(@graphite,@port)
      @metrics.each do |metric|
        metric = "#{@prefix}.#{metric.to_s}\n"
        s.write metric
      end
      s.close
    end
  rescue Timeout::Error => e
    raise Naplug::Error, "graphite timeout (#{options[:timeout]}s)"
  rescue Errno::ECONNREFUSED, SocketError => e
    raise Naplug::Error, 'graphite socket error'
  end
end
metric(path, value, time = Time.now) click to toggle source
# File lib/naplug/helpers.rb, line 47
def metric path, value, time = Time.now
  @metrics.push(Metric.new(path,value,time))
end
metrics!() click to toggle source
# File lib/naplug/helpers.rb, line 51
def metrics!
  @metrics.each do |metric|
    metric = "#{@prefix}.#{metric.to_s}\n"
    print metric
  end
end