Retrieves overall bucket results that summarize the bucket results of multiple jobs.
GET _ml/anomaly_detectors/<job_id>/results/overall_buckets
GET _ml/anomaly_detectors/<job_id>,<job_id>/results/overall_buckets
GET _ml/anomaly_detectors/_all/results/overall_buckets
You can summarize the bucket results for all jobs by using _all
or by
specifying *
as the <job_id>
.
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.
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
.
job_id
allow_no_jobs
false
and the job_id
does not match any job an error will
be returned. The default value is true
.
bucket_span
bucket_span
. Defaults to the largest job’s bucket_span
.
end
exclude_interim
true
, the output excludes interim overall buckets.
Overall buckets are interim if any of the job buckets within
the overall bucket interval are interim.
By default, interim results are included.
overall_score
start
top_n
overall_score
calculation. The default value is 1
.
The API returns the following information:
overall_buckets
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. For more information, see
Security Privileges and
Built-in Roles.
The following example gets overall buckets for jobs with IDs matching job-*
:
GET _ml/anomaly_detectors/job-*/results/overall_buckets { "overall_score": 80, "start": "1403532000000" }
In this example, the API returns a single result that matches the specified
score and time constraints. The overall_score
is the max job score as
top_n
defaults to 1 when not specified:
{ "count": 1, "overall_buckets": [ { "timestamp" : 1403532000000, "bucket_span" : 3600, "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
:
GET _ml/anomaly_detectors/job-*/results/overall_buckets { "top_n": 2, "overall_score": 50.0, "start": "1403532000000" }
Note how the overall_score
is now the average of the top 2 job scores:
{ "count": 1, "overall_buckets": [ { "timestamp" : 1403532000000, "bucket_span" : 3600, "overall_score" : 55.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" } ] }