此 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 的参数 #
路由参数 #
| 参数 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
name | string | 可选 | 数据流的名称 支持: - 单个名称: logs-nginx- 多个名称(逗号分隔): logs-nginx,logs-redis- 通配符: logs-*- _all 或空值:所有数据流 |
查询字符串参数 #
| 参数 | 类型 | 是否必需 | 默认值 | 描述 |
|---|---|---|---|---|
forbid_closed_indices | boolean | 可选 | true | 是否禁止访问已关闭的索引true:禁止访问已关闭的索引false:允许访问已关闭的索引 |
expand_wildcards | string | 可选 | open | 控制通配符表达式如何展开为实际的索引open:只展开开放状态的索引closed:展开已关闭的索引hidden:展开隐藏的索引none:不展开任何索引all:展开所有状态的索引可使用逗号分隔多个值 |
ignore_unavailable | boolean | 可选 | false | 是否忽略不可用的索引true:忽略不可用的索引false:遇到不可用的索引会抛出异常 |
allow_no_indices | boolean | 可选 | true | 是否允许没有匹配索引的情况true:没有匹配时返回空结果false:没有匹配时抛出异常 |
ignore_throttled | boolean | 可选 | 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_count | integer | 数据流的总数量 |
backing_indices | integer | 所有数据流的后备索引总数量 |
total_store_size | string | 所有后备索引的总存储大小(格式化字符串) |
data_streams | array | 每个数据流的详细统计信息 |
data_streams.data_stream | string | 数据流名称 |
data_streams.backing_indices | integer | 该数据流的后备索引数量 |
data_streams.store_size | string | 该数据流的存储大小 |
data_streams.maximum_timestamp | long | 该数据流中的最大时间戳(毫秒) |
空结果响应 #
当没有数据流或没有匹配的数据流时:
{
"data_stream_count": 0,
"backing_indices": 0,
"total_store_size": "0b",
"data_streams": []
}
使用场景 #
- 容量规划:监控数据流的存储使用情况,规划存储容量
- 性能监控:跟踪后备索引数量,评估数据流配置
- 资源审计:定期检查数据流的状态和大小
- 问题排查:诊断数据流相关的性能或存储问题
与相关 API 的区别 #
| API | 功能 |
|---|---|
GET /_data_stream | 查询数据流的元数据信息(名称、状态、模板等) |
GET /_data_stream/_stats | 查询数据流的统计信息(存储大小、索引数量等) |
GET /_cat/indices | 查询所有索引的信息,包括后备索引 |
注意事项 #
- 此 API 只支持 GET 方法
forbid_closed_indices默认为true,已关闭的索引默认不被计入统计- 通配符
*和不提供name参数效果相同 - 存储大小是格式化后的字符串(如 “5.2gb”),便于人类阅读





