Sha256: 083d32d71c2a39e8e89819625bc1d6e5d18100e70e6399759e064c54587777d1

Contents?: true

Size: 1.27 KB

Versions: 5

Compression:

Stored size: 1.27 KB

Contents

require 'agent/am_objectholder'
require 'agent/trackers/default_tracker'

module ManageEngine
  module Instrumentation
    class SidekiqClient
      include Sidekiq::ClientMiddleware if defined?(Sidekiq::ClientMiddleware)
            
      def call(worker, msg, queue, *_)
            tracker = nil
            result = nil
            begin
                # https://github.com/sidekiq/sidekiq/blob/main/lib/sidekiq/middleware/chain.rb
                # Check comment section
              jobName = msg["class"]
              tracker = ManageEngine::Tracker::DefaultTracker.new("Sidekiq - " + msg["class"] + " - Job Id: " + msg["jid"])
              tracker = ManageEngine::Agent::TrackerHandler.invokeTracker(tracker)
            rescue Exception=>e
              ManageEngine::APMObjectHolder.instance.log.info "Exception while creating tracker for sidekiq_client #{e}"
            end
            begin
              result = yield
            rescue Exception=>e
              if (tracker != nil)
                tracker.setError(e)
              end
              raise e
            ensure
            if tracker != nil
              tracker.finish
              ManageEngine::Agent::TrackerHandler.exitTracker(tracker)
            end
          end
          result
        end
    end
  end
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
site24x7_apminsight-1.9.3 lib/agent/server/instrument/sidekiq_client.rb
site24x7_apminsight-1.9.2 lib/agent/server/instrument/sidekiq_client.rb
site24x7_apminsight-1.9.1 lib/agent/server/instrument/sidekiq_client.rb
apminsight-1.9.0 lib/agent/server/instrument/sidekiq_client.rb
site24x7_apminsight-1.9.0 lib/agent/server/instrument/sidekiq_client.rb