Sha256: f2008185a9ab4b9b7783567b5430cf465f930c629df47d8fe056f554f6171253

Contents?: true

Size: 794 Bytes

Versions: 2

Compression:

Stored size: 794 Bytes

Contents

require_relative 'pit'

class Fluent::ConfigPitOutput < Fluent::Output
  attr_accessor :plugin

  Fluent::Plugin.register_output('config_pit', self)

  def mark_used(conf)
    conf.used = conf.keys
    conf.elements.each{|e| mark_used(e)}
  end

  def configure(conf)
    super

    configs = conf.elements.select {|e| e.name == 'pit' }
    if configs.size != 1
      raise Fluent::ConfigError, "config_pit needs just one <pit ...> ... </pit> section"
    end

    Fluent::Config::Pit.extract(configs.first).tap do |c|
      @plugin = Fluent::Plugin.new_output(c['type'])
      @plugin.configure(c)
    end

    mark_used(configs.first)
  end

  def start
    @plugin.start
  end

  def shutdown
    @plugin.shutdown
  end

  def emit(tag, es, chain)
    @plugin.emit(tag, es, chain)
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
fluent-plugin-config_pit-0.0.2 lib/fluent/plugin/out_config_pit.rb
fluent-plugin-config_pit-0.0.1 lib/fluent/plugin/out_config_pit.rb