# This file is distributed under New Relic's license terms. # See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details. # frozen_string_literal: true require_relative 'elasticsearch/instrumentation' require_relative 'elasticsearch/chain' require_relative 'elasticsearch/prepend' DependencyDetection.defer do named :elasticsearch depends_on do defined?(::Elasticsearch) end executes do ::NewRelic::Agent.logger.info('Installing Elasticsearch instrumentation') to_instrument = if ::Gem::Version.create(::Elasticsearch::VERSION) < ::Gem::Version.create("8.0.0") ::Elasticsearch::Transport::Client else ::Elastic::Transport::Client end if use_prepend? prepend_instrument to_instrument, NewRelic::Agent::Instrumentation::Elasticsearch::Prepend else chain_instrument NewRelic::Agent::Instrumentation::Elasticsearch end end end