class Malevich::Responder::Udp

Constants

RIEMANN_RESERVED_FIELDS

Attributes

name[R]

Public Class Methods

new() click to toggle source
# File lib/malevich/responders/udp.rb, line 22
def initialize
  @host, @port = malevich.cmd[:'udp-responder'].split(':')
  @name = 'udp api'
end

Public Instance Methods

event_from_hash(hash=nil) click to toggle source
# File lib/malevich/responders/udp.rb, line 37
def event_from_hash(hash=nil)
  new_hash = Hash.new
  RIEMANN_RESERVED_FIELDS.each do |key|
    new_hash[key] = hash[key] || hash[key.to_s]
  end
  new_hash[:host] ||= malevich.ohai[:fqdn]
  new_hash[:tags] ||= malevich.cmd.tags
  new_hash
end
event_from_json(str) click to toggle source
# File lib/malevich/responders/udp.rb, line 47
def event_from_json(str)
  event_from_hash(JSON.parse(str))
end
process(data, src) click to toggle source
# File lib/malevich/responders/udp.rb, line 27
def process(data, src)
  begin
    malevich.riemann_events << event_from_json(data)
    src.reply "sended\n\n"
  rescue
    log :error, "Failed to send message: #{data.inspect}"
    src.reply "failed to send: #{data.inspect}\n"
  end
end
run!() click to toggle source
# File lib/malevich/responders/udp.rb, line 51
def run!
  log :unknown, "Start udp server at #{@host}:#{@port}"
  Socket.udp_server_loop(@host, @port) do |data, src|
    log :debug, "Received data: #{data.inspect}, from client: #{src.inspect}"
    process(data, src)
  end
end