--- title: "查询数据流统计信息" date: 2026-01-03 lastmod: 2026-01-03 description: "介绍如何在 Easysearch 中查询数据流的统计信息,包括存储大小、索引数量等。" tags: ["数据流", "统计信息", "索引管理"] summary: "此 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 是否禁止访问已关闭的索引" --- 此 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`:包含被限制的索引 | ## 请求示例 ```bash # 查询所有数据流的统计信息 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 ``` ## 响应示例 ### 成功响应 - 所有数据流 ```json { "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 | 该数据流中的最大时间戳(毫秒) | ### 空结果响应 当没有数据流或没有匹配的数据流时: ```json { "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"),便于人类阅读 ## 相关文档 - [创建数据流](./create-data-stream.md) - [查询所有数据流](./get-all-data-streams.md) - [查询指定数据流](./get-specific-data-stream.md) - [删除数据流](./delete-data-stream.md)