Sha256: ce84186b39fb314fc5b7d3098b1c5029d1f4ad780f64bb3f3f176afb102448c9

Contents?: true

Size: 1.45 KB

Versions: 26

Compression:

Stored size: 1.45 KB

Contents

module Instana
  module Instrumentation
    class SidekiqClient
      def call(worker_class, msg, queue, _redis_pool)
        kv_payload = { :'sidekiq-client' => {} }
        kv_payload[:'sidekiq-client'][:queue] = queue
        kv_payload[:'sidekiq-client'][:job] = worker_class
        kv_payload[:'sidekiq-client'][:retry] = msg['retry'].to_s
        ::Instana.tracer.log_entry(:'sidekiq-client', kv_payload)

        # Temporary until we move connection collection to redis
        # instrumentation
        Sidekiq.redis_pool.with do |client|
          opts = client.respond_to?(:connection) ? client.connection : client.client.options
          kv_payload[:'sidekiq-client'][:'redis-url'] = "#{opts[:host]}:#{opts[:port]}"
        end

        context = ::Instana.tracer.context
        if context
          msg['X-Instana-T'] = context.trace_id_header
          msg['X-Instana-S'] = context.span_id_header
        end

        result = yield

        kv_payload[:'sidekiq-client'][:job_id] = result['jid']
        result
      rescue => e
        ::Instana.tracer.log_error(e)
        raise
      ensure
        ::Instana.tracer.log_exit(:'sidekiq-client', kv_payload)
      end
    end
  end
end

if defined?(::Sidekiq) && ::Instana.config[:'sidekiq-client'][:enabled]
  ::Sidekiq.configure_client do |cfg|
    cfg.client_middleware do |chain|
      ::Instana.logger.info "Instrumenting Sidekiq client"
      chain.add ::Instana::Instrumentation::SidekiqClient
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
instana-1.10.2-java lib/instana/instrumentation/sidekiq-client.rb
instana-1.10.2 lib/instana/instrumentation/sidekiq-client.rb
instana-1.10.1-java lib/instana/instrumentation/sidekiq-client.rb
instana-1.10.1 lib/instana/instrumentation/sidekiq-client.rb
instana-1.10.0 lib/instana/instrumentation/sidekiq-client.rb
instana-1.10.0.slimfast lib/instana/instrumentation/sidekiq-client.rb
instana-1.9.7 lib/instana/instrumentation/sidekiq-client.rb
instana-1.9.6 lib/instana/instrumentation/sidekiq-client.rb
instana-1.9.5 lib/instana/instrumentation/sidekiq-client.rb
instana-1.9.4 lib/instana/instrumentation/sidekiq-client.rb
instana-1.9.3 lib/instana/instrumentation/sidekiq-client.rb
instana-1.9.2 lib/instana/instrumentation/sidekiq-client.rb
instana-1.9.1 lib/instana/instrumentation/sidekiq-client.rb
instana-1.9.0 lib/instana/instrumentation/sidekiq-client.rb
instana-1.9.0.daftrabbit lib/instana/instrumentation/sidekiq-client.rb
instana-1.8.3 lib/instana/instrumentation/sidekiq-client.rb
instana-1.9.0.sillyrabbit lib/instana/instrumentation/sidekiq-client.rb
instana-1.8.2 lib/instana/instrumentation/sidekiq-client.rb
instana-1.8.1 lib/instana/instrumentation/sidekiq-client.rb
instana-1.8.0 lib/instana/instrumentation/sidekiq-client.rb