Class: LogStash::Filters::RemoveKeyPattern

Inherits:
Base
  • Object
show all
Defined in:
lib/logstash/filters/remove_key_pattern.rb

Overview

Remove key pattern filter. Receives a parent key and an array with multiple patterns to remove from it’s children

For example, if you have a parent named ‘haystack’, and you want to remove all his children that contains a digit(d) or ‘needle’, do this:

source, ruby

filter {

remove_key_pattern {
  parent_keys => ["haystack1", "haystack2"]
  pattern => ["\\d", "needle"]
  keep_only_ids => "true"
}

}

Instance Method Summary collapse

Instance Method Details

#filter(event) ⇒ Object



44
45
46
47
48
49
# File 'lib/logstash/filters/remove_key_pattern.rb', line 44

def filter(event)
  @parent_keys.each do |key|
    remove_pattern(event, key) unless event.get(key).nil?
  end
  filter_matched(event)
end

#registerObject



34
35
36
37
38
39
40
41
# File 'lib/logstash/filters/remove_key_pattern.rb', line 34

def register
  begin
    @pattern = Regexp.new(@pattern.join('|'))
  rescue
    @logger.error("One or more keys are invalid", :pattern => @pattern.join(', '))
    raise "Bad pattern, aborting"
  end
end