class LogStash::Filters::Gelfify

The GELFify filter parses RFC3164 severity levels to corresponding GELF levels.

Constants

SYSLOG_LEVEL_MAP

Public Instance Methods

filter(event) click to toggle source
# File lib/logstash/filters/gelfify.rb, line 28
def filter(event)
  return unless event["type"] == @type
  @logger.debug("GELFIFY FILTER: received event of type #{event["type"]}")

  if event.include?("severity")
    sev = event["severity"].to_i rescue nil
    if sev.to_s != event["severity"].to_s
      # severity isn't convertable to an integer.
      # "foo".to_i => 0, which would default to EMERG.
      @logger.debug("GELFIFY FILTER: existing severity field is not an int")
    elsif SYSLOG_LEVEL_MAP[sev]
      @logger.debug("GELFIFY FILTER: Severity level successfully mapped")
      event["GELF_severity"] = SYSLOG_LEVEL_MAP[sev]
    else
      @logger.debug("GELFIFY FILTER: unknown severity #{sev}")
    end
  else
    @logger.debug("GELFIFY FILTER: No 'severity' field found")
  end

  if !event.cancelled?
    filter_matched(event)
  end
end
register() click to toggle source
# File lib/logstash/filters/gelfify.rb, line 23
def register
  # nothing
end