in lib/elastic/transport/client.rb [168:194]
def perform_request(method, path, params = {}, body = nil, headers = nil, opts = {})
method = @send_get_body_as if method == 'GET' && body
validate_ca_fingerprints if @ca_fingerprint
if @otel
span_name = opts[:endpoint] || method
@otel.tracer.in_span(span_name) do |span|
span['http.request.method'] = method
span['db.system'] = 'elasticsearch'
opts[:defined_params]&.each do |k, v|
if v.respond_to?(:join)
span["db.elasticsearch.path_parts.#{k}"] = v.join(',')
else
span["db.elasticsearch.path_parts.#{k}"] = v
end
end
if body_as_json = @otel.process_body(body, opts[:endpoint])
span['db.statement'] = body_as_json
end
span['db.operation'] = opts[:endpoint] if opts[:endpoint]
transport.perform_request(method, path, params || {}, body, headers)
end
else
transport.perform_request(method, path, params || {}, body, headers)
end
end