获取数据馈送统计信息 API

编辑

检索数据馈送的使用信息。

请求

编辑

GET _ml/datafeeds/<feed_id>/_stats

GET _ml/datafeeds/<feed_id>,<feed_id>/_stats

GET _ml/datafeeds/_stats

GET _ml/datafeeds/_all/_stats

先决条件

编辑

需要 monitor_ml 集群权限。此权限包含在 machine_learning_user 内置角色中。

描述

编辑

如果数据馈送已停止,您收到的唯一信息是 datafeed_idstate

此 API 最多返回 10,000 个数据馈送。

路径参数

编辑
<feed_id>

(可选,字符串)数据馈送的标识符。它可以是数据馈送标识符或通配符表达式。

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

查询参数

编辑
allow_no_match

(可选,布尔值)指定当请求

  • 包含通配符表达式且没有匹配的数据馈送时该如何处理。
  • 包含 _all 字符串或没有标识符且没有匹配项时该如何处理。
  • 包含通配符表达式且只有部分匹配项时该如何处理。

默认值为 true,当没有匹配项时返回空的 datafeeds 数组,当有部分匹配项时返回结果子集。如果此参数为 false,则当没有匹配项或只有部分匹配项时,请求将返回 404 状态代码。

响应体

编辑

API 返回数据馈送计数对象数组。所有这些属性都是信息性的;您不能更新它们的值。

assignment_explanation
(字符串)仅对于已启动的数据馈送,包含与节点选择相关的消息。
datafeed_id
(字符串)唯一标识数据馈送的数字字符串。此标识符可以包含小写字母数字字符(a-z 和 0-9)、连字符和下划线。它必须以字母数字字符开头和结尾。
node

(对象)仅对于已启动的数据馈送,此信息与数据馈送启动所在的节点有关。

详细信息
attributes
(对象)列出节点属性,例如 ml.machine_memoryml.max_open_jobs 设置。
ephemeral_id
(字符串)节点的临时 ID。
id
(字符串)节点的唯一标识符。
name
(字符串)节点名称。例如,0-o0tOo
transport_address
(字符串)接受传输 HTTP 连接的主机和端口。
running_state

(对象)包含此数据馈送运行状态的对象。仅当数据馈送已启动时才提供此对象。

详细信息
real_time_configured
(布尔值)指示数据馈送是否为“实时”;这意味着数据馈送没有配置 end 时间。
real_time_running
(布尔值)指示数据馈送是否已完成对可用历史数据的运行。对于没有配置 end 时间的数据馈送,这意味着数据馈送现在正在“实时”数据上运行。
search_interval

(可选,对象)提供数据馈送已搜索的最新时间间隔。

详细信息
start_ms
开始时间,以毫秒为单位的纪元时间。
end_ms
结束时间,以毫秒为单位的纪元时间。
state

(字符串)数据馈送的状态,可以是以下值之一

  • starting:已请求启动数据馈送,但尚未启动。
  • started:数据馈送正在主动接收数据。
  • stopping:已请求数据馈送正常停止,并且正在完成其最终操作。
  • stopped:数据馈送已停止,并且在重新启动之前不会接收数据。
timing_stats

(对象)提供有关此数据馈送定时方面的统计信息的对象。

详细信息
average_search_time_per_bucket_ms
(双精度)每个桶的平均搜索时间,以毫秒为单位。
bucket_count
(长整型)已处理的桶数。
exponential_average_search_time_per_hour_ms
(双精度)每小时的指数平均搜索时间,以毫秒为单位。
job_id
异常检测作业的标识符。
search_count
数据馈送运行的搜索次数。
total_search_time_ms
数据馈送花费在搜索上的总时间,以毫秒为单位。

响应代码

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

示例

编辑
resp = client.ml.get_datafeed_stats(
    datafeed_id="datafeed-high_sum_total_sales",
)
print(resp)
response = client.ml.get_datafeed_stats(
  datafeed_id: 'datafeed-high_sum_total_sales'
)
puts response
const response = await client.ml.getDatafeedStats({
  datafeed_id: "datafeed-high_sum_total_sales",
});
console.log(response);
GET _ml/datafeeds/datafeed-high_sum_total_sales/_stats

API 返回以下结果

{
  "count" : 1,
  "datafeeds" : [
    {
      "datafeed_id" : "datafeed-high_sum_total_sales",
      "state" : "started",
      "node" : {
        "id" : "7bmMXyWCRs-TuPfGJJ_yMw",
        "name" : "node-0",
        "ephemeral_id" : "hoXMLZB0RWKfR9UPPUCxXX",
        "transport_address" : "127.0.0.1:9300",
        "attributes" : {
          "ml.machine_memory" : "17179869184",
          "ml.max_open_jobs" : "512"
        }
      },
      "assignment_explanation" : "",
      "timing_stats" : {
        "job_id" : "high_sum_total_sales",
        "search_count" : 7,
        "bucket_count" : 743,
        "total_search_time_ms" : 134.0,
        "average_search_time_per_bucket_ms" : 0.180349932705249,
        "exponential_average_search_time_per_hour_ms" : 11.514712961628677
      }
    }
  ]
}