class Atatus::Spies::SidekiqSpy

@api private

Constants

ACTIVE_JOB_WRAPPER

Public Class Methods

name_for(job) click to toggle source
# File lib/atatus/spies/sidekiq.rb, line 47
def self.name_for(job)
  klass = job['class']

  case klass
  when ACTIVE_JOB_WRAPPER
    job['wrapped']
  else
    klass
  end
end

Public Instance Methods

install() click to toggle source
# File lib/atatus/spies/sidekiq.rb, line 102
def install
  install_processor
  install_middleware
end
install_middleware() click to toggle source
# File lib/atatus/spies/sidekiq.rb, line 58
def install_middleware
  if defined?(::Sidekiq)

    Sidekiq.configure_server do |config|
      config.server_middleware do |chain|
        chain.add Middleware
      end
    end

  end
end
install_processor() click to toggle source
# File lib/atatus/spies/sidekiq.rb, line 70
def install_processor
  require 'sidekiq/processor'

  if defined?(::Sidekiq) && defined?(::Sidekiq::Processor)

    Sidekiq::Processor.class_eval do
      alias start_without_apm start
      alias terminate_without_apm terminate

      def start
        result = start_without_apm

        # Already running from Railtie if Rails
        if Atatus.running?
          Atatus.agent.config.logger = Sidekiq.logger
        else
          Atatus.start
        end

        result
      end

      def terminate
        terminate_without_apm

        Atatus.stop
      end
    end

  end
end
start() click to toggle source
# File lib/atatus/spies/sidekiq.rb, line 79
def start
  result = start_without_apm

  # Already running from Railtie if Rails
  if Atatus.running?
    Atatus.agent.config.logger = Sidekiq.logger
  else
    Atatus.start
  end

  result
end
terminate() click to toggle source
# File lib/atatus/spies/sidekiq.rb, line 92
def terminate
  terminate_without_apm

  Atatus.stop
end