获取桶 API

编辑

检索一个或多个桶的异常检测作业结果。

请求

编辑

GET _ml/anomaly_detectors/<job_id>/results/buckets

GET _ml/anomaly_detectors/<job_id>/results/buckets/<timestamp>

先决条件

编辑

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

描述

编辑

获取桶 API 呈现按桶分组的记录的时间顺序视图。

路径参数

编辑
<job_id>
(必需,字符串)异常检测作业的标识符。
<timestamp>
(可选,字符串)单个桶结果的时间戳。如果未指定此参数,API 将返回有关所有桶的信息。

查询参数

编辑
anomaly_score
(可选,双精度)返回异常得分大于或等于此值的桶。默认为 0.0
desc
(可选,布尔值)如果为 true,则桶按降序排序。默认为 false
end
(可选,字符串)返回时间戳早于此时间的桶。默认为 -1,表示未设置,结果不限于特定时间戳。
exclude_interim
(可选,布尔值)如果为 true,则输出将排除中间结果。默认为 false,表示包含中间结果。
expand
(可选,布尔值)如果为 true,则输出将包含异常记录。默认为 false
from
(可选,整数)跳过指定数量的桶。默认为 0
size
(可选,整数)指定要获取的最大桶数。默认为 100
sort
(可选,字符串)指定请求的桶的排序字段。默认情况下,桶按 timestamp 字段排序。
start
(可选,字符串)返回时间戳晚于此时间的桶。默认为 -1,表示未设置,结果不限于特定时间戳。

请求体

编辑

您也可以在请求体中指定查询参数;例外的是 fromsize,请改用 page

page
page 的属性
from
(可选,整数)跳过指定数量的桶。默认为 0
size
(可选,整数)指定要获取的最大桶数。默认为 100

响应体

编辑

API 返回一个桶对象数组,这些对象具有以下属性

anomaly_score
(数字)任何桶影响因素的最大异常得分,介于 0-100 之间。这是作业的整体、速率限制的得分。桶中的所有异常记录都会影响此得分。随着分析新数据,此值可能会更新。
bucket_influencers

(数组)桶影响因素对象数组。

bucket_influencers 的属性
anomaly_score
(数字)为每个桶影响因素计算的介于 0-100 之间的归一化得分。随着分析更新的数据,此得分可能会更新。
bucket_span
(数字)桶的长度,以秒为单位。此值与作业中指定的 bucket_span 匹配。
influencer_field_name
(字符串)影响因素的字段名称。
initial_anomaly_score
(数字)每个桶影响因素的得分,介于 0-100 之间。此得分是在处理桶时计算的初始值。
is_interim
(布尔值)如果为 true,则这是一个中间结果。换句话说,结果是根据部分输入数据计算得出的。
job_id
(字符串)异常检测作业的标识符。
probability
(数字)桶具有此行为的概率,范围为 0 到 1。此值可以保持超过 300 位小数的高精度,因此 anomaly_score 作为对此值的可读和友好的解释提供。
raw_anomaly_score
(数字)内部。
result_type
(字符串)内部。此值始终设置为 bucket_influencer
timestamp
(日期)计算这些结果的桶的开始时间。
bucket_span
(数字)桶的长度,以秒为单位。此值与作业中指定的 bucket_span 匹配。
event_count
(数字)在此桶中处理的输入数据记录数。
initial_anomaly_score
(数字)任何桶影响因素的最大 anomaly_score。这是在处理桶时计算的初始值。
is_interim
(布尔值)如果为 true,则这是一个中间结果。换句话说,结果是根据部分输入数据计算得出的。
job_id
(字符串)异常检测作业的标识符。
processing_time_ms
(数字)分析桶内容和计算结果所花费的时间,以毫秒为单位。
result_type
(字符串)内部。此值始终设置为 bucket
timestamp

(日期)桶的开始时间。此时间戳唯一标识桶。

在桶的时间戳精确发生的事件包含在桶的结果中。

示例

编辑
resp = client.ml.get_buckets(
    job_id="low_request_rate",
    anomaly_score=80,
    start="1454530200001",
)
print(resp)
response = client.ml.get_buckets(
  job_id: 'low_request_rate',
  body: {
    anomaly_score: 80,
    start: '1454530200001'
  }
)
puts response
const response = await client.ml.getBuckets({
  job_id: "low_request_rate",
  anomaly_score: 80,
  start: 1454530200001,
});
console.log(response);
GET _ml/anomaly_detectors/low_request_rate/results/buckets
{
  "anomaly_score": 80,
  "start": "1454530200001"
}

在此示例中,API 返回与指定的得分和时间约束匹配的单个结果

{
  "count" : 1,
  "buckets" : [
    {
      "job_id" : "low_request_rate",
      "timestamp" : 1578398400000,
      "anomaly_score" : 91.58505459594764,
      "bucket_span" : 3600,
      "initial_anomaly_score" : 91.58505459594764,
      "event_count" : 0,
      "is_interim" : false,
      "bucket_influencers" : [
        {
          "job_id" : "low_request_rate",
          "result_type" : "bucket_influencer",
          "influencer_field_name" : "bucket_time",
          "initial_anomaly_score" : 91.58505459594764,
          "anomaly_score" : 91.58505459594764,
          "raw_anomaly_score" : 0.5758246639716365,
          "probability" : 1.7340849573442696E-4,
          "timestamp" : 1578398400000,
          "bucket_span" : 3600,
          "is_interim" : false
        }
      ],
      "processing_time_ms" : 0,
      "result_type" : "bucket"
    }
  ]
}