Module: NetuitiveRailsAgent::ErrorUtils
- Included in:
- ErrorTrackerHook, SidekiqTracker::ErrorTracker
- Defined in:
- lib/netuitive_rails_agent/error_utils.rb
Instance Attribute Summary collapse
-
#interaction ⇒ Object
Returns the value of attribute interaction.
Instance Method Summary collapse
Instance Attribute Details
#interaction ⇒ Object
Returns the value of attribute interaction.
3 4 5 |
# File 'lib/netuitive_rails_agent/error_utils.rb', line 3 def interaction @interaction end |
Instance Method Details
#handle_error(exception, metrics = [], tags = {}) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/netuitive_rails_agent/error_utils.rb', line 23 def handle_error(exception, metrics = [], = {}) 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, ) 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) ⇒ Boolean
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# 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 |