Class: Fluent::ParseCookieOutput

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

Instance Method Summary collapse

Constructor Details

#initializeParseCookieOutput

Returns a new instance of ParseCookieOutput.



11
12
13
14
# File 'lib/fluent/plugin/out_parse_cookie.rb', line 11

def initialize
  super
  require 'cgi'
end

Instance Method Details

#configure(conf) ⇒ Object



19
20
21
# File 'lib/fluent/plugin/out_parse_cookie.rb', line 19

def configure(conf)
  super
end

#emit(tag, es, chain) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/fluent/plugin/out_parse_cookie.rb', line 31

def emit(tag, es, chain)
  es.each do |time, record|
    t = tag.dup
    new_record = parse_cookie(record)

    t = @tag_prefix + t unless @tag_prefix.nil?

    Engine.emit(t, time, new_record)
  end
  chain.next
rescue StandardError => e
  log.warn("out_parse_cookie: error_class:#{e.class} error_message:#{e.message} tag:#{tag} es:#{es} bactrace:#{e.backtrace.first}")
end


45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/fluent/plugin/out_parse_cookie.rb', line 45

def parse_cookie(record)
  if record[key]
    parsed_cookie = CGI::Cookie.parse(record[key])
    hash = {}
    parsed_cookie.each do |k, array|
      hash.merge!(k => array.select { |v| v.class == String })
    end

    hash = hash.reject { |_k, v| v == [] } if remove_empty_array == true

    if single_value_to_string == true
      hash.each do |k, v|
        hash[k] = v[0] if v.count == 1
      end
    end

    target = sub_key ? (record[sub_key] ||= {}) : record

    target.merge!(hash)

    record.delete(key) if remove_cookie
  end
  record
rescue StandardError => e
  log.warn("out_parse_cookie: error_class:#{e.class} error_message:#{e.message} tag:#{tag} record:#{record} bactrace:#{e.backtrace.first}")
end

#shutdownObject



27
28
29
# File 'lib/fluent/plugin/out_parse_cookie.rb', line 27

def shutdown
  super
end

#startObject



23
24
25
# File 'lib/fluent/plugin/out_parse_cookie.rb', line 23

def start
  super
end