Class: NetuitiveRailsAgent::SidekiqTracker::ErrorTracker

Inherits:
Object
  • Object
show all
Includes:
ErrorUtils
Defined in:
lib/netuitive_rails_agent/sidekiq.rb

Instance Attribute Summary

Attributes included from ErrorUtils

#interaction

Instance Method Summary collapse

Methods included from ErrorUtils

#handle_error, #ignored_error?

Constructor Details

#initializeErrorTracker

Returns a new instance of ErrorTracker.



39
40
41
# File 'lib/netuitive_rails_agent/sidekiq.rb', line 39

def initialize
  @interaction = NetuitiveRailsAgent::ApiInteraction.new
end

Instance Method Details

#call(exception, ctx_hash) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/netuitive_rails_agent/sidekiq.rb', line 43

def call(exception, ctx_hash)
  NetuitiveRailsAgent::ErrorLogger.guard('error during sidekiq ErrorTracker') do
    NetuitiveRailsAgent::NetuitiveLogger.log.debug "sidekiq error tracked. context: #{ctx_hash[:context]}"
    tags = {
      sidekiq: 'true',
      context: ctx_hash[:context]
    }
    metrics = ['sidekiq.errors']
    job = ctx_hash[:job]
    unless job.nil?
      if defined? job.item
        item = job.item
        klass = item['wrapped'.freeze] || worker.class.to_s
        queue = item['queue']
        metrics << "sidekiq.#{queue}.#{klass}.error.count"
        metrics << "sidekiq.#{queue}.error.count"
      end
    end

    handle_error(exception, metrics, tags)
  end
end