获取异步 EQL 状态 API

编辑

获取异步 EQL 状态 API编辑

返回 异步 EQL 搜索存储的同步 EQL 搜索 的当前状态,但不返回结果。这比 获取异步 EQL 搜索 API 更轻量级,因为它不返回搜索结果,只报告状态。

如果启用了 Elasticsearch 安全功能,则对获取异步 eql 状态 API 的访问权限仅限于 monitoring_user 角色

response = client.eql.get_status(
  id: 'FkpMRkJGS1gzVDRlM3g4ZzMyRGlLbkEaTXlJZHdNT09TU2VTZVBoNDM3cFZMUToxMDM='
)
puts response
GET /_eql/search/status/FkpMRkJGS1gzVDRlM3g4ZzMyRGlLbkEaTXlJZHdNT09TU2VTZVBoNDM3cFZMUToxMDM=

请求编辑

GET /_eql/search/status/<search_id>

路径参数编辑

<search_id>

(必填,字符串)搜索的标识符。

EQL 搜索 API 的响应中为 异步搜索 提供了搜索 ID。如果请求的 keep_on_completion 参数为 true,也会提供搜索 ID。

响应正文编辑

id
(字符串)搜索的标识符。
is_running
(布尔值)如果为 true,则搜索请求仍在执行。如果为 false,则搜索已完成。
is_partial
(布尔值)如果为 true,则响应不包含完整的搜索结果。这可能是因为搜索仍在运行(is_running 状态为 false),或者因为它已经完成(is_running 状态为 true),但由于失败或超时导致结果不完整。
start_time_in_millis
(长整型)对于正在运行的搜索,显示 eql 搜索开始的时间戳,以自 Unix 纪元以来的毫秒数表示。
expiration_time_in_millis
(长整型)显示 eql 搜索过期的時間戳,以自 Unix 纪元以来的毫秒数表示。达到此时间后,即使搜索仍在进行中,搜索及其结果也会被删除。
completion_status
(整数)对于已完成的搜索,显示已完成搜索的 http 状态代码。

示例编辑

response = client.eql.get_status(
  id: 'FmNJRUZ1YWZCU3dHY1BIOUhaenVSRkEaaXFlZ3h4c1RTWFNocDdnY2FSaERnUTozNDE=',
  keep_alive: '5d'
)
puts response
GET /_eql/search/status/FmNJRUZ1YWZCU3dHY1BIOUhaenVSRkEaaXFlZ3h4c1RTWFNocDdnY2FSaERnUTozNDE=?keep_alive=5d

如果搜索仍在运行,则状态响应具有以下形式

{
  "id" : "FmNJRUZ1YWZCU3dHY1BIOUhaenVSRkEaaXFlZ3h4c1RTWFNocDdnY2FSaERnUTozNDE=",
  "is_running" : true,
  "is_partial" : true,
  "start_time_in_millis" : 1611690235000,
  "expiration_time_in_millis" : 1611690295000

}

如果搜索已完成,则状态响应没有 start_time_in_millis,但有一个额外的 completion_status 字段,显示已完成的 eql 搜索的状态代码

{
  "id" : "FmNJRUZ1YWZCU3dHY1BIOUhaenVSRkEaaXFlZ3h4c1RTWFNocDdnY2FSaERnUTozNDE=",
  "is_running" : false,
  "is_partial" : false,
  "expiration_time_in_millis" : 1611690295000,
  "completion_status" : 200 
}

表示 eql 搜索已成功完成