class LogStash::Inputs::Udp
Read messages as events over the network via udp.
Public Class Methods
new(params)
click to toggle source
Calls superclass method
LogStash::Inputs::Base::new
# File lib/logstash/inputs/udp.rb, line 26 def initialize(params) super BasicSocket.do_not_reverse_lookup = true end
Public Instance Methods
register()
click to toggle source
# File lib/logstash/inputs/udp.rb, line 32 def register @udp = nil end
run(output_queue)
click to toggle source
# File lib/logstash/inputs/udp.rb, line 37 def run(output_queue) begin # udp server udp_listener(output_queue) rescue LogStash::ShutdownSignal # do nothing, shutdown was requested. rescue => e @logger.warn("UDP listener died", :exception => e, :backtrace => e.backtrace) sleep(5) retry end # begin end
teardown()
click to toggle source
# File lib/logstash/inputs/udp.rb, line 77 def teardown @udp.close if @udp && !@udp.closed? end
Private Instance Methods
udp_listener(output_queue)
click to toggle source
# File lib/logstash/inputs/udp.rb, line 51 def udp_listener(output_queue) @logger.info("Starting UDP listener", :address => "#{@host}:#{@port}") if @udp && ! @udp.closed? @udp.close end @udp = UDPSocket.new(Socket::AF_INET) @udp.bind(@host, @port) loop do payload, client = @udp.recvfrom(@buffer_size) @codec.decode(payload) do |event| decorate(event) event["host"] = client[3] output_queue << event end end ensure if @udp @udp.close_read rescue nil @udp.close_write rescue nil end end