Sha256: c5ba76a61f64a9078e6cc9603d2ce9260e1a1c196f2b04f5484eb547ddfe5999

Contents?: true

Size: 1.43 KB

Versions: 18

Compression:

Stored size: 1.43 KB

Contents

require 'ddtrace/contrib/rails/utils'

module Datadog
  module Contrib
    module Rails
      # Patcher
      module Patcher
        include Base
        register_as :rails, auto_patch: true

        option :service_name
        option :controller_service
        option :cache_service
        option :database_service, depends_on: [:service_name] do |value|
          value.tap do
            # Update ActiveRecord service name too
            Datadog.configuration[:active_record][:service_name] = value
          end
        end
        option :middleware_names, default: false
        option :distributed_tracing, default: false
        option :template_base_path, default: 'views/'
        option :exception_controller, default: nil
        option :tracer, default: Datadog.tracer

        @patched = false

        class << self
          def patch
            return @patched if patched? || !compatible?
            require_relative 'framework'
            @patched = true
          rescue => e
            Datadog::Tracer.log.error("Unable to apply Rails integration: #{e}")
            @patched
          end

          def patched?
            @patched
          end

          def compatible?
            return if ENV['DISABLE_DATADOG_RAILS']

            defined?(::Rails::VERSION) && ::Rails::VERSION::MAJOR.to_i >= 3
          end
        end
      end
    end
  end
end

require 'ddtrace/contrib/rails/railtie' if Datadog.registry[:rails].compatible?

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
ddtrace-0.15.0.internaltracinfeature1 lib/ddtrace/contrib/rails/patcher.rb
ddtrace-0.14.2.disableprotocolversion4 lib/ddtrace/contrib/rails/patcher.rb
ddtrace-0.15.0 lib/ddtrace/contrib/rails/patcher.rb
ddtrace-0.14.2.withoutpriorityparsing1 lib/ddtrace/contrib/rails/patcher.rb
ddtrace-0.14.2 lib/ddtrace/contrib/rails/patcher.rb
ddtrace-0.14.1 lib/ddtrace/contrib/rails/patcher.rb
ddtrace-0.15.0.beta1 lib/ddtrace/contrib/rails/patcher.rb
ddtrace-0.14.0 lib/ddtrace/contrib/rails/patcher.rb
ddtrace-0.14.0.rc1 lib/ddtrace/contrib/rails/patcher.rb
ddtrace-0.13.2 lib/ddtrace/contrib/rails/patcher.rb
ddtrace-0.14.0.beta2 lib/ddtrace/contrib/rails/patcher.rb
ddtrace-0.14.0.beta1 lib/ddtrace/contrib/rails/patcher.rb
ddtrace-0.13.1 lib/ddtrace/contrib/rails/patcher.rb
ddtrace-0.13.0 lib/ddtrace/contrib/rails/patcher.rb
ddtrace-0.12.1 lib/ddtrace/contrib/rails/patcher.rb
ddtrace-0.13.0.beta1 lib/ddtrace/contrib/rails/patcher.rb
ddtrace-0.12.0 lib/ddtrace/contrib/rails/patcher.rb
ddtrace-0.12.0.rc1 lib/ddtrace/contrib/rails/patcher.rb