class Fluent::Plugin::NetflowInput

Public Instance Methods

configure(conf) click to toggle source
Calls superclass method
# File lib/fluent/plugin/in_netflow.rb, line 45
def configure(conf)
  super

  @parser = Fluent::Plugin::NetflowParser.new
  @parser.configure(conf)
end
multi_workers_ready?() click to toggle source
# File lib/fluent/plugin/in_netflow.rb, line 41
def multi_workers_ready?
  true
end
shutdown() click to toggle source
Calls superclass method
# File lib/fluent/plugin/in_netflow.rb, line 59
def shutdown
  super
end
start() click to toggle source
Calls superclass method
# File lib/fluent/plugin/in_netflow.rb, line 52
def start
  super
  server_create(:in_netflow_server, @port, bind: @bind, proto: @protocol_type, max_bytes: @max_bytes) do |data, sock|
    receive_data(sock.remote_host, data)
  end
end

Protected Instance Methods

receive_data(host, data) click to toggle source
# File lib/fluent/plugin/in_netflow.rb, line 65
def receive_data(host, data)
  log.on_debug { log.debug "received logs", :host => host, :data => data }

  @parser.call(data, host) { |time, record|
    unless time && record
      log.warn "pattern not match: #{data.inspect}"
      return
    end

    record['host'] = host
    router.emit(@tag, Integer(time), record)
  }
rescue => e
  log.warn "unexpected error on parsing", data: data.dump, error_class: e.class, error: e.message
  log.warn_backtrace
end