module NetuitiveRailsAgent::ErrorUtils
Attributes
interaction[RW]
Public Instance Methods
handle_error(exception, metrics = [], tags = {})
click to toggle source
# File lib/netuitive_rails_agent/error_utils.rb, line 23 def handle_error(exception, metrics = [], tags = {}) NetuitiveRailsAgent::ErrorLogger.guard('error during handle_error') do NetuitiveRailsAgent::NetuitiveLogger.log.debug "received error: #{exception}" unless ignored_error?(exception) @interaction = NetuitiveRailsAgent::ApiInteraction.new unless @interaction NetuitiveRailsAgent::NetuitiveLogger.log.debug "#{exception} wasn't ignored" if NetuitiveRailsAgent::ConfigManager.capture_errors NetuitiveRailsAgent::NetuitiveLogger.log.debug "sending error: #{exception}" @interaction.exception_event(exception, exception.class, tags) NetuitiveRailsAgent::NetuitiveLogger.log.debug 'sent error' end NetuitiveRailsAgent::NetuitiveLogger.log.debug 'sending error metrics' metrics.each do |metric| @interaction.aggregate_metric(metric.to_s, 1) NetuitiveRailsAgent::NetuitiveLogger.log.debug "sent error metric with name: #{metric}" end end end end
ignored_error?(exception)
click to toggle source
# File lib/netuitive_rails_agent/error_utils.rb, line 5 def ignored_error?(exception) NetuitiveRailsAgent::ErrorLogger.guard('error during ignored_error?') do unless NetuitiveRailsAgent::ConfigManager.ignored_errors.empty? NetuitiveRailsAgent::ConfigManager.ignored_errors.each do |name| if name.include? '^' name.tr!('^', '') exception.class.ancestors.each do |ancestor| return true if name.casecmp(ancestor.name).zero? end elsif name.casecmp(exception.class.name).zero? return true end end end end false end