Sha256: defa6d435299eb9ca88c422b4fd6a822eda46858b04194799e120773d87b5e90

Contents?: true

Size: 1.2 KB

Versions: 30

Compression:

Stored size: 1.2 KB

Contents

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

module Datadog
  module Contrib
    module SuckerPunch
      # Patcher enables patching of 'sucker_punch' module.
      module Patcher
        include Contrib::Patcher

        module_function

        def patched?
          done?(:sucker_punch)
        end

        def patch
          do_once(:sucker_punch) do
            begin
              require 'ddtrace/contrib/sucker_punch/exception_handler'
              require 'ddtrace/contrib/sucker_punch/instrumentation'

              add_pin!
              ExceptionHandler.patch!
              Instrumentation.patch!
            rescue StandardError => e
              Datadog::Tracer.log.error("Unable to apply SuckerPunch 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(::SuckerPunch)
        end

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

Version data entries

30 entries across 30 versions & 2 rubygems

Version Path
ls-trace-0.1.2 lib/ddtrace/contrib/sucker_punch/patcher.rb
ddtrace-0.29.1 lib/ddtrace/contrib/sucker_punch/patcher.rb
ddtrace-0.26.1 lib/ddtrace/contrib/sucker_punch/patcher.rb
ls-trace-0.1.1 lib/ddtrace/contrib/sucker_punch/patcher.rb
ddtrace-0.29.0 lib/ddtrace/contrib/sucker_punch/patcher.rb
ddtrace-0.28.0 lib/ddtrace/contrib/sucker_punch/patcher.rb
ddtrace-0.27.0 lib/ddtrace/contrib/sucker_punch/patcher.rb
ddtrace-0.26.0 lib/ddtrace/contrib/sucker_punch/patcher.rb
ddtrace-0.25.1 lib/ddtrace/contrib/sucker_punch/patcher.rb
ddtrace-0.25.0 lib/ddtrace/contrib/sucker_punch/patcher.rb
ddtrace-0.24.0 lib/ddtrace/contrib/sucker_punch/patcher.rb
ddtrace-0.23.3 lib/ddtrace/contrib/sucker_punch/patcher.rb
ddtrace-0.23.2 lib/ddtrace/contrib/sucker_punch/patcher.rb
ddtrace-0.23.1 lib/ddtrace/contrib/sucker_punch/patcher.rb
ddtrace-0.23.0 lib/ddtrace/contrib/sucker_punch/patcher.rb
ddtrace-0.22.0 lib/ddtrace/contrib/sucker_punch/patcher.rb
ddtrace-0.21.2 lib/ddtrace/contrib/sucker_punch/patcher.rb
ddtrace-0.21.1 lib/ddtrace/contrib/sucker_punch/patcher.rb
ddtrace-0.21.0 lib/ddtrace/contrib/sucker_punch/patcher.rb
ddtrace-0.20.0 lib/ddtrace/contrib/sucker_punch/patcher.rb