Sha256: f2623c6347c911ddc5bfcdcd4d77caa7d103ab4acd63ff69314aeea0aed8a38d

Contents?: true

Size: 909 Bytes

Versions: 13

Compression:

Stored size: 909 Bytes

Contents

module Datadog
  module Contrib
    module DelayedJob
      # DelayedJob integration
      module Patcher
        include Base
        register_as :delayed_job

        option :service_name, default: 'delayed_job'.freeze
        option :tracer, default: Datadog.tracer

        @patched = false

        class << self
          def patch
            return @patched if patched? || !defined?(::Delayed)

            require 'ddtrace/ext/app_types'
            require_relative 'plugin'

            add_instrumentation(::Delayed::Worker)
            @patched = true
          rescue => e
            Tracer.log.error("Unable to apply DelayedJob integration: #{e}")
            @patched
          end

          def patched?
            @patched
          end

          private

          def add_instrumentation(klass)
            klass.plugins << Plugin
          end
        end
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
ddtrace-0.16.1 lib/ddtrace/contrib/delayed_job/patcher.rb
ddtrace-0.15.0.internaltracinfeature1 lib/ddtrace/contrib/delayed_job/patcher.rb
ddtrace-0.16.0 lib/ddtrace/contrib/delayed_job/patcher.rb
ddtrace-0.14.2.disableprotocolversion4 lib/ddtrace/contrib/delayed_job/patcher.rb
ddtrace-0.15.0 lib/ddtrace/contrib/delayed_job/patcher.rb
ddtrace-0.14.2.withoutpriorityparsing1 lib/ddtrace/contrib/delayed_job/patcher.rb
ddtrace-0.14.2 lib/ddtrace/contrib/delayed_job/patcher.rb
ddtrace-0.14.1 lib/ddtrace/contrib/delayed_job/patcher.rb
ddtrace-0.15.0.beta1 lib/ddtrace/contrib/delayed_job/patcher.rb
ddtrace-0.14.0 lib/ddtrace/contrib/delayed_job/patcher.rb
ddtrace-0.14.0.rc1 lib/ddtrace/contrib/delayed_job/patcher.rb
ddtrace-0.14.0.beta2 lib/ddtrace/contrib/delayed_job/patcher.rb
ddtrace-0.14.0.beta1 lib/ddtrace/contrib/delayed_job/patcher.rb