class Riemann::Babbler::Sender::Client
Constants
- INTERVAL_FLUSH
Attributes
events[RW]
host[RW]
port[RW]
Public Class Methods
new(host)
click to toggle source
# File lib/riemann/babbler/sender_client.rb, line 18 def initialize(host) @host, @port = host.split(':') @port ||= opts.riemann.port @events = Array.new start end
Public Instance Methods
<<(event)
click to toggle source
# File lib/riemann/babbler/sender_client.rb, line 46 def <<(event) @events.shift if @events.size > opts.riemann.backlog @events << event end
alive?()
click to toggle source
# File lib/riemann/babbler/sender_client.rb, line 41 def alive? return false if @runner.nil? @runner.alive? end
start()
click to toggle source
# File lib/riemann/babbler/sender_client.rb, line 25 def start build_client @running = true @runner = Thread.new { while @running sleep INTERVAL_FLUSH flush end @runner = nil } end
stop()
click to toggle source
# File lib/riemann/babbler/sender_client.rb, line 37 def stop @running = false end
Private Instance Methods
build_client()
click to toggle source
riemann client
# File lib/riemann/babbler/sender_client.rb, line 63 def build_client @riemann = nil @riemann = Riemann::Babbler::Client.new({ :host => Resolv.new.getaddress(@host), :port => @port }) @riemann end
flush()
click to toggle source
flush events
# File lib/riemann/babbler/sender_client.rb, line 54 def flush unless @events.empty? @riemann << @events log :debug, "Posted events via (#{@host}:#{@port}): #{events.inspect}" @events.clear end end