class SentryException

Attributes

values[RW]

Public Class Methods

new(exception) click to toggle source
# File lib/fluent/plugin/out_sentry.rb, line 9
def initialize(exception)
  self.values = []
  trace = {}
  trace['stacktrace'] = {}
  trace['stacktrace']['frames'] = []
  values.push(trace)

  frames = exception['frames']
  p exception
  p frames

  frames.each do |frame|
    add_values(frame)
  end

  add_error_type_and_message(exception['error_type'], exception['error_message'])
  values[0]['mechanism'] = {}
  values[0]['mechanism']['type'] = 'generic'
  values[0]['mechanism']['handled'] = true
end

Public Instance Methods

add_error_type_and_message(type, message) click to toggle source
# File lib/fluent/plugin/out_sentry.rb, line 42
def add_error_type_and_message(type, message)
  values[0]['type'] = type
  values[0]['value'] = message
end
add_values(frame) click to toggle source
# File lib/fluent/plugin/out_sentry.rb, line 30
def add_values(frame)
  sentry_frame = {
    in_app: frame['in_app'] || false,
    function: frame['function_name'] || nil,
    filename: frame['file_name'] || nil,
    lineno: frame['line_number'] || nil,
    colno: frame['column_number'] || nil
  }

  values[0]['stacktrace']['frames'].push(sentry_frame)
end
to_json(*_args) click to toggle source
# File lib/fluent/plugin/out_sentry.rb, line 47
def to_json(*_args)
  hash = {}
  instance_variables.each do |var|
    hash[var.to_s.delete '@'] = instance_variable_get var
  end
  hash.to_json
end