[[cluster-nodes-stats]]
== Nodes Stats

[float]
=== Nodes statistics

The cluster nodes stats API allows to retrieve one or more (or all) of
the cluster nodes statistics.

[source,js]
--------------------------------------------------
curl -XGET 'http://localhost:9200/_nodes/stats'
curl -XGET 'http://localhost:9200/_nodes/nodeId1,nodeId2/stats'
--------------------------------------------------

The first command retrieves stats of all the nodes in the cluster. The
second command selectively retrieves nodes stats of only `nodeId1` and
`nodeId2`. All the nodes selective options are explained
<<cluster-nodes,here>>.

By default, all stats are returned. You can limit this by combining any
of `indices`, `os`, `process`, `jvm`, `network`, `transport`, `http`,
`fs`, `breaker` and `thread_pool`. For example:

[horizontal]
`indices`:: 
	Indices stats about size, document count, indexing and
	deletion times, search times, field cache size, merges and flushes

`fs`:: 
	File system information, data path, free disk space, read/write
	stats

`http`:: 
	HTTP connection information

`jvm`:: 
	JVM stats, memory pool information, garbage collection, buffer
	pools

`network`:: 
	TCP information

`os`:: 
	Operating system stats, load average, cpu, mem, swap

`process`:: 
	Process statistics, memory consumption, cpu usage, open
	file descriptors

`thread_pool`:: 
	Statistics about each thread pool, including current
	size, queue and rejected tasks

`transport`:: 
	Transport statistics about sent and received bytes in
	cluster communication

`breaker`::
	Statistics about the field data circuit breaker

[source,js]
--------------------------------------------------
# return indices and os
curl -XGET 'http://localhost:9200/_nodes/stats/os'
# return just os and process
curl -XGET 'http://localhost:9200/_nodes/stats/os,process'
# specific type endpoint
curl -XGET 'http://localhost:9200/_nodes/stats/process'
curl -XGET 'http://localhost:9200/_nodes/10.0.0.1/stats/process'
--------------------------------------------------

The `all` flag can be set to return all the stats.

[float]
[[field-data]]
=== Field data statistics

You can get information about field data memory usage on node
level or on index level.

[source,js]
--------------------------------------------------
# Node Stats
curl -XGET 'http://localhost:9200/_nodes/stats/indices/?fields=field1,field2&pretty'

# Indices Stat
curl -XGET 'http://localhost:9200/_stats/fielddata/?fields=field1,field2&pretty'

# You can use wildcards for field names
curl -XGET 'http://localhost:9200/_stats/fielddata/?fields=field*&pretty'
curl -XGET 'http://localhost:9200/_nodes/stats/indices/?fields=field*&pretty'
--------------------------------------------------

[float]
[[search-groups]]
=== Search groups

You can get statistics about search groups for searches executed
on this node.

[source,js]
--------------------------------------------------
# All groups with all stats
curl -XGET 'http://localhost:9200/_nodes/stats?pretty&groups=_all'

# Some groups from just the indices stats
curl -XGET 'http://localhost:9200/_nodes/stats/indices?pretty&groups=foo,bar'
--------------------------------------------------
