[[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 <>. 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 <>) `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 <>) `process`:: Process statistics, memory consumption, cpu usage, open file descriptors (see <>) `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). [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 [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.