Sha256: 15a3ca4f540ec974733f95df7eaabceada37ebfd106ffc2313b617420ca26866

Contents?: true

Size: 1.33 KB

Versions: 10

Compression:

Stored size: 1.33 KB

Contents

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

module Datadog
  module Contrib
    module Faraday
      # Patcher enables patching of 'faraday' module.
      module Patcher
        include Contrib::Patcher

        module_function

        def patched?
          done?(:faraday)
        end

        def patch
          do_once(:faraday) do
            begin
              require 'ddtrace/contrib/faraday/middleware'

              add_pin
              add_middleware
            rescue StandardError => e
              Datadog::Tracer.log.error("Unable to apply Faraday integration: #{e}")
            end
          end
        end

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

        def add_middleware
          ::Faraday::Middleware.register_middleware(ddtrace: Middleware)
        end

        def register_service(name)
          get_option(:tracer).set_service_info(
            name,
            Ext::APP,
            Datadog::Ext::AppTypes::WEB
          )
        end

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

Version data entries

10 entries across 10 versions & 1 rubygems

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