123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451 |
- [[cluster-nodes-stats]]
- === Nodes Stats
- Returns cluster nodes statistics.
- [[cluster-nodes-stats-api-request]]
- ==== {api-request-title}
- `GET /_nodes/stats` +
- `GET /_nodes/<node_id>/stats` +
- `GET/_nodes/stats/<metric>` +
- `GET/_nodes/<node_id>/stats/<metric>` +
- `GET /_nodes/stats/<metric>/<index_metric>` +
- `GET /_nodes/<node_id>/stats/<metric>/<index_metric>`
- [[cluster-nodes-stats-api-desc]]
- ==== {api-description-title}
- You can use the cluster nodes stats API to retrieve statistics for nodes in a cluster.
- All the nodes selective options are explained <<cluster-nodes,here>>.
- By default, all stats are returned. You can limit the returned information by
- using metrics.
- [[cluster-nodes-stats-api-path-params]]
- ==== {api-path-parms-title}
- `<metric>`::
- (Optional, string) Limits the information returned to the specific metrics.
- A comma-separated list of the following options:
- +
- --
- `adaptive_selection`::
- Statistics about <<search-adaptive-replica,adaptive replica selection>>.
-
- `breaker`::
- Statistics about the field data circuit breaker.
-
- `discovery`::
- Statistics about the discovery.
-
- `fs`::
- File system information, data path, free disk space, read/write
- stats.
-
- `http`::
- HTTP connection information.
-
- `indices`::
- Indices stats about size, document count, indexing and deletion times,
- search times, field cache size, merges and flushes.
-
- `ingest`::
- Statistics about ingest preprocessing.
-
- `jvm`::
- JVM stats, memory pool information, garbage collection, buffer
- pools, number of loaded/unloaded classes.
- `os`::
- Operating system stats, load average, 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.
- --
- `<index_metric>`::
- (Optional, string) Limit the information returned for `indices` metric to
- the specific index metrics. It can be used only if `indices` (or `all`)
- metric is specified. Supported metrics are:
- +
- --
- * `completion`
- * `docs`
- * `fielddata`
- * `flush`
- * `get`
- * `indexing`
- * `merge`
- * `query_cache`
- * `recovery`
- * `refresh`
- * `request_cache`
- * `search`
- * `segments`
- * `store`
- * `translog`
- * `warmer`
- --
- include::{docdir}/rest-api/common-parms.asciidoc[tag=node-id]
- [[cluster-nodes-stats-api-query-params]]
- ==== {api-query-parms-title}
- `completion_fields`::
- (Optional, string) A comma-separated list of fields for `fielddata` and
- `suggest` index metric (supports wildcards).
- `fielddata_fields`::
- (Optional, string) A comma-separated list of fields for `fielddata` index
- metric (supports wildcards).
- `fields`::
- (Optional, string) A comma-separated list of fields for `fielddata` and
- `completion` index metric (supports wildcards).
- `groups`::
- (Optional, string) A comma-separated list of search groups for `search`
- index metric.
- `level`::
- (Optional, string) Returns indices stats aggregated at index, node or shard
- level. Supported options: `indices`, `node`, `shards`.
- `types`::
- (Optional, string) A comma-separated list of document types for the
- `indexing` index metric.
- include::{docdir}/rest-api/common-parms.asciidoc[tag=timeoutparms]
- `include_segment_file_sizes`::
- (Optional, boolean) If `true`, the call reports the aggregated disk usage of
- each one of the Lucene index files (only applies if segment stats are
- requested). Defaults to `false`.
- [[cluster-nodes-stats-api-response-body]]
- ==== {api-response-body-title}
- 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. Depending on OS or process level restrictions, this might appear
- less than `fs.total.free_in_bytes`. This is the actual amount of free disk
- space the {es} node can utilise.
- `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.io_stats.devices` (Linux only)::
- Array of disk metrics for each device that is backing an {es} 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 {es}.
- `fs.io_stats.devices.read_operations` (Linux only)::
- The total number of read operations for the device completed since starting
- {es}.
- `fs.io_stats.devices.write_operations` (Linux only)::
- The total number of write operations for the device completed since starting
- {es}.
- `fs.io_stats.devices.read_kilobytes` (Linux only)::
- The total number of kilobytes read for the device since starting {es}.
- `fs.io_stats.devices.write_kilobytes` (Linux only)::
- The total number of kilobytes written for the device since starting {es}.
- `fs.io_stats.operations` (Linux only)::
- The total number of read and write operations across all devices used by
- {es} completed since starting {es}.
- `fs.io_stats.read_operations` (Linux only)::
- The total number of read operations for across all devices used by {es}
- completed since starting {es}.
- `fs.io_stats.write_operations` (Linux only)::
- The total number of write operations across all devices used by {es}
- completed since starting {es}.
- `fs.io_stats.read_kilobytes` (Linux only)::
- The total number of kilobytes read across all devices used by {es} since
- starting {es}.
- `fs.io_stats.write_kilobytes` (Linux only)::
- The total number of kilobytes written across all devices used by {es} since
- starting {es}.
- 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 {es} process belongs.
- `os.cgroup.cpuacct.usage_nanos` (Linux only)::
- The total CPU time (in nanoseconds) consumed by all tasks in the same cgroup
- as the {es} process.
- `os.cgroup.cpu.control_group` (Linux only)::
- The `cpu` control group to which the {es} 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 {es} 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 {es} 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 {es} 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 {es} process have been throttled.
- `os.cgroup.memory.control_group` (Linux only)::
- The `memory` control group to which the {es} process belongs.
- `os.cgroup.memory.limit_in_bytes` (Linux only)::
- The maximum amount of user memory (including file cache) allowed for all
- tasks in the same cgroup as the {es} process. This value can be too big to
- store in a `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)::
- The total current memory usage by processes in the cgroup (in bytes) by all
- tasks in the same cgroup as the {es} process. This value is stored as a
- string for consistency with `os.cgroup.memory.limit_in_bytes`.
- NOTE: 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`::
- 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.
- 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.
- The `adaptive_selection` flag can be set to retrieve statistics that concern
- <<search-adaptive-replica,adaptive replica selection>>. These statistics are
- keyed by node. For each node:
- `adaptive_selection.outgoing_searches`::
- The number of outstanding search requests from the node these stats are for
- to the keyed node.
- `avg_queue_size`::
- The exponentially weighted moving average queue size of search requests on
- the keyed node.
- `avg_service_time_ns`::
- The exponentially weighted moving average service time of search requests on
- the keyed node.
- `avg_response_time_ns`::
- The exponentially weighted moving average response time of search requests
- on the keyed node.
- `rank`::
- The rank of this node; used for shard selection when routing search
- requests.
- [[cluster-nodes-stats-api-example]]
- ==== {api-examples-title}
- [source,js]
- --------------------------------------------------
- # 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
- --------------------------------------------------
- // CONSOLE
- All stats can be explicitly requested via `/_nodes/stats/_all` or
- `/_nodes/stats?metric=_all`.
- You can get information about indices stats on `node`, `indices`, or `shards`
- level.
- [source,js]
- --------------------------------------------------
- # Fielddata summarized by node
- GET /_nodes/stats/indices/fielddata?fields=field1,field2
- # Fielddata summarized by node and index
- GET /_nodes/stats/indices/fielddata?level=indices&fields=field1,field2
- # Fielddata summarized 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*
- --------------------------------------------------
- // CONSOLE
- You can get statistics about search groups for searches executed
- on this node.
- [source,js]
- --------------------------------------------------
- # All groups with all stats
- GET /_nodes/stats?groups=_all
- # Some groups from just the indices stats
- GET /_nodes/stats/indices?groups=foo,bar
- --------------------------------------------------
- // CONSOLE
|