in lib/elastic/transport/client.rb [123:165]
def initialize(arguments = {}, &block)
@arguments = arguments.transform_keys(&:to_sym)
@arguments[:logger] ||= @arguments[:log] ? DEFAULT_LOGGER.call : nil
@arguments[:tracer] ||= @arguments[:trace] ? DEFAULT_TRACER.call : nil
@arguments[:reload_connections] ||= false
@arguments[:retry_on_failure] ||= false
@arguments[:delay_on_retry] ||= 0
@arguments[:reload_on_failure] ||= false
@arguments[:randomize_hosts] ||= false
@arguments[:transport_options] ||= {}
@arguments[:http] ||= {}
@arguments[:enable_meta_header] = arguments.fetch(:enable_meta_header, true)
@hosts ||= extract_hosts
@send_get_body_as = @arguments[:send_get_body_as] || 'GET'
@ca_fingerprint = @arguments.delete(:ca_fingerprint)
if @arguments[:request_timeout]
@arguments[:transport_options][:request] = { timeout: @arguments[:request_timeout] }
end
if @arguments[:transport]
@transport = @arguments[:transport]
else
@transport_class = @arguments[:transport_class] || DEFAULT_TRANSPORT_CLASS
@transport = if @transport_class == Transport::HTTP::Faraday
@arguments[:adapter] ||= auto_detect_adapter
set_meta_header
@transport_class.new(hosts: @hosts, options: @arguments) do |faraday|
faraday.adapter(@arguments[:adapter])
block&.call faraday
end
else
set_meta_header
@transport_class.new(hosts: @hosts, options: @arguments)
end
end
if defined?(::OpenTelemetry) && ENV[OpenTelemetry::ENV_VARIABLE_ENABLED] != 'false'
@otel = OpenTelemetry.new(@arguments)
end
end