class Fluent::Plugin::ApptuitFilter

Public Instance Methods

filter(tag, time, record) click to toggle source
# File lib/fluent/plugin/filter_apptuit.rb, line 34
def filter(tag, time, record)
 begin
  fingerprint_object = FingerPrinter.new()
  if @lang.downcase == 'java'
    if record.key?(@error_msg_tag)
      if syslog
        message = get_decoded_message(record[@error_msg_tag])
      else
        message = record[@error_msg_tag]
      end
      err_name, fingerprint, essence, stack = fingerprint_object.fingerprint_java(message)
      if err_name != nil
         record['error_fingerprint'] = fingerprint 
         record['exception'] = err_name
      end
    end
  elsif @lang.downcase == 'python'
     if record.key?(@error_msg_tag)
      if syslog
        message = get_decoded_message(record[@error_msg_tag])
      else
        message = record[@error_msg_tag]
      end
      err_name, fingerprint, essence, stack = fingerprint_object.fingerprint_python(message)
      if err_name != nil
         record['error_fingerprint'] = fingerprint 
         record['exception'] = err_name
      end
     end
  elsif @lang.downcase == 'nodejs'
    if record.key?(@error_msg_tag)
      if syslog
        message = get_decoded_message(record[@error_msg_tag])
      else
        message = record[@error_msg_tag]
      end
      err_name, fingerprint, essence, stack = fingerprint_object.fingerprint_nodejs(message)
      if err_name != nil
         record['error_fingerprint'] = fingerprint
         record['exception'] = err_name
      end
    end
  else
     return record
  end
 rescue
  return record
 end
 record
end
get_decoded_message(message) click to toggle source
# File lib/fluent/plugin/filter_apptuit.rb, line 29
def get_decoded_message(message)
    message = message.gsub(/#([0-9]{3})/) {$1.oct.chr}            
  return message 
end