nodeId | String | A comma-separated list of nodeIds used to filter results. Supports [node filters]({{site.url}}{{site.baseurl}}/api-reference/nodes-apis/index/#node-filters). Defaults to `_all`.
metric | String | A comma-separated list of metric groups that will be included in the response. For example, `jvm,fs`. See the list of all metrics below. Defaults to all metrics.
index_metric | String | A comma-separated list of index metric groups that will be included in the response. For example, `docs,store`. See the list of all index metrics below. Defaults to all index metrics.
The following table lists all available metric groups.
Metric | Description
:--- |:----
indices | Index statistics, such as size, document count, and search, index, and delete times for documents.
os | Statistics about the host OS, including load, memory, and swapping.
process | Statistics about processes, including their memory consumption, open file descriptors, and CPU usage.
jvm | Statistics about the JVM, including memory pool, buffer pool, and garbage collection, and the number of loaded classes.
fs | File system statistics, such as read/write statistics, data path, and free disk space.
transport | Transport layer statistics about send/receive in cluster communication.
http | Statistics about the HTTP layer.
breaker | Statistics about the field data circuit breakers.
script | Statistics about scripts, such as compilations and cache evictions.
discovery | Statistics about cluster states.
ingest | Statistics about ingest pipelines.
adaptive_selection | Statistics about adaptive replica selection, which selects an eligible node using shard allocation awareness.
script_cache | Statistics about script cache.
indexing_pressure | Statistics about the node's indexing pressure.
shard_indexing_pressure | Statistics about shard indexing pressure.
To filter the information returned for the `indices` metric, you can use specific `index_metric` values. You can use these only when you use the following query types:
The following table lists the available query parameters. All query parameters are optional.
Parameter | Type | Description
:--- | :--- | :---
completion_fields | String | The fields to include in completion statistics. Supports comma-separated lists and wildcard expressions.
fielddata_fields | String | The fields to include in fielddata statistics. Supports comma-separated lists and wildcard expressions.
fields | String | The fields to include. Supports comma-separated lists and wildcard expressions.
groups | String | A comma-separated list of search groups to include in the search statistics.
level | String | Specifies whether statistics are aggregated at the cluster, index, or shard level. Valid values are `indices`, `node`, and `shard`.
timeout | Time | Sets the time limit for node response. Default is `30s`.
include_segment_file_sizes | Boolean | If segment statistics are requested, this field specifies to return the aggregated disk usage of every Lucene index file. Default is `false`.
| _nodes | Object | Statistics about the nodes that are returned. |
| _nodes.total | Integer | The total number of nodes for this request. |
| _nodes.successful | Integer | The number of nodes for which the request was successful. |
| _nodes.failed | Integer | The number of nodes for which the request failed. If there are nodes for which the request failed, the failure message is included. |
| cluster_name | String | The name of the cluster. |
| [nodes](#nodes) | Object | Statistics for the nodes included in this request. |
### `nodes`
The `nodes` object contains all nodes that are returned by the request, along with their IDs. Each node has the following properties.
[search_pipeline](#search_pipeline) | Object | Statistics related to [search pipelines]({{site.url}}{{site.baseurl}}/search-plugins/search-pipelines/index/).
[search_backpressure]({{site.url}}{{site.baseurl}}/opensearch/search-backpressure#search-backpressure-stats-api) | Object | Statistics related to search backpressure.
docs.count | Integer | The number of documents reported by Lucene. Excludes deleted documents and recently indexed documents that are not yet assigned to a segment. Nested documents are counted separately.
docs.deleted | Integer | The number of deleted documents reported by Lucene. Excludes recent deletion operations that have not yet affect the segment.
store.size_in_bytes | Integer | Total size of all shards on the node.
store.reserved_in_bytes | Integer | The predicted number of bytes the shard store will grow to be because of activities such as restoring snapshots and peer recoveries.
search.point_in_time_total | Integer | The total number of Point in Time contexts that have been created (completed and active) since the node last restarted.
search.point_in_time_time_in_millis | Integer | The amount of time that Point in Time contexts have been held open since the node last restarted, in milliseconds.
search.point_in_time_current | Integer | The number of Point in Time contexts currently open.
search.open_contexts | Integer | The number of open search contexts.
search.query_total | Integer | The total number of query operations.
search.query_time_in_millis | Integer | The total time for all query operations, in milliseconds.
search.query_current | Integer | The number of query operations that are currently running.
search.fetch_total | Integer | The total number of fetch operations.
search.fetch_time_in_millis | Integer | The total time for all fetch operations, in milliseconds.
search.fetch_current | Integer | The number of fetch operations that are currently running.
search.scroll_total | Integer | The total number of scroll operations.
search.scroll_time_in_millis | Integer | The total time for all scroll operations, in milliseconds.
search.scroll_current | Integer | The number of scroll operations that are currently running.
search.suggest_total | Integer | The total number of suggest operations.
search.suggest_time_in_millis | Integer | The total time for all suggest operations, in milliseconds.
search.suggest_current | Integer | The number of suggest operations that are currently running.
segments.count | Integer | The total number of segments.
segments.memory_in_bytes | Integer | The total amount of memory, in bytes.
segments.terms_memory_in_bytes | Integer | The total amount of memory used for terms, in bytes.
segments.stored_fields_memory_in_bytes | Integer | The total amount of memory used for stored fields, in bytes.
segments.term_vectors_memory_in_bytes | Integer | The total amount of memory used for term vectors, in bytes.
segments.norms_memory_in_bytes | Integer | The total amount of memory used for normalization factors, in bytes.
segments.points_memory_in_bytes | Integer | The total amount of memory used for points, in bytes.
segments.doc_values_memory_in_bytes | Integer | The total amount of memory used for doc values, in bytes.
segments.index_writer_memory_in_bytes | Integer | The total amount of memory used by all index writers, in bytes.
segments.version_map_memory_in_bytes | Integer | The total amount of memory used by all version maps, in bytes.
segments.fixed_bit_set_memory_in_bytes | Integer | The total amount of memory used by fixed bit sets, in bytes. Fixed bit sets are used for nested objects and join fields.
segments.max_unsafe_auto_id_timestamp | Integer | The timestamp for the most recently retired indexing request, in milliseconds since the epoch.
segments.segment_replication | Object | Segment replication statistics for all primary shards when segment replication is enabled on the node.
segments.segment_replication.maxBytesBehind | long | The maximum number of bytes behind the primary replica.
segments.segment_replication.totalBytesBehind | long | The total number of bytes behind the primary replicas.
segments.segment_replication.maxReplicationLag | long | The maximum amount of time, in milliseconds, taken by a replica to catch up to its primary.
segments.remote_store | Object | Statistics about remote segment store operations.
segments.remote_store.upload | Object | Statistics related to uploads to the remote segment store.
segments.remote_store.upload.total_upload_size | Object | The amount of data, in bytes, uploaded to the remote segment store.
segments.remote_store.upload.total_upload_size.started_bytes | Integer | The number of bytes to upload to the remote segment store after the upload has started.
segments.remote_store.upload.total_upload_size.succeeded_bytes | Integer | The number of bytes successfully uploaded to the remote segment store.
segments.remote_store.upload.total_upload_size.failed_bytes | Integer | The number of bytes that failed to upload to the remote segment store.
segments.remote_store.upload.refresh_size_lag | Object | The amount of lag during upload between the remote segment store and the local store.
segments.remote_store.upload.refresh_size_lag.total_bytes | Integer | The total number of bytes that lagged during the upload refresh between the remote segment store and the local store.
segments.remote_store.upload.refresh_size_lag.max_bytes | Integer | The maximum amount of lag, in bytes, during the upload refresh between the remote segment store and the local store.
segments.remote_store.upload.max_refresh_time_lag_in_millis | Integer | The maximum duration, in milliseconds, that the remote refresh is behind the local refresh.
segments.remote_store.upload.total_time_spent_in_millis | Integer | The total amount of time, in milliseconds, spent on uploads to the remote segment store.
segments.remote_store.download | Object | Statistics related to downloads to the remote segment store.
segments.remote_store.download.total_download_size | Object | The total amount of data download from the remote segment store.
segments.remote_store.download.total_download_size.started_bytes | Integer | The number of bytes downloaded from the remote segment store after the download starts.
segments.remote_store.download.total_download_size.succeeded_bytes | Integer | The number of bytes successfully downloaded from the remote segment store.
segments.remote_store.download.total_download_size.failed_bytes | Integer | The number of bytes that failed to download from the remote segment store.
segments.remote_store.download.total_time_spent_in_millis | Integer | The total duration, in milliseconds, spent on downloads from the remote segment store.
translog.remote_store | Object | Statistics related to operations from the remote translog store.
translog.remote_store.upload | Object | Statistics related to uploads to the remote translog store.
translog.remote_store.upload.total_uploads | Object | The number of syncs to the remote translog store.
translog.remote_store.upload.total_uploads.started | Integer | The number of upload syncs to the remote translog store that have started.
translog.remote_store.upload.total_uploads.failed | Integer | The number of failed upload syncs to the remote translog store.
translog.remote_store.upload.total_uploads.succeeded | Integer | The number of successful upload syncs to the remote translog store.
translog.remote_store.upload.total_upload_size | Object | The total amount of data uploaded to the remote translog store.
translog.remote_store.upload.total_upload_size.started_bytes | Integer | The number of bytes actively uploading to the remote translog store after the upload has started.
translog.remote_store.upload.total_upload_size.failed_bytes | Integer | The number of bytes that failed to upload to the remote translog store.
translog.remote_store.upload.total_upload_size.succeeded_bytes | Integer | The number of bytes successfully uploaded to the remote translog store.
The `process` object contains process statistics for the node and has the following properties.
Field | Field type | Description
:--- | :--- | :---
timestamp | Integer | The last refresh time for the process statistics, in milliseconds since the epoch.
open_file_descriptors | Integer | The number of opened file descriptors associated with the current process.
max_file_descriptors | Integer | The maximum number of file descriptors for the system.
cpu | Object | Statistics about the CPU for the node.
cpu.percent | Integer | The percentage of CPU usage for the process.
cpu.total_in_millis | Integer | The total CPU time used by the process on which the JVM is running, in milliseconds.
mem | Object | Statistics about the memory for the node.
mem.total_virtual_in_bytes | Integer | The total amount of virtual memory that is guaranteed to be available to the process that is currently running, in bytes.
### `jvm`
The `jvm` object contains statistics about the JVM for the node and has the following properties.
Field | Field type | Description
:--- | :--- | :---
timestamp | Integer | The last refresh time for the JVM statistics, in milliseconds since the epoch.
uptime_in_millis | Integer | The JVM uptime, in milliseconds.
mem | Object | Statistics for the JVM memory usage on the node.
mem.heap_used_in_bytes | Integer | The amount of memory that is currently being used, in bytes.
mem.heap_used_percent | Integer | The percentage of memory that is currently used by the heap.
mem.heap_committed_in_bytes | Integer | The amount of memory available for use by the heap, in bytes.
mem.heap_max_in_bytes | Integer | The maximum amount of memory available for use by the heap, in bytes.
mem.non_heap_used_in_bytes | Integer | The amount of non-heap memory that is currently used, in bytes.
mem.non_heap_committed_in_bytes | Integer | The maximum amount of non-heap memory available for use, in bytes.
mem.pools | Object | Statistics about heap memory usage for the node.
mem.pools.young | Object | Statistics about the young generation heap memory usage for the node. Contains the amount of memory used, the maximum amount of memory available, and the peak amount of memory used.
mem.pools.old | Object | Statistics about the old generation heap memory usage for the node. Contains the amount of memory used, the maximum amount of memory available, and the peak amount of memory used.
mem.pools.survivor | Object | Statistics about the survivor space memory usage for the node. Contains the amount of memory used, the maximum amount of memory available, and the peak amount of memory used.
threads | Object | Statistics about the JVM thread usage for the node.
threads.count | Integer | The number of threads that are currently active in the JVM.
threads.peak_count | Integer | The maximum number of threads in the JVM.
gc.collectors | Object | Statistics about the JVM garbage collectors for the node.
gc.collectors.young | Integer | Statistics about JVM garbage collectors that collect young generation objects.
gc.collectors.young.collection_count | Integer | The number of garbage collectors that collect young generation objects.
gc.collectors.young.collection_time_in_millis | Integer | The total time spent on garbage collection of young generation objects, in milliseconds.
gc.collectors.old | Integer | Statistics about JVM garbage collectors that collect old generation objects.
gc.collectors.old.collection_count | Integer | The number of garbage collectors that collect old generation objects.
gc.collectors.old.collection_time_in_millis | Integer | The total time spent on garbage collection of old generation objects, in milliseconds.
buffer_pools | Object | Statistics about the JVM buffer pools for the node.
buffer_pools.mapped | Object | Statistics about the mapped JVM buffer pools for the node.
buffer_pools.mapped.count | Integer | The number of mapped buffer pools.
buffer_pools.mapped.used_in_bytes | Integer | The amount of memory used by mapped buffer pools, in bytes.
buffer_pools.mapped.total_capacity_in_bytes | Integer | The total capacity of the mapped buffer pools, in bytes.
buffer_pools.direct | Object | Statistics about the direct JVM buffer pools for the node.
buffer_pools.direct.count | Integer | The number of direct buffer pools.
buffer_pools.direct.used_in_bytes | Integer | The amount of memory used by direct buffer pools, in bytes.
buffer_pools.direct.total_capacity_in_bytes | Integer | The total capacity of the direct buffer pools, in bytes.
classes | Object | Statistics about the classes loaded by the JVM for the node.
classes.current_loaded_count | Integer | The number of classes currently loaded by the JVM.
classes.total_loaded_count | Integer | The total number of classes loaded by the JVM since it started.
classes.total_unloaded_count | Integer | The total number of classes unloaded by the JVM since it started.
### `thread_pool`
The `thread_pool` object contains a list of all thread pools. Each thread pool is a nested object specified by its ID with the properties listed below.
Field | Field type | Description
:--- | :--- | :---
threads | Integer | The number of threads in the pool.
queue | Integer | The number of threads in queue.
active | Integer | The number of active threads in the pool.
rejected | Integer | The number of tasks that have been rejected.
largest | Integer | The peak number of threads in the pool.
completed | Integer | The number of tasks completed.
### `fs`
The `fs` object represents statistics about the file stores for the node. It has the following properties.
Field | Field type | Description
:--- | :--- | :---
timestamp | Integer | The last refresh time for the file store statistics, in milliseconds since the epoch.
total | Object | Statistics for all file stores of the node.
total.total_in_bytes | Integer | The total memory size of all file stores, in bytes.
total.free_in_bytes | Integer | The total unallocated disk space in all file stores, in bytes.
total.available_in_bytes | Integer | The total disk space available to the JVM on all file stores. Represents the actual amount of memory, in bytes, that OpenSearch can use.
data | Array | The list of all file stores. Each file store has the properties listed below.
data.path | String | The path to the file store.
data.mount | String | The mount point of the file store.
data.type | String | The type of the file store (for example, overlay).
data.total_in_bytes | Integer | The total size of the file store, in bytes.
data.free_in_bytes | Integer | The total unallocated disk space in the file store, in bytes.
data.available_in_bytes | Integer | The total amount of disk space available to the JVM for the file store, in bytes.
io_stats | Object | I/O statistics for the node (Linux only). Includes devices, read and write operations, and the I/O operation time.
### `transport`
The `transport` object has the following properties.
Field | Field type | Description
:--- | :--- | :---
server_open | Integer | The number of open inbound TCP connections that OpenSearch nodes use for internal communication.
total_outbound_connections | Integer | The total number of outbound transport connections that the node has opened since it started.
rx_count | Integer | The total number of RX (receive) packets the node received during internal communication.
rx_size_in_bytes | Integer | The total size of RX packets the node received during internal communication, in bytes.
tx_count | Integer | The total number of TX (transmit) packets the node sent during internal communication.
tx_size_in_bytes | Integer | The total size of TX (transmit) packets the node sent during internal communication, in bytes.
### `breakers`
The `breakers` object contains statistics about the circuit breakers for the node. Each circuit breaker is a nested object listed by name and contains the following properties.
Field | Field type | Description
:--- | :--- | :---
limit_size_in_bytes | Integer | The memory limit for the circuit breaker, in bytes.
limit_size | Byte value | The memory limit for the circuit breaker in human-readable format (for example, `307.1mb`).
estimated_size_in_bytes | Integer | The estimated memory used for the operation, in bytes.
estimated_size | Byte value | The estimated memory used for the operation in human-readable format (for example, `356b`).
overhead | Float | A factor that all estimates are multiplied by to calculate the final estimate.
tripped | Integer | The total number of times the circuit breaker has been activated to prevent an out-of-memory error.
### `script` and `script_cache`
The `script` and `script_cache` objects have the following properties.
Field | Field type | Description
:--- | :--- | :---
script | Object | Script statistics for the node.
script.compilations | Integer | The total number of script compilations for the node.
script.cache_evictions| Integer | The total number of times the script cache has purged old data.
script.compilation_limit_triggered | Integer | The total number of times script compilation was limited by a circuit breaker.
script_cache | Object | Script cache statistics for the node.
script_cache.sum.compilations | Integer | The total number of script compilations in the cache for the node.
script_cache.sum.cache_evictions| Integer | The total number of times the script cache has purged old data.
script_cache.sum.compilation_limit_triggered | Integer | The total number of times script compilation in the cache was limited by a circuit breaker.
script_cache.contexts | Array of objects | The list of contexts for the script cache. Each context contains its name, the number of compilations, the number of cache evictions, and the number of times the script was limited by a circuit breaker.
### `discovery`
The `discovery` object contains the node discovery statistics and has the following properties.
Field | Field type | Description
:--- | :--- | :---
cluster_state_queue | Object | Cluster state queue statistics for the node.
cluster_state_queue.total | Integer | The total number of cluster states in the queue.
cluster_state_queue.pending | Integer | The number of pending cluster states in the queue.
cluster_state_queue.committed | Integer | The number of committed cluster states in the queue.
published_cluster_states | Object | Statistics for the published cluster states for the node.
published_cluster_states.full_states | Integer | The number of published cluster states.
published_cluster_states.incompatible_diffs | Integer | The number of incompatible differences between published cluster states.
published_cluster_states.compatible_diffs | Integer | The number of compatible differences between published cluster states.
### `ingest`
The `ingest` object contains the ingest statistics and has the following properties.
Field | Field type | Description
:--- | :--- | :---
total | Integer | Ingest statistics for the node's lifetime.
total.count | Integer | The total number of documents ingested by the node.
total.time_in_millis | Integer | The total amount of time for preprocessing ingest documents, in milliseconds.
total.current | Integer | The total number of documents that are currently being ingested by the node.
total.failed | Integer | The total number of failed ingestions for the node.
pipelines | Object | Ingest pipeline statistics for the node. Each pipeline is a nested object specified by its ID with the properties listed below.
pipelines._id_.count | Integer | The number of documents preprocessed by the ingest pipeline.
pipelines._id_.time_in_millis | Integer | The total amount of time for preprocessing documents in the ingest pipeline, in milliseconds.
pipelines._id_.failed | Integer | The total number of failed ingestions for the ingest pipeline.
pipelines._id_.processors | Array of objects | Statistics for the ingest processors. Includes the number of documents that are currently transformed, the total number of transformed documents, the number of failed transformations, and the time spent transforming documents.
The `search_pipeline` object contains the statistics related to [search pipelines]({{site.url}}{{site.baseurl}}/search-plugins/search-pipelines/index/) and has the following properties.
Field | Field type | Description
:--- | :--- | :---
total_request | Object | Cumulative statistics related to all search request processors.
total_request.count | Integer | The total number of search request processor executions.
total_request.time_in_millis | Integer | The total amount of time for all search request processor executions, in milliseconds.
total_request.current | Integer | The total number of search request processor executions currently in progress.
total_request.failed | Integer | The total number of failed search request processor executions.
total_response | Object | Cumulative statistics related to all search response processors.
total_response.count | Integer | The total number of search response processor executions.
total_response.time_in_millis | Integer | The total amount of time for all search response processor executions, in milliseconds.
total_response.current | Integer | The total number of search response processor executions currently in progress.
total_response.failed | Integer | The total number of failed search response processor executions.
pipelines | Object | Search pipeline statistics. Each pipeline is a nested object specified by its ID, with the properties listed in the following rows. If a processor has a `tag`, statistics for the processor are provided in the object with the name `<processor_type>:<tag>` (for example, `filter_query:abc`). Statistics for all processors of the same type that do not have a `tag` are aggregated and provided in the object with the name `<processor-type>` (for example, `filter_query`).
pipelines._id_.request.count | Integer | The number of search request processor executions performed by the search pipeline.
pipelines._id_.request.time_in_millis | Integer | The total amount of time for search request processor executions in the search pipeline, in milliseconds.
pipelines._id_.request.current | Integer | The number of search request processor executions currently in progress for the search pipeline.
pipelines._id_.request.failed | Integer | The number of failed search request processor executions for the search pipeline.
pipelines._id_.request_processors | Array of objects | Statistics for the search request processors. Includes the total number of executions, the total amount of time of executions, the total number of executions currently in progress, and the number of failed executions.
pipelines._id_.response.count | Integer | The number of search response processor executions performed by the search pipeline.
pipelines._id_.response.time_in_millis | Integer | The total amount of time for search response processor executions in the search pipeline, in milliseconds.
pipelines._id_.response.current | Integer | The number of search response processor executions currently in progress for the search pipeline.
pipelines._id_.response.failed | Integer | The number of failed search response processor executions for the search pipeline.
pipelines._id_.response_processors | Array of objects | Statistics for the search response processors. Includes the total number of executions, the total amount of time of executions, the total number of executions currently in progress, and the number of failed executions.
The `adaptive_selection` object contains the adaptive selection statistics. Each entry is specified by the node ID and has the properties listed below.
Field | Field type | Description
:--- | :--- | :---
outgoing_searches | Integer | The number of outgoing search requests for the node.
avg_queue_size | Integer | The rolling average queue size of search requests for the node (exponentially weighted).
avg_service_time_ns | Integer | The rolling average service time for search requests, in nanoseconds (exponentially weighted).
avg_response_time_ns | Integer | The rolling average response time for search requests, in nanoseconds (exponentially weighted).
rank | String | The node's rank that is used to select shards when routing requests.
### `indexing_pressure`
The `indexing_pressure` object contains the indexing pressure statistics and has the following properties.
Field | Field type | Description
:--- | :--- | :---
memory | Object | Statistics related to memory consumption for the indexing load.
memory.current | Object | Statistics related to memory consumption for the current indexing load.
memory.current.combined_coordinating_and_primary_in_bytes | Integer | The total memory used by indexing requests in the coordinating or primary stages, in bytes. A node can reuse the coordinating memory if the primary stage is run locally, so the total memory does not necessarily equal the sum of the coordinating and primary stage memory usage.
memory.current.coordinating_in_bytes | The total memory consumed by indexing requests in the coordinating stage, in bytes.
memory.current.primary_in_bytes | Integer | The total memory consumed by indexing requests in the primary stage, in bytes.
memory.current.replica_in_bytes | Integer | The total memory consumed by indexing requests in the replica stage, in bytes.
memory.current.all_in_bytes | Integer | The total memory consumed by indexing requests in the coordinating, primary, or replica stages.
The `shard_indexing_pressure` object contains the [shard indexing pressure]({{site.url}}{{site.baseurl}}/opensearch/shard-indexing-backpressure) statistics and has the following properties.
Field | Field type | Description
:--- | :--- | :---
[stats]({{site.url}}{{site.baseurl}}/opensearch/stats-api/) | Object | Statistics about shard indexing pressure.
total_rejections_breakup_shadow_mode | Object | If running in shadow mode, the `total_rejections_breakup_shadow_mode` object contains statistics about the request rejection criteria of all shards in the node.
total_rejections_breakup_shadow_mode.node_limits | Integer | The total number of rejections due to the node memory limit. When all shards reach the memory limit assigned to the node (for example, 10% of heap size), the shard is unable to take in more traffic on the node, and the indexing request is rejected.
total_rejections_breakup_shadow_mode.no_successful_request_limits | Integer | The total number of rejections when the node occupancy level is breaching its soft limit and the shard has multiple outstanding requests that are waiting to be executed. In this case, additional indexing requests are rejected until the system recovers.
total_rejections_breakup_shadow_mode.throughput_degradation_limits | Integer | The total number of rejections when the node occupancy level is breaching its soft limit and there is a constant deterioration in the request turnaround at the shard level. In this case, additional indexing requests are rejected until the system recovers.
enabled | Boolean | Specifies whether the shard indexing pressure feature is turned on for the node.
enforced | Boolean | If true, the shard indexing pressure runs in enforced mode (there are rejections). If false, the shard indexing pressure runs in shadow mode (there are no rejections, but statistics are recorded and can be retrieved in the `total_rejections_breakup_shadow_mode` object). Only applicable if shard indexing pressure is enabled.