class Fluent::OutputFieldMultiRegex
Public Instance Methods
emit(tag, es, chain)
click to toggle source
# File lib/fluent/plugin/out_field_multiregex.rb, line 39 def emit(tag, es, chain) tag = update_tag(tag) es.each { |time, record| Engine.emit(tag, time, parse_field(record)) } chain.next end
parse_field(record)
click to toggle source
# File lib/fluent/plugin/out_field_multiregex.rb, line 61 def parse_field(record) if (parse_key.nil?) || !(record.key?(parse_key)) return record end source = record[parse_key].to_s source_arr = [] if !(multiline == false) source_arr = source.split( /\r?\n/ ) else source_arr << source end input_patterns = [pattern1,pattern2,pattern3,pattern4, pattern5,pattern6,pattern7,pattern8, pattern9,pattern10,pattern11,pattern12, pattern13,pattern14,pattern15,pattern16, pattern17,pattern18,pattern19,pattern20 ] matched = false input_patterns.each do |input_pattern| if !(input_pattern.nil?) source_arr.each do |source_elem| matched = false matched_hash = source_elem.match(input_pattern) if !(matched_hash.nil?) matched_hash.names.each do |key| val = matched_hash[key] if val.is_i? record[key] = val.to_i elsif val.nan? record[key] = val else record[key] = val.to_f end end matched = true end end end if matched break end end return record end
update_tag(tag)
click to toggle source
# File lib/fluent/plugin/out_field_multiregex.rb, line 47 def update_tag(tag) if remove_tag_prefix if remove_tag_prefix == tag tag = '' elsif tag.to_s.start_with?(remove_tag_prefix+'.') tag = tag[remove_tag_prefix.length+1 .. -1] end end if add_tag_prefix tag = tag && tag.length > 0 ? "#{add_tag_prefix}.#{tag}" : add_tag_prefix end return tag end