class InfluxReporter::ErrorMessage
Constants
- DEFAULTS
Attributes
config[R]
culprit[RW]
database[RW]
exception[RW]
extra[RW]
filter[R]
http[RW]
level[RW]
logger[RW]
machine[RW]
message[RW]
param_message[RW]
stacktrace[RW]
timestamp[R]
user[RW]
Public Class Methods
from_exception(config, exception, opts = {})
click to toggle source
# File lib/influx_reporter/error_message.rb, line 50 def self.from_exception(config, exception, opts = {}) message = "#{exception.class}: #{exception.message}" if config.excluded_exceptions.include? exception.class.to_s info "Skipping excluded exception #{exception.class}" return nil end error_message = new(config, message) do |msg| msg.level = :error msg.exception = Exception.from(exception) msg.stacktrace = Stacktrace.from(config, exception) end if frames = error_message.stacktrace&.frames if first_frame = frames.last error_message.culprit = "#{first_frame.filename}:#{first_frame.lineno}:in `#{first_frame.function}'" end end if env = opts[:rack_env] error_message.http = HTTP.from_rack_env env, filter: error_message.filter error_message.user = User.from_rack_env config, env end if extra = opts[:extra] error_message.extra = extra end error_message end
new(config, message, attrs = {}) { |self| ... }
click to toggle source
# File lib/influx_reporter/error_message.rb, line 20 def initialize(config, message, attrs = {}) @config = config @message = message @timestamp = Util.nanos DEFAULTS.merge(attrs).each do |k, v| send(:"#{k}=", v) end @filter = Filter.new config yield self if block_given? end
Public Instance Methods
add_extra(info)
click to toggle source
# File lib/influx_reporter/error_message.rb, line 82 def add_extra(info) @extra ||= {} @extra.deep_merge! info end