module NewRelic::Agent::Instrumentation::Elasticsearch::Chain

Public Class Methods

instrument!() click to toggle source
# File lib/new_relic/agent/instrumentation/elasticsearch/chain.rb, line 7
def self.instrument!
  to_instrument = if ::Gem::Version.create(::Elasticsearch::VERSION) <
      ::Gem::Version.create('8.0.0')
    ::Elasticsearch::Transport::Client
  else
    ::Elastic::Transport::Client
  end

  to_instrument.class_eval do
    include NewRelic::Agent::Instrumentation::Elasticsearch

    alias_method(:perform_request_without_tracing, :perform_request)
    alias_method(:perform_request, :perform_request_with_tracing)

    def perform_request(*args)
      perform_request_with_tracing(*args) do
        perform_request_without_tracing(*args)
      end
    end
  end
end

Public Instance Methods

perform_request(*args) click to toggle source
# File lib/new_relic/agent/instrumentation/elasticsearch/chain.rb, line 21
def perform_request(*args)
  perform_request_with_tracing(*args) do
    perform_request_without_tracing(*args)
  end
end