Sha256: 05d0998c12b57e8afe0fd243c1a2ce8ccf3cff39628d4a797d0f961890909653
Contents?: true
Size: 1.34 KB
Versions: 1
Compression:
Stored size: 1.34 KB
Contents
# { # "parse": { # "field": "message", # "pattern": "()" # } # } module Anschel class Filter def parse conf, stats, log field = conf.delete :field pattern = Regexp.new conf.delete(:pattern) raise 'Missing required "field" for "parse" filter' if field.nil? raise 'Missing required "pattern" for "parse" filter' if pattern.nil? field = field.to_sym stats.create 'filter-parse' stats.get 'filter-parse' stats.create 'filter-parse-skipped' stats.get 'filter-parse-skipped' stats.create 'filter-parse-error' stats.get 'filter-parse-error' log.trace event: 'filter-compiled', kind: 'parse', \ field: field, pattern: pattern lambda do |event| unless event.has_key? field stats.inc 'filter-parse-skipped' return event end mdata = pattern.match event[field] if mdata.nil? log.trace \ event: 'parse-filter-error', reason: 'regexp did not match', field: field, pattern: pattern, raw_event: event stats.inc 'filter-parse-error' return event end mdata.names.each do |group| event[group.to_sym] = mdata[group] end stats.inc 'filter-parse' filtered event, conf end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
anschel-0.7.0 | lib/anschel/filter/parse.rb |