获取桶 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

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

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

示例编辑

response = client.ml.get_buckets(
  job_id: 'low_request_rate',
  body: {
    anomaly_score: 80,
    start: '1454530200001'
  }
)
puts 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"
    }
  ]
}