Class: Fluent::ScriptAppendOutput

Inherits:
Output
  • Object
show all
Defined in:
lib/fluent/plugin/out_script_append.rb

Instance Method Summary collapse

Instance Method Details

#configure(conf) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/fluent/plugin/out_script_append.rb', line 12

def configure(conf)
  super
  ensure_param_set!(:key, @key)
  ensure_param_set!(:run_script, @run_script)
  ensure_param_set!("new_tag or prefix", (@new_tag or @prefix))

  @script_runner = Object.new

  # TODO multiple script language support
  if @language != 'ruby'
    warn "Plugin out_script_append would not accept 'language' value other than 'ruby'. Ignoring."
  end

  eval <<-RUBY
    def @script_runner.run(#{@record_var_name})
      #{@run_script}
    end
  RUBY
end

#emit(tag, event_stream, chain) ⇒ Object



32
33
34
35
36
37
38
39
# File 'lib/fluent/plugin/out_script_append.rb', line 32

def emit(tag, event_stream, chain)
  event_stream.each do |time, record|
    rewrited_tag = get_new_tag(tag)
    record[@key] = @script_runner.run(record)
    Fluent::Engine.emit(rewrited_tag, time, record)
  end
  chain.next
end