class NetuitiveRailsAgent::SidekiqTracker::ErrorTracker

Public Class Methods

new() click to toggle source
# File lib/netuitive_rails_agent/sidekiq.rb, line 39
def initialize
  @interaction = NetuitiveRailsAgent::ApiInteraction.new
end

Public Instance Methods

call(exception, ctx_hash) click to toggle source
# 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