Class: Fluent::KeyValueParser

Inherits:
Filter
  • Object
show all
Defined in:
lib/fluent/plugin/filter_key_value_parser.rb

Instance Method Summary collapse

Instance Method Details

#configure(conf) ⇒ Object



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

def configure(conf)
  super

  regex = /^\/.+\/$/

  if regex.match(@keys_delimiter.to_s)
    @keys_delimiter = Regexp.new(@keys_delimiter[1..-2])
  end

  if regex.match(@remove_prefix.to_s)
    @remove_prefix = Regexp.new(@remove_prefix[1..-2])
  end

  if regex.match(@filtered_keys_regex.to_s)
     @filtered_keys_regex = Regexp.new(@filtered_keys_regex[1..-2])
  end

  @filtered_keys_list = parse_filtered_keys_parameter
end

#filter(tag, time, record) ⇒ Object



41
42
43
44
45
46
47
48
49
50
# File 'lib/fluent/plugin/filter_key_value_parser.rb', line 41

def filter(tag, time, record)
  return if record[@key].nil?

  keys = extracted_keys(extract_log_line(record[@key]))

  return if @filter_out_lines_without_keys && keys.empty?

  record.merge! keys
  record.tap { |r| r.delete(@key) if @remove_key }.compact
end