The cluster nodes stats API allows to retrieve one or more (or all) of the cluster nodes statistics.
GET /_nodes/stats GET /_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
here.
By default, all stats are returned. You can limit this by combining any
of indices, os, process, jvm, transport, http,
fs, breaker and thread_pool. For example:
|
|
Indices stats about size, document count, indexing and deletion times, search times, field cache size, merges and flushes |
|
|
File system information, data path, free disk space, read/write stats (see FS information) |
|
|
HTTP connection information |
|
|
JVM stats, memory pool information, garbage collection, buffer pools, number of loaded/unloaded classes |
|
|
Operating system stats, load average, mem, swap (see OS statistics) |
|
|
Process statistics, memory consumption, cpu usage, open file descriptors (see Process statistics) |
|
|
Statistics about each thread pool, including current size, queue and rejected tasks |
|
|
Transport statistics about sent and received bytes in cluster communication |
|
|
Statistics about the field data circuit breaker |
|
|
Statistics about the discovery |
|
|
Statistics about ingest preprocessing |
|
|
Statistics about adaptive replica selection. See adaptive selection statistics. |
# return just indices GET /_nodes/stats/indices # return just os and process GET /_nodes/stats/os,process # return just process for node with IP address 10.0.0.1 GET /_nodes/10.0.0.1/stats/process
All stats can be explicitly requested via /_nodes/stats/_all or /_nodes/stats?metric=_all.
The fs flag can be set to retrieve
information that concern the file system:
fs.timestamp
fs.total.total_in_bytes
fs.total.free_in_bytes
fs.total.available_in_bytes
fs.total.free_in_bytes.
This is the actual amount of free disk space the Elasticsearch node can utilise.
fs.data
fs.data.path
fs.data.mount
fs.data.type
fs.data.total_in_bytes
fs.data.free_in_bytes
fs.data.available_in_bytes
fs.data.spins (Linux only)
null means we could not determine it, true means the device possibly spins
and false means it does not (ex: solid-state disks).
fs.io_stats.devices (Linux only)
fs.io_stats.devices.device_name (Linux only)
fs.io_stats.devices.operations (Linux only)
fs.io_stats.devices.read_operations (Linux only)
fs.io_stats.devices.write_operations (Linux only)
fs.io_stats.devices.read_kilobytes (Linux only)
fs.io_stats.devices.write_kilobytes (Linux only)
fs.io_stats.operations (Linux only)
fs.io_stats.read_operations (Linux only)
fs.io_stats.write_operations (Linux only)
fs.io_stats.read_kilobytes (Linux only)
fs.io_stats.write_kilobytes (Linux only)
The os flag can be set to retrieve statistics that concern
the operating system:
os.timestamp
os.cpu.percent
os.cpu.load_average.1m
os.cpu.load_average.5m
os.cpu.load_average.15m
os.mem.total_in_bytes
os.mem.free_in_bytes
os.mem.free_percent
os.mem.used_in_bytes
os.mem.used_percent
os.swap.total_in_bytes
os.swap.free_in_bytes
os.swap.used_in_bytes
os.cgroup.cpuacct.control_group (Linux only)
cpuacct control group to which the Elasticsearch process
belongs
os.cgroup.cpuacct.usage_nanos (Linux only)
os.cgroup.cpu.control_group (Linux only)
cpu control group to which the Elasticsearch process belongs
os.cgroup.cpu.cfs_period_micros (Linux only)
os.cgroup.cpu.cfs_quota_micros (Linux only)
os.cgroup.cpu.cfs_period_micros
os.cgroup.cpu.stat.number_of_elapsed_periods (Linux only)
os.cgroup.cpu.cfs_period_micros) that have elapsed
os.cgroup.cpu.stat.number_of_times_throttled (Linux only)
os.cgroup.cpu.stat.time_throttled_nanos (Linux only)
os.cgroup.memory.control_group (Linux only)
memory control group to which the Elasticsearch process
belongs
os.cgroup.memory.limit_in_bytes (Linux only)
long, so is returned as
a string so that the value returned can exactly match what the
underlying operating system interface returns. Any value that is
too large to parse into a long almost certainly means no limit
has been set for the cgroup.
os.cgroup.memory.usage_in_bytes (Linux only)
os.cgroup.memory.limit_in_bytes.
For the cgroup stats to be visible, cgroups must be compiled into
the kernel, the cpu and cpuacct cgroup subsystems must be
configured and stats must be readable from /sys/fs/cgroup/cpu
and /sys/fs/cgroup/cpuacct.
The process flag can be set to retrieve statistics that concern
the current running process:
process.timestamp
process.open_file_descriptors
process.max_file_descriptors
process.cpu.percent
process.cpu.total_in_millis
process.mem.total_virtual_in_bytes
You can get information about indices stats on node, indices, or shards level.
# Fielddata summarised by node GET /_nodes/stats/indices/fielddata?fields=field1,field2 # Fielddata summarised by node and index GET /_nodes/stats/indices/fielddata?level=indices&fields=field1,field2 # Fielddata summarised by node, index, and shard GET /_nodes/stats/indices/fielddata?level=shards&fields=field1,field2 # You can use wildcards for field names GET /_nodes/stats/indices/fielddata?fields=field*
Supported metrics are:
completion
docs
fielddata
flush
get
indexing
merge
query_cache
recovery
refresh
request_cache
search
segments
store
translog
warmer
You can get statistics about search groups for searches executed on this node.
# All groups with all stats GET /_nodes/stats?groups=_all # Some groups from just the indices stats GET /_nodes/stats/indices?groups=foo,bar
The ingest flag can be set to retrieve statistics that concern ingest:
ingest.total.count
ingest.total.time_in_millis
ingest.total.current
ingest.total.failed
On top of these overall ingest statistics, these statistics are also provided on a per pipeline basis.
The adaptive_selection flag can be set to retrieve statistics that concern
adaptive replica selection. These statistics are
keyed by node. For each node:
adaptive_selection.outgoing_searches
avg_queue_size
avg_service_time_ns
avg_response_time_ns
rank