实时查询
3.0 版本引入
使用实时查询 API 检索集群中或特定节点上当前正在运行的搜索查询。使用查询洞察监控实时查询,可以实时了解 OpenSearch 集群中当前正在执行的搜索查询。这对于识别和调试可能运行时间过长或当前消耗大量资源的查询非常有用。
该 API 返回按指定指标(默认为 latency
)降序排列的当前正在执行的搜索查询列表。响应包括每个实时查询的详细信息,例如查询源、搜索类型、涉及的索引、节点 ID、开始时间、延迟以及迄今为止的资源使用情况(在协调节点上)。
端点
GET /_insights/live_queries
查询参数
下表列出了可用的查询参数。所有查询参数都是可选的。
参数 | 数据类型 | 描述 |
---|---|---|
verbose | 布尔型 | 输出中是否包含详细查询信息。默认为 true 。 |
nodeId | 字符串 | 用于过滤结果的节点 ID 逗号分隔列表。如果省略,则返回所有节点的查询。 |
sort(排序) | 字符串 | 用于对结果进行排序的指标。有效值为 latency 、cpu 或 memory 。默认为 latency 。 |
size | 整数 | 要返回的查询记录数。默认为 100。 |
请求示例
以下示例请求获取按 CPU 使用率排序的前 10 个查询,并禁用详细输出。
GET /_insights/live_queries?verbose=false&sort=cpu&size=10
示例响应
{
"live_queries" : [
{
"timestamp" : 1745359226777,
"id" : "troGHNGUShqDj3wK_K5ZIw:512",
"description" : "indices[my-index-*], search_type[QUERY_THEN_FETCH], source[{\"size\":20,\"query\":{\"term\":{\"user.id\":{\"value\":\"userId\",\"boost\":1.0}}}}]",
"node_id" : "troGHNGUShqDj3wK_K5ZIw",
"measurements" : {
"latency" : {
"number" : 13959364458,
"count" : 1,
"aggregationType" : "NONE"
},
"memory" : {
"number" : 3104,
"count" : 1,
"aggregationType" : "NONE"
},
"cpu" : {
"number" : 405000,
"count" : 1,
"aggregationType" : "NONE"
}
}
},
{
"timestamp" : 1745359229158,
"id" : "Y6eBnbdISPO6XaVfxCBRgg:454",
"description" : "indices[my-index-*], search_type[QUERY_THEN_FETCH], source[{\"size\":20,\"query\":{\"term\":{\"user.id\":{\"value\":\"userId\",\"boost\":1.0}}}}]",
"node_id" : "Y6eBnbdISPO6XaVfxCBRgg",
"measurements" : {
"latency" : {
"number" : 11579097209,
"count" : 1,
"aggregationType" : "NONE"
},
"memory" : {
"number" : 3104,
"count" : 1,
"aggregationType" : "NONE"
},
"cpu" : {
"number" : 511000,
"count" : 1,
"aggregationType" : "NONE"
}
}
}
]
}
响应字段
字段 | 数据类型 | 描述 |
---|---|---|
时间戳 | 长整型 | 查询任务开始的时间,以自 epoch 以来的毫秒为单位。 |
id | 字符串 | 搜索请求的唯一标识符(与查询关联的搜索任务 ID)。 |
description | 字符串 | 查询的描述,包括其运行的索引、搜索类型和查询源。仅当 verbose 为 true (默认值)时才包含。 |
node_id | 字符串 | 运行查询任务的协调节点 ID。 |
measurements | 对象 | 包含迄今为止为查询收集的性能指标的对象。 |
measurements.LATENCY | 对象 | 包含 value (当前运行时间,以纳秒为单位)和 unit (nanos )。 |
measurements.CPU | 对象 | 包含 value (迄今为止消耗的 CPU 时间,以纳秒为单位)和 unit (nanos )。 |
measurements.MEMORY | 对象 | 包含 value (迄今为止使用的堆内存,以字节为单位)和 unit (bytes )。 |