Sha256: 776207a0d5502157397815823e2fbd18e9712d7c76314b1cccc8ad14707b918d
Contents?: true
Size: 1.57 KB
Versions: 1
Compression:
Stored size: 1.57 KB
Contents
require "fluent/plugin/grok" module Fluent module Plugin class GrokPatternNotFoundError < Exception; end class GrokParser < Parser Fluent::Plugin.register_parser('grok', self) desc 'The format of the time field.' config_param :time_format, :string, :default => nil desc 'The pattern of grok' config_param :grok_pattern, :string, :default => nil desc 'Path to the file that includes custom grok patterns' config_param :custom_pattern_path, :string, :default => nil def initialize super @default_parser = NoneParser.new end def configure(conf={}) super @grok = Grok.new(self, conf) default_pattern_dir = File.expand_path('../../../../patterns/*', __FILE__) Dir.glob(default_pattern_dir) do |pattern_file_path| @grok.add_patterns_from_file(pattern_file_path) end if @custom_pattern_path if Dir.exist? @custom_pattern_path Dir.glob(@custom_pattern_path + '/*') do |pattern_file_path| @grok.add_patterns_from_file(pattern_file_path) end elsif File.exist? @custom_pattern_path @grok.add_patterns_from_file(@custom_pattern_path) end end @grok.setup end def parse(text) @grok.parsers.each do |parser| parser.parse(text) do |time, record| if time and record yield time, record return end end end yield @default_parser.parse(text) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
fluent-plugin-grok-parser-2.0.0 | lib/fluent/plugin/parser_grok.rb |