Sha256: e269e5e7131e07c602c3c0e6f59f0e3871e91f1d10bd7d1536f02aa216cbfa91

Contents?: true

Size: 970 Bytes

Versions: 23

Compression:

Stored size: 970 Bytes

Contents

require 'rubygems' unless defined?(Gem)

module Vmpooler
  class Graphite
    attr_reader :server, :port, :prefix

    def initialize(params = {})
      if params['server'].nil? || params['server'].empty?
        raise ArgumentError, "Graphite server is required. Config: #{params.inspect}"
      end

      @server = params['server']
      @port   = params['port'] || 2003
      @prefix = params['prefix'] || 'vmpooler'
    end

    def increment(label)
      log label, 1
    end

    def gauge(label, value)
      log label, value
    end

    def timing(label, duration)
      log label, duration
    end

    def log(path, value)
      Thread.new do
        socket = TCPSocket.new(server, port)
        begin
          socket.puts "#{prefix}.#{path} #{value} #{Time.now.to_i}"
        ensure
          socket.close
        end
      end
    rescue => err
      $stderr.puts "Failure logging #{path} to graphite server [#{server}:#{port}]: #{err}"
    end
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
vmpooler-0.10.3 lib/vmpooler/graphite.rb
vmpooler-0.10.2 lib/vmpooler/graphite.rb
vmpooler-0.9.1 lib/vmpooler/graphite.rb
vmpooler-0.9.0 lib/vmpooler/graphite.rb
vmpooler-0.8.2 lib/vmpooler/graphite.rb
vmpooler-0.8.1 lib/vmpooler/graphite.rb
vmpooler-0.8.0 lib/vmpooler/graphite.rb
vmpooler-0.7.2 lib/vmpooler/graphite.rb
vmpooler-0.7.1 lib/vmpooler/graphite.rb
vmpooler-0.7.0 lib/vmpooler/graphite.rb
vmpooler-0.6.3 lib/vmpooler/graphite.rb
vmpooler-0.6.2 lib/vmpooler/graphite.rb
vmpooler-0.6.1 lib/vmpooler/graphite.rb
vmpooler-0.6.0 lib/vmpooler/graphite.rb
vmpooler-0.5.1 lib/vmpooler/graphite.rb
vmpooler-0.5.0 lib/vmpooler/graphite.rb
vmpooler-0.4.0 lib/vmpooler/graphite.rb
vmpooler-0.3.0 lib/vmpooler/graphite.rb
vmpooler-0.2.31 lib/vmpooler/graphite.rb
vmpooler-0.2.2 lib/vmpooler/graphite.rb