《Elastic Stack 实战手册》——三、产品能力——3.5 进阶篇——3.5.13.Transform (2) https://developer.aliyun.com/article/1228176
任务维护
任务监控
任务在持续执行的过程中监控任务状态是必不可少的,我们可以使用如下 GET 请求获取任务状态。
GET _transform/<transform_id>/_stats?from=0&size=100 #1
其中 可以填1个或多个(逗号分割)任务 ID,也可以使用*模糊查找,同样可以不填或者使用 _all搜索全部任务。请求可以使用from和size实现分页,from默认是0size默认是100。请求非返回如下:
{ "count" : 1, # 结果总数 "transforms" : [ { "id" : "ecommerce-customer-transform", # 1 "state" : "started", # 2 "node" : { # 3 "id" : "cpTIGMsVQ8Gqwqlxxxxxxx", "name" : "my.home", "ephemeral_id" : "5-L21nFsQxxxxxxxxxx-xx", "transport_address" : "127.0.0.1:9300", "attributes" : { } }, "stats" : { # 4 "pages_processed" : 78, "documents_processed" : 6027, "documents_indexed" : 68, "trigger_count" : 168, "index_time_in_ms" : 412, "index_total" : 20, "index_failures" : 0, "search_time_in_ms" : 353, "search_total" : 78, "search_failures" : 0, "processing_time_in_ms" : 8, "processing_total" : 78, "exponential_avg_checkpoint_duration_ms" : 97.30637923893185, "exponential_avg_documents_indexed" : 2.2064915040974062, "exponential_avg_documents_processed" : 179.89419945785045 }, "checkpointing" : { #5 "last" : { "checkpoint" : 20, "timestamp_millis" : 1585344558220, "time_upper_bound_millis" : 1585344498220 }, "changes_last_detected_at" : 1585344558219 } } ] }
响应结果首先会用count字段显示匹配的任务总数,然后用transforms数组枚举各个任务,每个任务由以下信息构成:
1、id(#1)任务 ID
2、state(#2)任务状态枚举值,可能有以下几种:
l aborting: 异常中止。
l failed: 失败,有关失败的更多信息,请检查reason字段。
l indexing: 任务执行中,正在处理数据并创建新文档。
l started: 任务正常运行,但未处理数据。
l stopped: 任务已停止,一次性任务执行完成则会进入该状态。
3、stopping: 任务已暂停,一般是周期任务被手动停止。
l node(#3):开启transform的节点列表,每个节点有以下信息:
l id:节点的唯一标识符。
l ephemeral_id:节点临时 ID。
l attributes:节点的属性列表。
l name:节点名称。
l transport_address:接受传输 HTTP 连接的主机和端口。
4、stats(#4):提供有 Transform 任务统计信息的对象,主要有以下信息:
l documents_indexed:(long型) 已写入目标索引的文档数。
l documents_processed:(long型) 源索引已处理的文档数。
l exponential_avg_checkpoint_duration_ms:(double型) 每次任务平均耗时,以毫秒为单位。
l exponential_avg_documents_indexed:(double型) 每次任务平均写入新索引的文档数。
l exponential_avg_documents_processed:(double型) 每次任务平均处理的源索引的文档数。
l index_failures:(long型)插入文档失败的次数。
l index_time_in_ms:(long型)插入文档花费的时间,以毫秒为单位。
l index_total:(long型) 创建的索引数。
l pages_processed:(long型) 搜索或批量插入操作的次数。文档是批量处理的,而不是单独处理的。
l processing_time_in_ms:(long型)处理结果所花费的时间,以毫秒为单位。
l processing_total:(long型)处理操作的数量。
l search_failures:(long型)搜索失败的次数。
l search_time_in_ms:(long型)搜索所花费的时间,以毫秒为单位。
l search_total:(long型)在源索引上执行搜索操作的数。
l trigger_count:(long型)调度程序触发任务的次数。与frequency属性中指定的时间间隔检有关。
5、checkpointing(#5),任务检查点的信息,每次任务执行完且源索引有数据变更时产生检查点。
l changes_last_detected_at:(日期)上次在源索引中检测到更改的时间戳。
l last:(对象),上一个检查点的信息。
○ checkpoint:(整数)检查点的序列号。
○ time_upper_bound_millis:(date) 使用基于时间的同步时,此时间戳表示检查点中包含的数据的上限。
○ timestamp_millis:(日期)检查点创建的时间戳。
l next:(对象)包含当前正在进行的下一个检查点的统计信息。此对象仅在转换state为时出现indexing。具体内容比last对象多一个checkpoint_progress属性,包含有关检查点进度的统计信息。该属性仅出现于一次性任务或连续任务的第一个检查点。它含有了total_docs,docs_remaining,percent_complete,docs_processed,和docs_indexed。
l operations_behind:(整数)已在源索引上发生但尚未应用于目标索引的操作数。该值较高表示任务处理未能跟上。一次性任务一般此值较高。
6、reason,如果任务的状态为failed,则此属性提供有关失败原因的详细信息。
任务暂停
由于各种原因,有将持续执行的 Transforms 任务临时暂停的需求,请求如下:
POST _transform//_stop?force=true&timeout=30s&wait_for_completion=true&wait_for_checkpoint=true
其中请求路径中 为任务 id,可一次配置多值或用_all暂停全部。请求还接受以下4个请求参数:
1、force,可选,布尔值,设置为true停止失败的任务或强制停止未响应初始停止请求的任务。
2、wait_for_completion,可选,布尔值,如果设置为true,则API在得到响应前会阻塞,直到任务完全停止。如false,则 API 立即返回,索引器将在后台异步停止。默认为false。
3、timeout,可选,时间值,如果wait_for_completion=true,API 会在(最多)指定的持续时间内阻塞,同时等待任务停止。如果超过timeout时间,API 将抛出超时异常,但停止请求仍在进行知道任务变为STOPPED状态。超时只是意味着 API 调用本身在等待状态更改时超时。默认为30s。
4、wait_for_checkpoint,可选,布尔值,如果设置为true,则在当前正在执行的任务完成之前不会完全停止。如果设置为false,任务会尽快停止。默认为false。
《Elastic Stack 实战手册》——三、产品能力——3.5 进阶篇——3.5.13.Transform (4) https://developer.aliyun.com/article/1228170