获取转换统计信息 API

编辑

检索转换的使用信息。

请求

编辑

GET _transform/<transform_id>/_stats

GET _transform/<transform_id>,<transform_id>/_stats

GET _transform/_stats

GET _transform/_all/_stats

GET _transform/*/_stats

前提条件

编辑

需要以下权限

  • 集群:monitor_transformtransform_user 内置角色授予此权限)
  • 目标索引:readview_index_metadata

描述

编辑

您可以通过使用逗号分隔的标识符列表或通配符表达式,在单个 API 请求中获取多个转换的统计信息。您可以通过使用 _all、指定 * 作为 <transform_id> 或省略 <transform_id> 来获取所有转换的统计信息。

路径参数

编辑
<transform_id>
(可选,字符串) 转换的标识符。它可以是转换标识符或通配符表达式。如果您不指定这些选项中的任何一个,则 API 将返回所有转换的信息。

查询参数

编辑
allow_no_match

(可选,布尔值) 指定当请求时要执行的操作

  • 包含通配符表达式,但没有匹配的转换。
  • 包含 _all 字符串或没有标识符,且没有匹配项。
  • 包含通配符表达式,但只有部分匹配。

默认值为 true,当没有匹配项时返回一个空的 transforms 数组,当只有部分匹配项时返回结果的子集。

如果此参数为 false,则当没有匹配项或只有部分匹配项时,请求将返回 404 状态码。

from
(可选,整数) 跳过指定数量的转换。默认值为 0
size
(可选,整数) 指定要获取的最大转换数。默认值为 100

响应主体

编辑

该 API 返回转换统计信息对象的数组,这些对象按 id 值升序排序。所有这些属性都是信息性的;您无法更新其值。

checkpointing

(对象) 包含有关 检查点 的统计信息。

checkpointing 的属性
changes_last_detected_at
(日期) 上次在源索引中检测到更改的时间戳。
last

(对象) 包含有关上次完成的检查点的统计信息。

last 的属性
checkpoint
(整数) 检查点的序列号。
time_upper_bound_millis
(日期) 当使用基于时间的同步时,此时间戳指示检查点中包含的数据的上限。
timestamp_millis
(日期) 检查点的时间戳,指示检查点的创建时间。
last_search_time
(日期) 源索引中上次搜索的时间戳。仅当转换正在运行时才显示此字段。
next

(对象) 包含有关当前正在进行的下一个检查点的统计信息。仅当转换的 stateindexing 时,才会显示此对象。

next 的属性
checkpoint
(整数) 检查点的序列号。
checkpoint_progress
(对象) 包含有关检查点进度的统计信息。例如,它列出了 total_docsdocs_remainingpercent_completedocs_processeddocs_indexed。此信息仅适用于批量转换和连续转换的第一个检查点。
time_upper_bound_millis
(日期) 当使用基于时间的同步时,此时间戳指示检查点中包含的数据的上限。
timestamp_millis
(日期) 检查点的时间戳,指示检查点的创建时间。
operations_behind
(整数) 源索引上已发生但尚未应用于目标索引的操作数。一个大的数字可能表示转换无法跟上。
health

(对象) 此转换的运行状况指示器。

health 的属性
status

(字符串) 此转换的运行状况状态。状态为

  • green: 转换是健康的。
  • unknown:无法确定转换的运行状况。
  • yellow:转换的功能处于降级状态,可能需要修复以避免运行状况变为 red
  • red:转换正在经历中断或无法使用。
issues

(可选,数组) 如果返回非健康状态,则包含转换问题的列表。

issues 的属性
issue
(字符串) 问题的描述。
details
(可选,字符串) 有关问题的详细信息。
count
(整数) 自问题开始以来发生的次数。
first_occurrence
(可选,日期) 此问题首次发生的时间戳。
id
(字符串) 转换的标识符。
node

(对象) 仅对于已启动的转换,转换在其上启动的节点。

node 的属性
attributes
(对象) 节点的属性列表。
ephemeral_id
(字符串) 节点的临时 ID。
id
(字符串) 节点的唯一标识符。例如,“0-o0tOoRTwKFZifatTWKNw”。
name
(字符串) 节点名称。例如,0-o0tOo
transport_address
(字符串) 接受传输 HTTP 连接的主机和端口。例如,127.0.0.1:9300
reason
(字符串) 如果转换具有 failed 状态,则此属性提供有关失败原因的详细信息。
state

(字符串) 转换的状态,它可以是以下值之一

  • aborting: 转换正在中止。
  • failed: 转换失败。有关失败的更多信息,请查看 reason 字段。
  • indexing: 转换正在积极处理数据并创建新文档。
  • started: 转换正在运行,但未主动索引数据。
  • stopped: 转换已停止。
  • stopping: 转换正在停止。
stats

(对象) 提供有关转换的统计信息的对象。

stats 的属性
delete_time_in_ms
(长整数) 删除所花费的时间,以毫秒为单位。
documents_deleted
(长整数) 由于此转换的保留策略,已从目标索引中删除的文档数。
documents_indexed
(长整数) 已为转换索引到目标索引中的文档数。
documents_processed
(长整数) 已从转换的源索引处理的文档数。
exponential_avg_checkpoint_duration_ms
(双精度) 检查点持续时间的指数移动平均值,以毫秒为单位。
exponential_avg_documents_indexed
(双精度) 已索引的新文档数的指数移动平均值。
exponential_avg_documents_processed
(双精度) 已处理的文档数的指数移动平均值。
index_failures
(长整数) 索引失败的次数。
index_time_in_ms
(长整数) 索引所花费的时间,以毫秒为单位。
index_total
(长整数) 索引操作的次数。
pages_processed
(长整数) 处理的搜索或批量索引操作的次数。文档是批量处理而不是单独处理的。
processing_time_in_ms
(长整数) 处理结果所花费的时间,以毫秒为单位。
processing_total
(长整数) 处理操作的次数。
search_failures
(长整数) 搜索失败的次数。
search_time_in_ms
(长整数) 搜索所花费的时间,以毫秒为单位。
search_total
(长整数) 对转换的源索引执行的搜索操作数。
trigger_count
(长整数) 调度程序触发转换的次数。例如,调度程序会触发转换索引器,以按照 frequency 属性中指定的间隔检查更新或摄取新数据。

响应代码

编辑
404 (缺少资源)
如果 allow_no_matchfalse,则此代码表示没有与请求匹配的资源,或者只有部分匹配请求的资源。

示例

编辑

以下示例跳过前五个转换,并获取最多十个结果的使用信息

resp = client.transform.get_transform(
    transform_id="_stats",
    from_="5",
    size="10",
)
print(resp)
response = client.transform.get_transform(
  transform_id: '_stats',
  from: 5,
  size: 10
)
puts response
const response = await client.transform.getTransform({
  transform_id: "_stats",
  from: 5,
  size: 10,
});
console.log(response);
GET _transform/_stats?from=5&size=10

以下示例获取转换的使用信息

resp = client.transform.get_transform_stats(
    transform_id="ecommerce-customer-transform",
)
print(resp)
response = client.transform.get_transform_stats(
  transform_id: 'ecommerce-customer-transform'
)
puts response
const response = await client.transform.getTransformStats({
  transform_id: "ecommerce-customer-transform",
});
console.log(response);
GET _transform/ecommerce-customer-transform/_stats

API 返回以下结果

{
  "count" : 1,
  "transforms" : [
    {
      "id" : "ecommerce-customer-transform",
      "state" : "started",
      "node" : {
        "id" : "cpTIGMsVQ8Gqwqlxxxxxxx",
        "name" : "my.home",
        "ephemeral_id" : "5-L21nFsQxxxxxxxxxx-xx",
        "transport_address" : "127.0.0.1:9300",
        "attributes" : { }
      },
      "stats" : {
        "pages_processed" : 78,
        "documents_processed" : 6027,
        "documents_indexed" : 68,
        "documents_deleted": 22,
        "delete_time_in_ms": 214,
        "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" : {
        "last" : {
          "checkpoint" : 20,
          "timestamp_millis" : 1585344558220,
          "time_upper_bound_millis" : 1585344498220
        },
        "changes_last_detected_at" : 1585344558219
      },
      "health": {
        "status": "green"
      }
    }
  ]
}