2017-10-10 09:41:24 -04:00
|
|
|
[role="xpack"]
|
2018-08-31 19:49:24 -04:00
|
|
|
[testenv="platinum"]
|
2017-10-10 09:41:24 -04:00
|
|
|
[[ml-get-overall-buckets]]
|
2018-12-20 13:23:28 -05:00
|
|
|
=== Get overall buckets API
|
2017-12-14 13:52:49 -05:00
|
|
|
++++
|
2018-12-20 13:23:28 -05:00
|
|
|
<titleabbrev>Get overall buckets</titleabbrev>
|
2017-12-14 13:52:49 -05:00
|
|
|
++++
|
2017-10-10 09:41:24 -04:00
|
|
|
|
2018-06-13 16:37:35 -04:00
|
|
|
Retrieves overall bucket results that summarize the
|
2018-01-15 11:44:08 -05:00
|
|
|
bucket results of multiple jobs.
|
2017-10-10 09:41:24 -04:00
|
|
|
|
2019-06-27 12:42:47 -04:00
|
|
|
[[ml-get-overall-buckets-request]]
|
|
|
|
==== {api-request-title}
|
2017-10-10 09:41:24 -04:00
|
|
|
|
2018-12-07 15:34:11 -05:00
|
|
|
`GET _ml/anomaly_detectors/<job_id>/results/overall_buckets` +
|
2017-10-11 11:24:09 -04:00
|
|
|
|
2018-12-07 15:34:11 -05:00
|
|
|
`GET _ml/anomaly_detectors/<job_id>,<job_id>/results/overall_buckets` +
|
2017-10-11 11:24:09 -04:00
|
|
|
|
2018-12-07 15:34:11 -05:00
|
|
|
`GET _ml/anomaly_detectors/_all/results/overall_buckets`
|
2017-10-10 09:41:24 -04:00
|
|
|
|
2019-06-27 16:58:42 -04:00
|
|
|
[[ml-get-overall-buckets-prereqs]]
|
|
|
|
==== {api-prereq-title}
|
|
|
|
|
|
|
|
* If the {es} {security-features} are enabled, you must have `monitor_ml`,
|
|
|
|
`monitor`, `manage_ml`, or `manage` cluster privileges to use this API. You also
|
|
|
|
need `read` index privilege on the index that stores the results. The
|
|
|
|
`machine_learning_admin` and `machine_learning_user` roles provide these
|
|
|
|
privileges. See {stack-ov}/security-privileges.html[Security privileges] and
|
|
|
|
{stack-ov}/built-in-roles.html[Built-in roles].
|
|
|
|
|
2019-06-27 12:42:47 -04:00
|
|
|
[[ml-get-overall-buckets-desc]]
|
|
|
|
==== {api-description-title}
|
2017-10-10 09:41:24 -04:00
|
|
|
|
2017-10-11 11:24:09 -04:00
|
|
|
You can summarize the bucket results for all jobs by using `_all` or by
|
|
|
|
specifying `*` as the `<job_id>`.
|
2017-10-10 09:41:24 -04:00
|
|
|
|
2017-10-11 11:24:09 -04:00
|
|
|
An overall bucket has a span equal to the largest `bucket_span` value for the
|
|
|
|
specified jobs.
|
|
|
|
|
|
|
|
The `overall_score` is calculated by combining the scores of all
|
|
|
|
the buckets within the overall bucket span. First, the maximum `anomaly_score` per
|
|
|
|
job in the overall bucket is calculated. Then the `top_n` of those scores are
|
|
|
|
averaged to result in the `overall_score`. This means that you can fine-tune
|
|
|
|
the `overall_score` so that it is more or less sensitive to the number
|
|
|
|
of jobs that detect an anomaly at the same time. For example, if you set `top_n`
|
|
|
|
to `1`, the `overall_score` is the maximum bucket
|
|
|
|
score in the overall bucket. Alternatively, if you set `top_n` to the number of
|
|
|
|
jobs, the `overall_score` is high only when all jobs detect anomalies in that
|
|
|
|
overall bucket.
|
2017-10-10 09:41:24 -04:00
|
|
|
|
2017-10-27 06:14:13 -04:00
|
|
|
In addition, the optional parameter `bucket_span` may be used in order
|
|
|
|
to request overall buckets that span longer than the largest job's `bucket_span`.
|
|
|
|
When set, the `overall_score` will be the max `overall_score` of the corresponding
|
|
|
|
overall buckets with a span equal to the largest job's `bucket_span`.
|
|
|
|
|
2019-06-27 12:42:47 -04:00
|
|
|
[[ml-get-overall-buckets-path-parms]]
|
|
|
|
==== {api-path-parms-title}
|
2017-10-10 09:41:24 -04:00
|
|
|
|
2019-06-27 16:58:42 -04:00
|
|
|
`<job_id>` (Required)::
|
2017-10-11 11:24:09 -04:00
|
|
|
(string) Identifier for the job. It can be a job identifier, a group name, a
|
|
|
|
comma-separated list of jobs or groups, or a wildcard expression.
|
2017-10-10 09:41:24 -04:00
|
|
|
|
2019-06-27 12:42:47 -04:00
|
|
|
[[ml-get-overall-buckets-request-body]]
|
|
|
|
==== {api-request-body-title}
|
2017-10-10 09:41:24 -04:00
|
|
|
|
2019-06-27 16:58:42 -04:00
|
|
|
`allow_no_jobs` (Optional)::
|
2017-10-11 11:24:09 -04:00
|
|
|
(boolean) If `false` and the `job_id` does not match any job an error will
|
|
|
|
be returned. The default value is `true`.
|
2017-10-10 09:41:24 -04:00
|
|
|
|
2019-06-27 16:58:42 -04:00
|
|
|
`bucket_span` (Optional)::
|
2017-10-27 06:14:13 -04:00
|
|
|
(string) The span of the overall buckets. Must be greater or equal
|
|
|
|
to the largest job's `bucket_span`. Defaults to the largest job's `bucket_span`.
|
|
|
|
|
2019-06-27 16:58:42 -04:00
|
|
|
`end` (Optional)::
|
2017-10-11 11:24:09 -04:00
|
|
|
(string) Returns overall buckets with timestamps earlier than this time.
|
2017-10-10 09:41:24 -04:00
|
|
|
|
2019-06-27 16:58:42 -04:00
|
|
|
`exclude_interim` (Optional)::
|
2017-10-11 11:24:09 -04:00
|
|
|
(boolean) If `true`, the output excludes interim overall buckets.
|
2017-10-10 09:41:24 -04:00
|
|
|
Overall buckets are interim if any of the job buckets within
|
2017-10-11 11:24:09 -04:00
|
|
|
the overall bucket interval are interim.
|
2017-10-10 09:41:24 -04:00
|
|
|
By default, interim results are included.
|
|
|
|
|
2019-06-27 16:58:42 -04:00
|
|
|
`overall_score` (Optional)::
|
|
|
|
(double) Returns overall buckets with overall scores greater or equal than
|
|
|
|
this value.
|
2017-10-11 11:24:09 -04:00
|
|
|
|
2019-06-27 16:58:42 -04:00
|
|
|
`start` (Optional)::
|
2017-10-10 09:41:24 -04:00
|
|
|
(string) Returns overall buckets with timestamps after this time.
|
|
|
|
|
2019-06-27 16:58:42 -04:00
|
|
|
`top_n` (Optional)::
|
2017-10-11 11:24:09 -04:00
|
|
|
(integer) The number of top job bucket scores to be used in the
|
|
|
|
`overall_score` calculation. The default value is `1`.
|
2017-10-10 09:41:24 -04:00
|
|
|
|
2019-06-27 12:42:47 -04:00
|
|
|
[[ml-get-overall-buckets-results]]
|
|
|
|
==== {api-response-body-title}
|
2017-10-10 09:41:24 -04:00
|
|
|
|
|
|
|
The API returns the following information:
|
|
|
|
|
|
|
|
`overall_buckets`::
|
|
|
|
(array) An array of overall bucket objects. For more information, see
|
|
|
|
<<ml-results-overall-buckets,Overall Buckets>>.
|
|
|
|
|
2019-06-27 12:42:47 -04:00
|
|
|
[[ml-get-overall-buckets-example]]
|
|
|
|
==== {api-examples-title}
|
2017-10-10 09:41:24 -04:00
|
|
|
|
|
|
|
The following example gets overall buckets for jobs with IDs matching `job-*`:
|
|
|
|
|
|
|
|
[source,js]
|
|
|
|
--------------------------------------------------
|
2018-12-07 15:34:11 -05:00
|
|
|
GET _ml/anomaly_detectors/job-*/results/overall_buckets
|
2017-10-10 09:41:24 -04:00
|
|
|
{
|
2017-12-08 11:03:51 -05:00
|
|
|
"overall_score": 80,
|
2017-10-10 09:41:24 -04:00
|
|
|
"start": "1403532000000"
|
|
|
|
}
|
|
|
|
--------------------------------------------------
|
|
|
|
// CONSOLE
|
|
|
|
// TEST[skip:todo]
|
|
|
|
|
|
|
|
In this example, the API returns a single result that matches the specified
|
2017-12-08 11:03:51 -05:00
|
|
|
score and time constraints. The `overall_score` is the max job score as
|
|
|
|
`top_n` defaults to 1 when not specified:
|
2017-10-10 09:41:24 -04:00
|
|
|
[source,js]
|
|
|
|
----
|
|
|
|
{
|
|
|
|
"count": 1,
|
|
|
|
"overall_buckets": [
|
|
|
|
{
|
|
|
|
"timestamp" : 1403532000000,
|
|
|
|
"bucket_span" : 3600,
|
2017-12-08 11:03:51 -05:00
|
|
|
"overall_score" : 80.0,
|
|
|
|
"jobs" : [
|
|
|
|
{
|
|
|
|
"job_id" : "job-1",
|
|
|
|
"max_anomaly_score" : 30.0
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"job_id" : "job-2",
|
|
|
|
"max_anomaly_score" : 10.0
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"job_id" : "job-3",
|
|
|
|
"max_anomaly_score" : 80.0
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"is_interim" : false,
|
|
|
|
"result_type" : "overall_bucket"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
----
|
|
|
|
|
|
|
|
The next example is similar but this time `top_n` is set to `2`:
|
|
|
|
|
|
|
|
[source,js]
|
|
|
|
--------------------------------------------------
|
2018-12-07 15:34:11 -05:00
|
|
|
GET _ml/anomaly_detectors/job-*/results/overall_buckets
|
2017-12-08 11:03:51 -05:00
|
|
|
{
|
|
|
|
"top_n": 2,
|
|
|
|
"overall_score": 50.0,
|
|
|
|
"start": "1403532000000"
|
|
|
|
}
|
|
|
|
--------------------------------------------------
|
|
|
|
// CONSOLE
|
|
|
|
// TEST[skip:todo]
|
|
|
|
|
|
|
|
Note how the `overall_score` is now the average of the top 2 job scores:
|
|
|
|
[source,js]
|
|
|
|
----
|
|
|
|
{
|
|
|
|
"count": 1,
|
|
|
|
"overall_buckets": [
|
|
|
|
{
|
|
|
|
"timestamp" : 1403532000000,
|
|
|
|
"bucket_span" : 3600,
|
|
|
|
"overall_score" : 55.0,
|
2017-10-10 09:41:24 -04:00
|
|
|
"jobs" : [
|
|
|
|
{
|
|
|
|
"job_id" : "job-1",
|
|
|
|
"max_anomaly_score" : 30.0
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"job_id" : "job-2",
|
|
|
|
"max_anomaly_score" : 10.0
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"job_id" : "job-3",
|
|
|
|
"max_anomaly_score" : 80.0
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"is_interim" : false,
|
|
|
|
"result_type" : "overall_bucket"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
----
|