Sha256: 963ebf1625a763f041c9043ca32ffbfdd7f75cb6da3cb4d6602f1b54167f2786

Contents?: true

Size: 1.12 KB

Versions: 9

Compression:

Stored size: 1.12 KB

Contents

# frozen_string_literal: true

require 'rubygems' unless defined?(Gem)
require 'statsd'

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

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

      host    = params['server']
      @port   = params['port'] || 8125
      @prefix = params['prefix'] || 'vmpooler'
      @server = ::Statsd.new(host, @port)
    end

    def increment(label)
      server.increment(prefix + '.' + label)
    rescue StandardError => e
      warn "Failure incrementing #{prefix}.#{label} on statsd server [#{server}:#{port}]: #{e}"
    end

    def gauge(label, value)
      server.gauge(prefix + '.' + label, value)
    rescue StandardError => e
      warn "Failure updating gauge #{prefix}.#{label} on statsd server [#{server}:#{port}]: #{e}"
    end

    def timing(label, duration)
      server.timing(prefix + '.' + label, duration)
    rescue StandardError => e
      warn "Failure updating timing #{prefix}.#{label} on statsd server [#{server}:#{port}]: #{e}"
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
vmpooler-0.13.3 lib/vmpooler/statsd.rb
vmpooler-0.13.2 lib/vmpooler/statsd.rb
vmpooler-0.13.1 lib/vmpooler/statsd.rb
vmpooler-0.13.0 lib/vmpooler/statsd.rb
vmpooler-0.12.0 lib/vmpooler/statsd.rb
vmpooler-0.11.3 lib/vmpooler/statsd.rb
vmpooler-0.11.2 lib/vmpooler/statsd.rb
vmpooler-0.11.1 lib/vmpooler/statsd.rb
vmpooler-0.11.0 lib/vmpooler/statsd.rb