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

此 API 用于获取 Easysearch 集群中数据流(Data Stream)的统计信息,包括数据流数量、后备索引数量、存储大小等关键指标。

API #

GET /_data_stream/_stats
GET /_data_stream/{name}/_stats

API 的作用 #

获取数据流的统计信息,用于监控和管理数据流的使用情况。返回的信息包括:

  • data_stream_count:数据流的总数量
  • backing_indices:后备索引的总数量
  • total_store_size:总存储大小
  • data_streams:每个数据流的详细信息
    • 数据流名称
    • 后备索引数量
    • 存储大小
    • 最大时间戳

API 的参数 #

路由参数 #

参数类型是否必需描述
namestring可选数据流的名称
支持:
- 单个名称:logs-nginx
- 多个名称(逗号分隔):logs-nginx,logs-redis
- 通配符:logs-*
- _all 或空值:所有数据流

查询字符串参数 #

参数类型是否必需默认值描述
forbid_closed_indicesboolean可选true是否禁止访问已关闭的索引
true:禁止访问已关闭的索引
false:允许访问已关闭的索引
expand_wildcardsstring可选open控制通配符表达式如何展开为实际的索引
open:只展开开放状态的索引
closed:展开已关闭的索引
hidden:展开隐藏的索引
none:不展开任何索引
all:展开所有状态的索引
可使用逗号分隔多个值
ignore_unavailableboolean可选false是否忽略不可用的索引
true:忽略不可用的索引
false:遇到不可用的索引会抛出异常
allow_no_indicesboolean可选true是否允许没有匹配索引的情况
true:没有匹配时返回空结果
false:没有匹配时抛出异常
ignore_throttledboolean可选false是否忽略被限制的索引
true:忽略被限制的索引
false:包含被限制的索引

请求示例 #

# 查询所有数据流的统计信息
GET /_data_stream/_stats

# 查询指定数据流的统计信息
GET /_data_stream/logs-nginx/_stats

# 查询多个数据流的统计信息(逗号分隔)
GET /_data_stream/logs-nginx,logs-redis/_stats

# 使用通配符查询
GET /_data_stream/logs-*/_stats

# 允许访问已关闭的索引
GET /_data_stream/_stats?forbid_closed_indices=false

# 展开所有状态的索引(包括已关闭和隐藏)
GET /_data_stream/_stats?expand_wildcards=all

# 忽略不可用的索引
GET /_data_stream/_stats?ignore_unavailable=true

响应示例 #

成功响应 - 所有数据流 #

{
  "data_stream_count": 3,
  "backing_indices": 7,
  "total_store_size": "5.2gb",
  "data_streams": [
    {
      "data_stream": "logs-nginx",
      "backing_indices": 3,
      "store_size": "2.1gb",
      "maximum_timestamp": 1707033600000
    },
    {
      "data_stream": "logs-redis",
      "backing_indices": 2,
      "store_size": "1.5gb",
      "maximum_timestamp": 1707033600000
    },
    {
      "data_stream": "metrics-system",
      "backing_indices": 2,
      "store_size": "1.6gb",
      "maximum_timestamp": 1707033600000
    }
  ]
}

响应字段说明 #

字段类型描述
data_stream_countinteger数据流的总数量
backing_indicesinteger所有数据流的后备索引总数量
total_store_sizestring所有后备索引的总存储大小(格式化字符串)
data_streamsarray每个数据流的详细统计信息
data_streams.data_streamstring数据流名称
data_streams.backing_indicesinteger该数据流的后备索引数量
data_streams.store_sizestring该数据流的存储大小
data_streams.maximum_timestamplong该数据流中的最大时间戳(毫秒)

空结果响应 #

当没有数据流或没有匹配的数据流时:

{
  "data_stream_count": 0,
  "backing_indices": 0,
  "total_store_size": "0b",
  "data_streams": []
}

使用场景 #

  1. 容量规划:监控数据流的存储使用情况,规划存储容量
  2. 性能监控:跟踪后备索引数量,评估数据流配置
  3. 资源审计:定期检查数据流的状态和大小
  4. 问题排查:诊断数据流相关的性能或存储问题

与相关 API 的区别 #

API功能
GET /_data_stream查询数据流的元数据信息(名称、状态、模板等)
GET /_data_stream/_stats查询数据流的统计信息(存储大小、索引数量等)
GET /_cat/indices查询所有索引的信息,包括后备索引

注意事项 #

  1. 此 API 只支持 GET 方法
  2. forbid_closed_indices 默认为 true,已关闭的索引默认不被计入统计
  3. 通配符 * 和不提供 name 参数效果相同
  4. 存储大小是格式化后的字符串(如 “5.2gb”),便于人类阅读

相关文档 #