Sha256: 9e4f69870a2afb9e1f2b93f5e685ac11e41c386384439dedfb29f437bc0af007

Contents?: true

Size: 841 Bytes

Versions: 16

Compression:

Stored size: 841 Bytes

Contents

require 'ddtrace/contrib/mysql2/client'

module Datadog
  module Contrib
    module Mysql2
      # Mysql2 patcher
      module Patcher
        include Base

        register_as :mysql2
        option :service_name, default: 'mysql2'
        option :tracer, default: Datadog.tracer

        @patched = false

        module_function

        def patch
          return @patched if patched? || !compatible?

          patch_mysql2_client

          @patched = true
        rescue StandardError => e
          Tracer.log.error("Unable to apply mysql2 integration: #{e}")
          @patched
        end

        def patched?
          @patched
        end

        def compatible?
          defined?(::Mysql2)
        end

        def patch_mysql2_client
          ::Mysql2::Client.send(:include, Client)
        end
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

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