Sha256: 8d933f8c6ec0462b866495f9a2faa6a1a564c51be602fb13739732d386bf465f

Contents?: true

Size: 1.12 KB

Versions: 1

Compression:

Stored size: 1.12 KB

Contents

module Sidekiq
  module Middleware
    module Server
      class HarnessInstrumentation
        def call(worker_class, item, queue)
          if instrument? worker_class
            logger.debug "Instrumenting: #{worker_class.inspect}"

            options = {}
            options[:gauge] = "#{worker_class.class.to_s.underscore}.sidekiq"
            options[:counter] = "#{worker_class.class.to_s.pluralize.underscore}.sidekiq"

            ActiveSupport::Notifications.instrument "#{worker_class.class.to_s.underscore}.sidekiq", options do
              yield
            end

            ActiveSupport::Notifications.instrument "job.sidekiq", :counter => true
          else
            logger.debug "Skipped Instrumenting: #{worker_class.inspect}"
            yield
          end
        end

        private
        def instrument?(worker_class)
          worker_class.to_s !~ /^harness/i
        end

        def logger
          Sidekiq.logger
        end
      end
    end
  end
end

Sidekiq.configure_server do |config|
  config.server_middleware do |chain|
    chain.add Sidekiq::Middleware::Server::HarnessInstrumentation
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
harness-0.2.12 lib/harness/integration/sidekiq.rb