338 lines
11 KiB
Plaintext
338 lines
11 KiB
Plaintext
[[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`, `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 (see <<fs-info,FS information>>)
|
|
|
|
`http`::
|
|
HTTP connection information
|
|
|
|
`jvm`::
|
|
JVM stats, memory pool information, garbage collection, buffer
|
|
pools, number of loaded/unloaded classes
|
|
|
|
`os`::
|
|
Operating system stats, load average, mem, swap
|
|
(see <<os-stats,OS statistics>>)
|
|
|
|
`process`::
|
|
Process statistics, memory consumption, cpu usage, open
|
|
file descriptors (see <<process-stats,Process statistics>>)
|
|
|
|
`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
|
|
|
|
`discovery`::
|
|
Statistics about the discovery
|
|
|
|
`ingest`::
|
|
Statistics about ingest preprocessing
|
|
|
|
[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]
|
|
[[fs-info]]
|
|
==== FS information
|
|
|
|
The `fs` flag can be set to retrieve
|
|
information that concern the file system:
|
|
|
|
`fs.timestamp`::
|
|
Last time the file stores statistics have been refreshed
|
|
|
|
`fs.total.total_in_bytes`::
|
|
Total size (in bytes) of all file stores
|
|
|
|
`fs.total.free_in_bytes`::
|
|
Total number of unallocated bytes in all file stores
|
|
|
|
`fs.total.available_in_bytes`::
|
|
Total number of bytes available to this Java virtual machine on all file stores
|
|
|
|
`fs.data`::
|
|
List of all file stores
|
|
|
|
`fs.data.path`::
|
|
Path to the file store
|
|
|
|
`fs.data.mount`::
|
|
Mount point of the file store (ex: /dev/sda2)
|
|
|
|
`fs.data.type`::
|
|
Type of the file store (ex: ext4)
|
|
|
|
`fs.data.total_in_bytes`::
|
|
Total size (in bytes) of the file store
|
|
|
|
`fs.data.free_in_bytes`::
|
|
Total number of unallocated bytes in the file store
|
|
|
|
`fs.data.available_in_bytes`::
|
|
Total number of bytes available to this Java virtual machine on this file store
|
|
|
|
`fs.data.spins` (Linux only)::
|
|
Indicates if the file store is backed by spinning storage.
|
|
`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)::
|
|
Array of disk metrics for each device that is backing an
|
|
Elasticsearch data path. These disk metrics are probed periodically
|
|
and averages between the last probe and the current probe are
|
|
computed.
|
|
|
|
`fs.io_stats.devices.device_name` (Linux only)::
|
|
The Linux device name.
|
|
|
|
`fs.io_stats.devices.operations` (Linux only)::
|
|
The total number of read and write operations for the device
|
|
completed since starting Elasticsearch.
|
|
|
|
`fs.io_stats.devices.read_operations` (Linux only)::
|
|
The total number of read operations for the device completed since
|
|
starting Elasticsearch.
|
|
|
|
`fs.io_stats.devices.write_operations` (Linux only)::
|
|
The total number of write operations for the device completed since
|
|
starting Elasticsearch.
|
|
|
|
`fs.io_stats.devices.read_kilobytes` (Linux only)::
|
|
The total number of kilobytes read for the device since starting
|
|
Elasticsearch.
|
|
|
|
`fs.io_stats.devices.write_kilobytes` (Linux only)::
|
|
The total number of kilobytes written for the device since
|
|
starting Elasticsearch.
|
|
|
|
`fs.io_stats.operations` (Linux only)::
|
|
The total number of read and write operations across all devices
|
|
used by Elasticsearch completed since starting Elasticsearch.
|
|
|
|
`fs.io_stats.read_operations` (Linux only)::
|
|
The total number of read operations for across all devices used by
|
|
Elasticsearch completed since starting Elasticsearch.
|
|
|
|
`fs.io_stats.write_operations` (Linux only)::
|
|
The total number of write operations across all devices used by
|
|
Elasticsearch completed since starting Elasticsearch.
|
|
|
|
`fs.io_stats.read_kilobytes` (Linux only)::
|
|
The total number of kilobytes read across all devices used by
|
|
Elasticsearch since starting Elasticsearch.
|
|
|
|
`fs.io_stats.write_kilobytes` (Linux only)::
|
|
The total number of kilobytes written across all devices used by
|
|
Elasticsearch since starting Elasticsearch.
|
|
|
|
[float]
|
|
[[os-stats]]
|
|
==== Operating System statistics
|
|
|
|
The `os` flag can be set to retrieve statistics that concern
|
|
the operating system:
|
|
|
|
`os.timestamp`::
|
|
Last time the operating system statistics have been refreshed
|
|
|
|
`os.cpu.percent`::
|
|
Recent CPU usage for the whole system, or -1 if not supported
|
|
|
|
`os.cpu.load_average.1m`::
|
|
One-minute load average on the system (field is not present if
|
|
one-minute load average is not available)
|
|
`os.cpu.load_average.5m`::
|
|
Five-minute load average on the system (field is not present if
|
|
five-minute load average is not available)
|
|
`os.cpu.load_average.15m`::
|
|
Fifteen-minute load average on the system (field is not present if
|
|
fifteen-minute load average is not available)
|
|
|
|
`os.mem.total_in_bytes`::
|
|
Total amount of physical memory in bytes
|
|
|
|
`os.mem.free_in_bytes`::
|
|
Amount of free physical memory in bytes
|
|
|
|
`os.mem.free_percent`::
|
|
Percentage of free memory
|
|
|
|
`os.mem.used_in_bytes`::
|
|
Amount of used physical memory in bytes
|
|
|
|
`os.mem.used_percent`::
|
|
Percentage of used memory
|
|
|
|
`os.swap.total_in_bytes`::
|
|
Total amount of swap space in bytes
|
|
|
|
`os.swap.free_in_bytes`::
|
|
Amount of free swap space in bytes
|
|
|
|
`os.swap.used_in_bytes`::
|
|
Amount of used swap space in bytes
|
|
|
|
`os.cgroup.cpuacct.control_group` (Linux only)::
|
|
The `cpuacct` control group to which the Elasticsearch process
|
|
belongs
|
|
|
|
`os.cgroup.cpuacct.usage` (Linux only)::
|
|
The total CPU time (in nanoseconds) consumed by all tasks in the
|
|
same cgroup as the Elasticsearch process
|
|
|
|
`os.cgroup.cpu.control_group` (Linux only)::
|
|
The `cpu` control group to which the Elasticsearch process belongs
|
|
|
|
`os.cgroup.cpu.cfs_period_micros` (Linux only)::
|
|
The period of time (in microseconds) for how regularly all tasks in
|
|
the same cgroup as the Elasticsearch process should have their
|
|
access to CPU resources reallocated.
|
|
|
|
`os.cgroup.cpu.cfs_quota_micros` (Linux only)::
|
|
The total amount of time (in microseconds) for which all tasks in
|
|
the same cgroup as the Elasticsearch process can run during one
|
|
period `os.cgroup.cpu.cfs_period_micros`
|
|
|
|
`os.cgroup.cpu.stat.number_of_elapsed_periods` (Linux only)::
|
|
The number of reporting periods (as specified by
|
|
`os.cgroup.cpu.cfs_period_micros`) that have elapsed
|
|
|
|
`os.cgroup.cpu.stat.number_of_times_throttled` (Linux only)::
|
|
The number of times all tasks in the same cgroup as the
|
|
Elasticsearch process have been throttled.
|
|
|
|
`os.cgroup.cpu.stat.time_throttled_nanos` (Linux only)::
|
|
The total amount of time (in nanoseconds) for which all tasks in
|
|
the same cgroup as the Elasticsearch process have been throttled.
|
|
|
|
NOTE: For the cgroup stats to be visible, cgroups must be compiled into
|
|
the kernal, the `cpu` and `cpuacct` cgroup subsystems must be
|
|
configured and stats must be readable from `/sys/fs/cgroup/cpu`
|
|
and `/sys/fs/cgroup/cpuacct`.
|
|
|
|
[float]
|
|
[[process-stats]]
|
|
==== Process statistics
|
|
|
|
The `process` flag can be set to retrieve statistics that concern
|
|
the current running process:
|
|
|
|
`process.timestamp`::
|
|
Last time the process statistics have been refreshed
|
|
|
|
`process.open_file_descriptors`::
|
|
Number of opened file descriptors associated with the current process, or -1 if not supported
|
|
|
|
`process.max_file_descriptors`::
|
|
Maximum number of file descriptors allowed on the system, or -1 if not supported
|
|
|
|
`process.cpu.percent`::
|
|
CPU usage in percent, or -1 if not known at the time the stats are computed
|
|
|
|
`process.cpu.total_in_millis`::
|
|
CPU time (in milliseconds) used by the process on which the Java virtual machine is running, or -1 if not supported
|
|
|
|
`process.mem.total_virtual_in_bytes`::
|
|
Size in bytes of virtual memory that is guaranteed to be available to the running process
|
|
|
|
|
|
[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'
|
|
--------------------------------------------------
|
|
|
|
[float]
|
|
[[ingest-stats]]
|
|
=== Ingest statistics
|
|
|
|
The `ingest` flag can be set to retrieve statistics that concern ingest:
|
|
|
|
`ingest.total.count`::
|
|
The total number of document ingested during the lifetime of this node
|
|
|
|
`ingest.total.time_in_millis`::
|
|
The total time spent on ingest preprocessing documents during the lifetime of this node
|
|
|
|
`ingest.total.current`::
|
|
The total number of documents currently being ingested.
|
|
|
|
`ingest.total.failed`::
|
|
The total number ingest preprocessing operations failed during the lifetime of this node
|
|
|
|
On top of these overall ingest statistics, these statistics are also provided on a per pipeline basis. |