Sha256: 37af9de2387bb24a83600b15461603d5d5805254768763aa985d15b5c228ad31

Contents?: true

Size: 1.01 KB

Versions: 2

Compression:

Stored size: 1.01 KB

Contents

require 'fluent/input'
require 'relp'

module Fluent
  class RelpInput < Input
    Fluent::Plugin.register_input('relp', self)

    desc 'Tag of output events.'
    config_param :tag, :string
    desc 'The port to listen to.'
    config_param :port, :integer, default: 5170
    desc 'The bind address to listen to.'
    config_param :bind, :string, default: '0.0.0.0'

    def configure(conf)
        super
    end

    def start
	super
	@server = Relp::RelpServer.new(@bind, @port, log, method(:on_message))
        @thread = Thread.new(&method(:run))
    end

    def shutdown
	super
	@server.server_shutdown
        @thread.join
    end

    def run
        @server.run()
      rescue => e
        log.error "unexpected error", error: e, error_class: e.class
        log.error_backtrace
    end

    def on_message(msg)
	  time = Engine.now
	  record = {"message"=> msg}
	  router.emit(@tag, time, record)
      rescue => e
        log.error msg.dump, error: e, error_class: e.class
        log.error_backtrace
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
fluent-plugin-relp-0.1.4 lib/fluent/plugin/in_relp.rb
fluent-plugin-relp-0.1.3 lib/fluent/plugin/in_relp.rb