class Riemann::Tools::Zookeeper

Public Instance Methods

tick() click to toggle source
# File lib/riemann/tools/zookeeper.rb, line 15
def tick
  sock = TCPSocket.new(opts[:zookeeper_host], opts[:zookeeper_port])
  sock.sync = true
  sock.print('mntr')
  sock.flush

  loop do
    stats = sock.gets

    break if stats.nil?

    m = stats.match(/^(\w+)\t+(.*)/)

    report(
      host: opts[:zookeeper_host].dup,
      service: "zookeeper #{m[1]}",
      metric: m[2].to_f,
      state: 'ok',
      tags: ['zookeeper'],
    )
  end
  sock.close
end