module Elasticsearch module API module Nodes module Actions # Returns statistical information about nodes in the cluster. # # @example Return statistics about JVM # # client.nodes.stats metric: 'jvm' # # @example Return statistics about field data structures for all fields # # client.nodes.stats metric: 'indices', index_metric: 'fielddata', fields: '*', human: true # # @option arguments [List] :metric Limit the information returned to the specified metrics # (options: _all, breaker, fs, http, indices, jvm, network, # os, process, thread_pool, transport) # @option arguments [List] :index_metric Limit the information returned for the `indices` metric # to the specified index metrics. Used only when # `indices` or `all` metric is specified. # (options: _all, completion, docs, fielddata, filter_cache, flush, get, # id_cache, indexing, merge, percolate, refresh, search, segments, store, # warmer) # @option arguments [List] :node_id A comma-separated list of node IDs or names to limit # the returned information; use `_local` to return information # from the node you're connecting to, leave empty to get information # from all nodes # @option arguments [List] :completion_fields A comma-separated list of fields for `fielddata` and `suggest` # index metrics (supports wildcards) # @option arguments [List] :fielddata_fields A comma-separated list of fields for `fielddata` index metric # (supports wildcards) # @option arguments [List] :fields A comma-separated list of fields for `fielddata` and `completion` index # metrics (supports wildcards) # @option arguments [Boolean] :groups A comma-separated list of search groups for `search` index metric # @option arguments [Boolean] :human Whether to return time and byte values in human-readable format # @option arguments [String] :level Specify the level for aggregating indices stats # (options: node, indices, shards) # @option arguments [List] :types A comma-separated list of document types for the `indexing` index metric # @option arguments [Time] :timeout Explicit operation timeout # # @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/cluster-nodes-stats.html # def stats(arguments={}) arguments = arguments.clone valid_params = [ :metric, :index_metric, :node_id, :completion_fields, :fielddata_fields, :fields, :groups, :human, :level, :types, :timeout ] unsupported_params = [ :timeout ] Utils.__report_unsupported_parameters(arguments.keys, unsupported_params) method = HTTP_GET path = Utils.__pathify '_nodes', Utils.__listify(arguments[:node_id]), 'stats', Utils.__listify(arguments.delete(:metric)), Utils.__listify(arguments.delete(:index_metric)) params = Utils.__validate_and_extract_params arguments, valid_params [:completion_fields, :fielddata_fields, :fields, :groups, :types].each do |key| params[key] = Utils.__listify(params[key]) if params[key] end body = nil perform_request(method, path, params, body).body end end end end end