class OpenTelemetry::Instrumentation::Sidekiq::Instrumentation

The Instrumentation class contains logic to detect and install the Sidekiq instrumentation

Constants

MINIMUM_VERSION

Private Instance Methods

add_client_middleware() click to toggle source
# File lib/opentelemetry/instrumentation/sidekiq/instrumentation.rb, line 67
def add_client_middleware
  ::Sidekiq.configure_client do |config|
    config.client_middleware do |chain|
      chain.add Middlewares::Client::TracerMiddleware
    end
  end
end
add_server_middleware() click to toggle source
# File lib/opentelemetry/instrumentation/sidekiq/instrumentation.rb, line 75
def add_server_middleware
  ::Sidekiq.configure_server do |config|
    config.client_middleware do |chain|
      chain.add Middlewares::Client::TracerMiddleware
    end
    config.server_middleware do |chain|
      chain.add Middlewares::Server::TracerMiddleware
    end
  end

  if defined?(::Sidekiq::Testing) # rubocop:disable Style/GuardClause
    ::Sidekiq::Testing.server_middleware do |chain|
      chain.add Middlewares::Server::TracerMiddleware
    end
  end
end
gem_version() click to toggle source
# File lib/opentelemetry/instrumentation/sidekiq/instrumentation.rb, line 40
def gem_version
  Gem.loaded_specs['sidekiq'].version
end
patch_on_startup() click to toggle source
# File lib/opentelemetry/instrumentation/sidekiq/instrumentation.rb, line 53
def patch_on_startup
  ::Sidekiq.configure_server do |config|
    config.on(:startup) do
      ::Sidekiq::Processor.prepend(Patches::Processor)
      ::Sidekiq::Launcher.prepend(Patches::Launcher)
      ::Sidekiq::Scheduled::Poller.prepend(Patches::Poller)
    end

    config.on(:shutdown) do
      OpenTelemetry.tracer_provider.shutdown
    end
  end
end
require_dependencies() click to toggle source
# File lib/opentelemetry/instrumentation/sidekiq/instrumentation.rb, line 44
def require_dependencies
  require_relative 'middlewares/client/tracer_middleware'
  require_relative 'middlewares/server/tracer_middleware'

  require_relative 'patches/processor'
  require_relative 'patches/launcher'
  require_relative 'patches/poller'
end