📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

获取集群中节点的统计信息,包括操作系统、JVM、索引、网络等方面的性能指标和资源使用情况。

API #

GET /_cluster/nodes/stats
GET /_nodes/stats
GET /_nodes/{nodeId}/stats
GET /_nodes/stats/{metric}
GET /_nodes/{nodeId}/stats/{metric}
GET /_nodes/stats/{metric}/{index_metric}
GET /_nodes/{nodeId}/stats/{metric}/{index_metric}

API 的作用 #

该 API 用于获取集群中节点的统计信息,可以返回关于集群中各个节点的各种性能指标、资源使用情况和系统状态,包括操作系统、JVM、索引、网络等方面的统计数据。

可用的统计指标(metric) #

指标值描述
_all所有指标
breaker断路器统计
fs文件系统统计
httpHTTP 统计
indices索引统计
jvmJVM 统计
os操作系统统计
process进程统计
thread_pool线程池统计
transport传输统计
discovery发现统计
indexing_pressure索引压力统计

索引级别的指标(index_metric) #

metricindices 时,可以进一步指定以下指标:

指标值描述
_all所有索引指标
completion完成度统计
docs文档统计
fielddata字段数据统计
query_cache查询缓存统计
flush刷新统计
get获取操作统计
indexing索引操作统计
merge合并统计
request_cache请求缓存统计
refresh刷新统计
search搜索统计
segments段统计
store存储统计
warmer预热统计
suggest建议统计

API 的参数 #

路由参数 #

参数类型是否必填默认值描述
{nodeId}字符串所有节点节点 ID 或名称列表(逗号分隔)。特殊值:_local 表示当前连接的节点
{metric}字符串_all指标类型名称
{index_metric}字符串-索引级别的具体指标(仅当 metricindices 时有效)

Query String 参数 #

参数类型是否必填默认值描述
nodeId字符串所有节点指定要获取统计信息的节点(逗号分隔)。特殊值:_local 表示当前连接的节点
metric字符串_all指定要获取的指标类型(逗号分隔)
index_metric字符串_all指定索引级别的具体指标(逗号分隔)。仅当 metric 包含 indices 时有效
level枚举值node指定索引统计的聚合级别。可选值:indices(按索引聚合)、node(按节点聚合)、shards(按分片聚合)
timeout时间值默认超时操作超时时间
include_segment_file_sizes布尔值false是否报告每个 Lucene 索引文件的聚合磁盘使用量(仅当请求段统计时适用)
fields字符串-指定 fielddata 和 completion 索引指标的字段(支持通配符,逗号分隔)
fielddata_fields字符串-指定 fielddata 索引指标的字段(支持通配符,逗号分隔)
completion_fields字符串-指定 completion 索引指标的字段(支持通配符,逗号分隔)
groups字符串-指定搜索索引指标的搜索组(逗号分隔)
types字符串-指定索引索引指标的文档类型(逗号分隔)

示例 #

获取所有节点的所有统计信息 #

GET /_cluster/nodes/stats

GET /_nodes/stats

获取指定节点的统计信息 #

GET /_nodes/node1/stats

获取所有节点的 JVM 统计 #

GET /_nodes/stats/jvm

获取指定节点的索引统计 #

GET /_nodes/node1/stats/indices

获取索引的文档统计 #

GET /_nodes/stats/indices/docs

获取索引的搜索统计(按分片级别) #

GET /_nodes/stats/indices/search?level=shards

获取本地节点的信息 #

GET /_nodes/_local/stats

获取多个节点的多个指标 #

GET /_nodes/node1,node2/stats/jvm,os,process

响应示例:

{
  "cluster_name": "easysearch-cluster",
  "nodes": {
    "node1_id": {
      "name": "node-1",
      "host": "192.168.1.1",
      "ip": "192.168.1.1",
      "jvm": {
        "mem": {
          "heap_used_in_bytes": 536870912,
          "heap_max_in_bytes": 1073741824,
          "heap_used_percent": 50
        },
        "gc": {
          "collectors": {
            "young": {
              "collection_count": 100,
              "collection_time_in_millis": 500
            }
          }
        }
      },
      "os": {
        "cpu_percent": 25,
        "load_average": [1.5, 1.2, 1.0]
      },
      "indices": {
        "docs": {
          "count": 10000,
          "deleted": 100
        },
        "store": {
          "size_in_bytes": 1073741824
        },
        "search": {
          "open_contexts": 5,
          "query_total": 1000,
          "query_time_in_millis": 5000
        }
      }
    }
  }
}