Sha256: 6bcaae963f6843d0c34b6d07eb9dd93a86d1133cc0e7af8bcda372a4dfb7509e

Contents?: true

Size: 994 Bytes

Versions: 20

Compression:

Stored size: 994 Bytes

Contents

module ScoutApm
  module Instruments
    module Resque
      def around_perform_with_scout_instruments(*args)
        job_name = self.to_s
        queue = find_queue

        if job_name == "ActiveJob::QueueAdapters::ResqueAdapter::JobWrapper"
          job_name = args.first["job_class"] rescue job_name
          queue = args.first["queue_name"] rescue queue_name
        end

        req = ScoutApm::RequestManager.lookup
        req.job!

        begin
          req.start_layer(ScoutApm::Layer.new('Queue', queue))
          started_queue = true
          req.start_layer(ScoutApm::Layer.new('Job', job_name))
          started_job = true

          yield
        rescue => e
          req.error!
          raise
        ensure
          req.stop_layer if started_job
          req.stop_layer if started_queue
        end
      end

      def find_queue
        return @queue if @queue
        return queue if self.respond_to?(:queue)
        return "unknown"
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
scout_apm-2.3.5 lib/scout_apm/instruments/resque.rb
scout_apm-3.0.0.pre16 lib/scout_apm/instruments/resque.rb
scout_apm-3.0.0.pre15 lib/scout_apm/instruments/resque.rb
scout_apm-2.3.4 lib/scout_apm/instruments/resque.rb
scout_apm-2.3.3 lib/scout_apm/instruments/resque.rb
scout_apm-2.4.0.pre3 lib/scout_apm/instruments/resque.rb
scout_apm-3.0.0.pre14 lib/scout_apm/instruments/resque.rb
scout_apm-2.4.0.pre2 lib/scout_apm/instruments/resque.rb
scout_apm-2.3.2 lib/scout_apm/instruments/resque.rb
scout_apm-2.4.0.pre lib/scout_apm/instruments/resque.rb
scout_apm-3.0.0.pre13 lib/scout_apm/instruments/resque.rb
scout_apm-2.3.1 lib/scout_apm/instruments/resque.rb
scout_apm-3.0.0.pre12 lib/scout_apm/instruments/resque.rb
scout_apm-2.3.0 lib/scout_apm/instruments/resque.rb
scout_apm-2.3.0.pre3 lib/scout_apm/instruments/resque.rb
scout_apm-2.3.0.pre2 lib/scout_apm/instruments/resque.rb
scout_apm-2.3.0.pre1 lib/scout_apm/instruments/resque.rb
scout_apm-3.0.0.pre11 lib/scout_apm/instruments/resque.rb
scout_apm-2.3.0.pre lib/scout_apm/instruments/resque.rb
scout_apm-2.1.32 lib/scout_apm/instruments/resque.rb