class LogStash::Filters::Ruby

Execute ruby code.

For example, to cancel 90% of events, you can do this:

filter {
  ruby {
    # Cancel 90% of events
    code => "event.cancel if rand <= 0.90"
  } 
}

Public Instance Methods

filter(event) click to toggle source
# File lib/logstash/filters/ruby.rb, line 35
def filter(event)
  return unless filter?(event)

  @codeblock.call(event)

  filter_matched(event)
end
register() click to toggle source
# File lib/logstash/filters/ruby.rb, line 28
def register
  # TODO(sissel): Compile the ruby code
  eval(@init, binding, "(ruby filter init)") if @init
  eval("@codeblock = lambda { |event| #{@code} }", binding, "(ruby filter code)")
end