查看已完成的 Elasticsearch 任务

Tra*_*rts 3 elasticsearch

我正在尝试通过查询 API 使用 Elasticsearch 的更新来运行日常任务。我可以找到当前正在运行的任务,但需要一种方法来查看所有任务,包括已完成的任务。

我已经查看了按查询更新 API 的 ES 文档:

https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-update-by-query.html#docs-update-by-query

和任务 API:https : //www.elastic.co/guide/en/elasticsearch/reference/current/tasks.html#tasks

任务 API 显示了如何使用GET _tasks/[taskId]或所有正在运行的任务 -获取当前正在运行的任务的状态GET _tasks。但我需要查看所有运行任务的历史记录。

如何查看所有已完成任务的列表?

tpo*_*pov 6

聚会有点晚,但您可以在.tasks系统索引中查看任务。

您可以像查询任何其他常规索引一样查询此索引。对于 updateByQuery 任务,您可以执行以下操作:

curl -XPOST -sS "elastic:9200/.tasks/_search" -H 'Content-Type: application/json' -d '{
  "query": {
    "bool": {
      "filter": [
        {
          "term": {
            "completed": true
          }
        },
        {
          "term": {
            "task.action": "indices:data/write/update/byquery"
          }
        }
      ]
    }
  }
}'
Run Code Online (Sandbox Code Playgroud)


Alw*_*nny 0

从文档来看,

任务管理 API 是一项新功能,仍应被视为一项 Beta 功能。它允许检索有关当前在集群中的一个或多个节点上执行的任务的信息。

它仍处于测试版本,因此目前使用它您只能执行以下操作 -

  1. 可以使用 检索特定任务的信息GET /_tasks/<task_id>,您还可以使用详细的请求参数来获取有关正在运行的任务的更多信息(您也可以根据支持使用其他参数)

  2. 还可以使用listtasks 命令的版本来列出任务,该命令接受与标准 listtasks 命令相同的参数。GET _cat/tasks

  3. 如果长时间运行的任务支持取消,则可以使用取消任务API取消它,POST _tasks/oTUltX4IQMOUUVeiohTt8A:12345/_cancel

  4. 任务可以分组GET _tasks?group_by=parents