Sha256: 9dba17c23c9c2c15bcd82c8fd2ca03fc30185e4149d3fea215de483b08331d2c

Contents?: true

Size: 1.78 KB

Versions: 1

Compression:

Stored size: 1.78 KB

Contents

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

        option :enabled, default: true
        option :auto_instrument, default: false
        option :auto_instrument_redis, default: false
        option :auto_instrument_grape, default: false
        option :default_service, default: 'rails-app'
        option :default_controller_service, default: 'rails-controller'
        option :default_cache_service, default: 'rails-cache'
        option :default_grape_service, default: 'grape'
        option :default_database_service
        option :distributed_tracing_enabled, default: false
        option :priority_sampling, default: false
        option :template_base_path, default: 'views/'
        option :tracer, default: Datadog.tracer
        option :debug, default: false
        option :trace_agent_hostname, default: Datadog::Writer::HOSTNAME
        option :trace_agent_port, default: Datadog::Writer::PORT
        option :env, default: nil
        option :tags, default: {}
        option :sidekiq_service, default: 'sidekiq'

        @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

1 entries across 1 versions & 1 rubygems

Version Path
ddtrace-0.10.0 lib/ddtrace/contrib/rails/patcher.rb