in elasticsearch-api/lib/elasticsearch/api/actions/nodes/stats.rb [55:94]
def stats(arguments = {})
request_opts = { endpoint: arguments[:endpoint] || 'nodes.stats' }
defined_params = [:node_id, :metric, :index_metric].each_with_object({}) do |variable, set_variables|
set_variables[variable] = arguments[variable] if arguments.key?(variable)
end
request_opts[:defined_params] = defined_params unless defined_params.empty?
arguments = arguments.clone
headers = arguments.delete(:headers) || {}
body = nil
_node_id = arguments.delete(:node_id)
_metric = arguments.delete(:metric)
_index_metric = arguments.delete(:index_metric)
method = Elasticsearch::API::HTTP_GET
path = if _node_id && _metric && _index_metric
"_nodes/#{Utils.listify(_node_id)}/stats/#{Utils.listify(_metric)}/#{Utils.listify(_index_metric)}"
elsif _metric && _index_metric
"_nodes/stats/#{Utils.listify(_metric)}/#{Utils.listify(_index_metric)}"
elsif _node_id && _metric
"_nodes/#{Utils.listify(_node_id)}/stats/#{Utils.listify(_metric)}"
elsif _node_id
"_nodes/#{Utils.listify(_node_id)}/stats"
elsif _metric
"_nodes/stats/#{Utils.listify(_metric)}"
else
'_nodes/stats'
end
params = Utils.process_params(arguments)
Elasticsearch::API::Response.new(
perform_request(method, path, params, body, headers, request_opts)
)
end