Sha256: d4effd0436c7182e9d9db85cc985346b695d91a2333c3b7fd53cd0ec92680a2f

Contents?: true

Size: 1.07 KB

Versions: 8

Compression:

Stored size: 1.07 KB

Contents

require 'ddtrace/contrib/patcher'
require 'ddtrace/ext/app_types'
require 'ddtrace/contrib/sidekiq/ext'

module Datadog
  module Contrib
    module Resque
      # Patcher enables patching of 'resque' module.
      module Patcher
        include Contrib::Patcher

        module_function

        def patched?
          done?(:resque)
        end

        def patch
          do_once(:resque) do
            begin
              require_relative 'resque_job'
              add_pin
              get_option(:workers).each { |worker| worker.extend(ResqueJob) }
            rescue StandardError => e
              Datadog::Tracer.log.error("Unable to apply Resque integration: #{e}")
            end
          end
        end

        def add_pin
          Pin.new(
            get_option(:service_name),
            app: Ext::APP,
            app_type: Datadog::Ext::AppTypes::WORKER,
            tracer: get_option(:tracer)
          ).onto(::Resque)
        end

        def get_option(option)
          Datadog.configuration[:resque].get_option(option)
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
ddtrace-0.18.3 lib/ddtrace/contrib/resque/patcher.rb
ddtrace-0.18.2 lib/ddtrace/contrib/resque/patcher.rb
ddtrace-0.18.1 lib/ddtrace/contrib/resque/patcher.rb
ddtrace-0.18.0 lib/ddtrace/contrib/resque/patcher.rb
ddtrace-0.17.3 lib/ddtrace/contrib/resque/patcher.rb
ddtrace-0.17.2 lib/ddtrace/contrib/resque/patcher.rb
ddtrace-0.17.1 lib/ddtrace/contrib/resque/patcher.rb
ddtrace-0.17.0 lib/ddtrace/contrib/resque/patcher.rb