Class: Fluent::AddOutput

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

Instance Method Summary collapse

Constructor Details

#initializeAddOutput

Returns a new instance of AddOutput.



15
16
17
# File 'lib/fluent/plugin/out_add.rb', line 15

def initialize
  super
end

Instance Method Details

#configure(conf) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/fluent/plugin/out_add.rb', line 19

def configure(conf)
  super

  @tag_prefix = "#{@add_tag_prefix}."
  @add_hash = Hash.new

  @tag_proc =
    if @tag_prefix
      Proc.new {|tag| "#{@tag_prefix}#{tag}" }
    else
      Proc.new {|tag| tag }
    end
  conf.elements.select {|element|
    element.name == 'pair' 
  }.each do |pair|
    pair.each do | k,v|
     pair.has_key?(k) # suppress warnings about unused configuration
     @add_hash[k] = v
    end
  end 
end

#emit(tag, es, chain) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/fluent/plugin/out_add.rb', line 41

def emit(tag, es, chain)
  emit_tag = @tag_proc.call(tag)

  es.each do |time,record|
    @add_hash.each do |k,v|
      record[k] = v
    end
    if @uuid
      record[@uuid_key] = SecureRandom.uuid.upcase
    end
    router.emit(emit_tag, time, record)
  end

  chain.next
end