Sha256: 691c7f14e9cae82ce22d5d707c7fd070f8f1e40f8b808f714c85f7eab0334fc5

Contents?: true

Size: 1.1 KB

Versions: 24

Compression:

Stored size: 1.1 KB

Contents

# frozen_string_literal: true

module Mnemosyne
  module Probes
    module Sidekiq
      module Client
        class Probe < ::Mnemosyne::Probe
          def setup
            ::Sidekiq.configure_client do |config|
              config.client_middleware do |chain|
                chain.prepend Middleware
              end
            end
          end
        end

        class Middleware
          def call(_worker, job, _queue, _redis)
            if (trace = ::Mnemosyne::Instrumenter.current_trace)
              meta = {
                worker: job['class'],
                queue: job['queue'],
                arguments: job['args'],
                raw: job.clone
              }

              span = ::Mnemosyne::Span.new('external.job.sidekiq', meta: meta)
              span.finish! oneshot: true

              job['mnemosyne.transaction'] = trace.transaction
              job['mnemosyne.origin'] = span.uuid

              trace << span
            end

            yield
          end
        end
      end
    end

    register 'Sidekiq::Client', 'sidekiq/client', Sidekiq::Client::Probe.new
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
mnemosyne-ruby-1.17.0 lib/mnemosyne/probes/sidekiq/client.rb
mnemosyne-ruby-1.16.0 lib/mnemosyne/probes/sidekiq/client.rb
mnemosyne-ruby-1.15.0 lib/mnemosyne/probes/sidekiq/client.rb
mnemosyne-ruby-1.14.0 lib/mnemosyne/probes/sidekiq/client.rb
mnemosyne-ruby-1.13.0 lib/mnemosyne/probes/sidekiq/client.rb
mnemosyne-ruby-1.12.1 lib/mnemosyne/probes/sidekiq/client.rb
mnemosyne-ruby-1.12.0 lib/mnemosyne/probes/sidekiq/client.rb
mnemosyne-ruby-1.11.0 lib/mnemosyne/probes/sidekiq/client.rb
mnemosyne-ruby-1.10.0 lib/mnemosyne/probes/sidekiq/client.rb
mnemosyne-ruby-1.10.0.beta1 lib/mnemosyne/probes/sidekiq/client.rb
mnemosyne-ruby-1.9.0 lib/mnemosyne/probes/sidekiq/client.rb
mnemosyne-ruby-1.8.0 lib/mnemosyne/probes/sidekiq/client.rb
mnemosyne-ruby-1.7.1 lib/mnemosyne/probes/sidekiq/client.rb
mnemosyne-ruby-1.7.0 lib/mnemosyne/probes/sidekiq/client.rb
mnemosyne-ruby-1.6.2 lib/mnemosyne/probes/sidekiq/client.rb
mnemosyne-ruby-1.6.1 lib/mnemosyne/probes/sidekiq/client.rb
mnemosyne-ruby-1.5.1 lib/mnemosyne/probes/sidekiq/client.rb
mnemosyne-ruby-1.5.0 lib/mnemosyne/probes/sidekiq/client.rb
mnemosyne-ruby-1.4.0 lib/mnemosyne/probes/sidekiq/client.rb
mnemosyne-ruby-1.3.0 lib/mnemosyne/probes/sidekiq/client.rb