Sha256: 1a862255cece3736008f5fca0f4e546bac4ff725a9b471dca45a5d1ff61126aa

Contents?: true

Size: 872 Bytes

Versions: 6

Compression:

Stored size: 872 Bytes

Contents

# frozen_string_literal: true

require_relative '../../../core/utils/only_once'
require_relative '../patcher'
require_relative 'ext'
require_relative 'instrumentation'

module Datadog
  module Tracing
    module Contrib
      module Presto
        # Patcher enables patching of 'presto-client' module.
        module Patcher
          include Contrib::Patcher

          PATCH_ONLY_ONCE = Core::Utils::OnlyOnce.new

          module_function

          def patched?
            PATCH_ONLY_ONCE.ran?
          end

          def patch
            PATCH_ONLY_ONCE.run do
              begin
                ::Presto::Client::Client.include(Instrumentation::Client)
              rescue StandardError => e
                Datadog.logger.error("Unable to apply Presto integration: #{e}")
              end
            end
          end
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
datadog-2.3.0 lib/datadog/tracing/contrib/presto/patcher.rb
datadog-2.2.0 lib/datadog/tracing/contrib/presto/patcher.rb
datadog-2.1.0 lib/datadog/tracing/contrib/presto/patcher.rb
datadog-2.0.0 lib/datadog/tracing/contrib/presto/patcher.rb
datadog-2.0.0.beta2 lib/datadog/tracing/contrib/presto/patcher.rb
datadog-2.0.0.beta1 lib/datadog/tracing/contrib/presto/patcher.rb