class StatsdListener

Public Class Methods

new(host: nil, port: nil) click to toggle source
# File lib/statsd_listener.rb, line 14
def initialize(host: nil, port: nil)
  $stdout.sync = true

  @socket = UDPSocket.new
  @port = PortSanitizer.sanitize(port)
  @host = host.nil? ? '127.0.0.1' : host

  @socket.bind(@host, @port)
end
run(port: nil, host: nil) click to toggle source
# File lib/statsd_listener.rb, line 8
def self.run(port: nil, host: nil)
  puts "Starting MiniStatsd...\n\n"

  new(host: host, port: port).run
end

Public Instance Methods

run() click to toggle source
# File lib/statsd_listener.rb, line 24
def run
  puts "Listening on #{@host}:#{@port}"

  while @message = @socket.recvfrom(@port)
    extract_metric

    print_metric
  end
end

Private Instance Methods

extract_metric() click to toggle source
# File lib/statsd_listener.rb, line 36
def extract_metric
  return if @message.empty?

  @metric, @value = @message.first.split(':')
end
print_metric() click to toggle source