Sha256: d970a9a8c5482340a15f35fd1991810fec9c0a5294be0f72890d8485fbc9de6d

Contents?: true

Size: 1.63 KB

Versions: 7

Compression:

Stored size: 1.63 KB

Contents

# frozen_string_literal: true

require "sidekiq"

require "sidekiq/tracer/version"
require "sidekiq/tracer/constants"
require "sidekiq/tracer/commons"
require "sidekiq/tracer/client_middleware"
require "sidekiq/tracer/server_middleware"

module Sidekiq
  module Tracer
    class << self
      def instrument(tracer: OpenTracing.global_tracer, active_span: nil, after_trace: nil)
        instrument_client(tracer: tracer, active_span: active_span)
        instrument_server(tracer: tracer, active_span: active_span, after_trace: after_trace)
      end

      def instrument_client(tracer: OpenTracing.global_tracer, active_span: nil)
        Sidekiq.configure_client do |config|
          config.client_middleware { |chain| add_client_middleware(chain, tracer, active_span) }
        end
      end

      def instrument_server(tracer: OpenTracing.global_tracer, active_span: nil, after_trace: nil)
        Sidekiq.configure_server do |config|
          config.client_middleware { |chain| add_client_middleware(chain, tracer, active_span) }
          config.server_middleware { |chain| add_server_middleware(chain, tracer, active_span, after_trace) }
        end

        return unless defined?(Sidekiq::Testing)

        Sidekiq::Testing.server_middleware { |chain| add_server_middleware(chain, tracer, active_span, after_trace) }
      end

      def add_client_middleware(chain, tracer, active_span)
        chain.add Sidekiq::Tracer::ClientMiddleware, tracer, active_span
      end

      def add_server_middleware(chain, tracer, active_span, after_trace)
        chain.add Sidekiq::Tracer::ServerMiddleware, tracer, active_span, after_trace
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
sidekiq-instrumentation-2.2.0 lib/sidekiq/tracer.rb
sidekiq-instrumentation-2.1.0 lib/sidekiq/tracer.rb
sidekiq-instrumentation-2.1.0.pre3 lib/sidekiq/tracer.rb
sidekiq-instrumentation-2.1.0.pre2 lib/sidekiq/tracer.rb
sidekiq-instrumentation-2.1.0.pre1 lib/sidekiq/tracer.rb
sidekiq-instrumentation-2.0.0 lib/sidekiq/tracer.rb
sidekiq-instrumentation-2.0.0.pre1 lib/sidekiq/tracer.rb