此 API 用于获取 Easysearch 集群中所有活跃的 Point In Time (PIT) 上下文信息。
API #
GET /_pit/_all
API 的作用 #
获取集群中所有活跃的 PIT 上下文信息。该 API 会遍历集群中的所有节点,收集并返回所有当前的 PIT ID 及其相关信息,包括:
- PIT ID:Base64 编码的 PIT 标识符
- 创建时间:PIT 创建的时间戳
- 存活时间:PIT 的 keep_alive 时长(毫秒)
- 失败节点:获取 PIT 信息失败的节点及其错误信息(如果有)
API 的参数 #
路由参数 #
此 API 使用固定路由 /_pit/_all,没有路由参数。
查询字符串参数 #
此 API 不支持任何查询字符串参数。
请求示例 #
# 查询所有 PIT
GET /_pit/_all
响应示例 #
成功响应 #
{
"pits": [
{
"pit_id": "o463QQEPbXktaW5kZXgtMDAwMDAxFnNOWU43ckt3U3IyaFVpbGE1UWEtMncAFjFyeXBsRGJmVFM2RTB6eVg1aVVqQncAAAAAAAAAAAIWcDVrM3ZIX0pRNS1XejE5YXRPRFhzUQEWc05ZTjdyS3dTcjJoVWlsYTVRYS0ydwAA",
"creation_time": 1707033600000,
"keep_alive": 6000000
},
{
"pit_id": "aBc123DEF456GhI789JKL012Mno345PQR678STU901vwx234yz",
"creation_time": 1707033700000,
"keep_alive": 300000
}
],
"failures": []
}
包含节点失败的响应 #
{
"pits": [
{
"pit_id": "pit_id_here",
"creation_time": 1707033600000,
"keep_alive": 6000000
}
],
"failures": [
{
"node_id": "node-1",
"error": "Failed to connect to node"
}
]
}
响应字段说明 #
| 字段 | 类型 | 描述 |
|---|---|---|
pits | array | PIT 信息数组(已去重) |
pits.pit_id | string | Base64 编码的 PIT ID |
pits.creation_time | long | PIT 创建的时间戳(毫秒) |
pits.keep_alive | long | PIT 的存活时间(毫秒) |
failures | array | 获取 PIT 信息失败的节点列表 |
failures.node_id | string | 失败节点的 ID |
failures.error | string | 错误描述 |
空结果响应 #
当集群中没有活跃的 PIT 时:
{
"pits": [],
"failures": []
}
API 工作流程 #
- 接收 GET 请求到
/_pit/_all端点 - 创建一个包含集群所有节点的请求对象
- 向每个节点发送获取 PIT 信息的请求
- 收集所有节点的响应
- 对 PIT ID 进行去重处理
- 返回统一的响应格式
使用场景 #
- 监控 PIT 数量:定期检查集群中有多少活跃的 PIT
- 资源审计:检查哪些 PIT 可能已被遗忘但仍占用资源
- 问题排查:诊断 PIT 相关的问题
- 运维清理:识别长时间未使用的 PIT 以便清理
PIT 管理建议 #
- 定期检查:定期执行此 API 检查 PIT 数量
- 及时清理:对于不再使用的 PIT,使用
DELETE /_pit及时删除 - 监控创建时间:关注创建时间过长的 PIT,可能已被遗忘
- 设置合理 keep_alive:根据实际需求设置 PIT 的存活时间
与相关 API 的配合 #
| API | 功能 |
|---|---|
POST /{index}/_pit | 创建 PIT |
GET /_pit/_all | 获取所有 PIT |
DELETE /_pit | 删除指定的 PIT |
DELETE /_pit/_all | 删除所有 PIT |
注意事项 #
- 此 API 只支持 GET 方法
- 不支持任何查询字符串参数
- PIT ID 已进行去重处理
- 如果某些节点失败,会在
failures字段中返回错误信息 - 此 API 会遍历所有节点,在大规模集群中可能有性能影响





