API получения общих бакетов
Получает результаты общих бакетов, которые обобщают результаты бакетов нескольких задач обнаружения аномалий.
Запрос
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
Предварительные условия
Требуется привилегия кластера monitor_ml. Эта привилегия включена в встроенную роль machine_learning_user.
Описание
По умолчанию, общий бакет имеет размах, равный наибольшему размаху бакета указанных задач обнаружения аномалий. Чтобы переопределить это поведение, используйте необязательный параметр bucket_span. Чтобы узнать больше о концепции бакетов, см. Бакеты.
overall_score рассчитывается путем объединения оценок всех бакетов в рамках размаха общего бакета. Сначала вычисляется максимальная anomaly_score на задачу обнаружения аномалий в общем бакете. Затем среднее значение top_n этих оценок используется для получения overall_score. Это означает, что вы можете настроить overall_score таким образом, чтобы оно было более или менее чувствительно к количеству задач, которые обнаруживают аномалию одновременно. Например, если вы установите top_n в значение 1, то overall_score будет максимальным значением оценки бакета в общем бакете. В противном случае, если вы установите top_n в количество задач, overall_score будет высоким только тогда, когда все задачи обнаруживают аномалии в этом общем бакете. Если вы установите параметр bucket_span (в значение большее, чем по умолчанию), overall_score будет максимальным overall_score из общих бакетов, которые имеют размах, равный наибольшему размаху бакетов задач.
Параметры пути
-
<job_id> -
(Обязательный, строка) Идентификатор задачи обнаружения аномалий. Это может быть идентификатор задачи, имя группы, список задач или групп, разделенных запятыми, или выражение с подстановкой.
Вы можете обобщить результаты бакетов для всех задач обнаружения аномалий, используя
_allили указав*в качестве идентификатора задачи.
Параметры запроса
-
allow_no_match -
(Необязательный, логический) Указывает, что делать при запросе:
- Содержит подстановки и не найдено ни одной соответствующей задачи.
- Содержит строку
_allили не содержит идентификаторов и не найдено ни одной соответствующей задачи. - Содержит подстановки и найдены только частичные соответствия.
Значение по умолчанию -
true, которое возвращает пустой массивjobsпри отсутствии совпадений и подмножество результатов при частичных совпадениях. Если этот параметр равенfalse, запрос возвращает код состояния404при отсутствии совпадений или только частичных совпадениях. -
bucket_span - (Необязательный, строка) Размах общих бакетов. Должен быть больше или равен наибольшему размаху бакетов указанных задач обнаружения аномалий, что является значением по умолчанию.
-
end - (Необязательный, строка) Возвращает общие бакеты с отметками времени, предшествующими указанному моменту. По умолчанию -
-1, что означает, что он не установлен, и результаты не ограничены конкретными отметками времени. -
exclude_interim - (Необязательный, логический) Если
true, вывод исключает промежуточные общие бакеты. Общие бакеты являются промежуточными, если любой из бакетов задач в интервале общего бакета является промежуточным. По умолчанию -false, что означает, что промежуточные результаты включаются. -
overall_score - (Необязательный, двойное значение) Возвращает общие бакеты со значениями общих оценок, больше или равными этому значению. По умолчанию -
0.0. -
start - (Необязательный, строка) Возвращает общие бакеты с отметками времени после указанного момента. По умолчанию -
-1, что означает, что он не установлен, и результаты не ограничены конкретными отметками времени. -
top_n - (Необязательный, целое число) Количество лучших оценок бакетов задач обнаружения аномалий, используемых в вычислении
overall_score. По умолчанию -1.
Тело запроса
Вы также можете указать параметры запроса (например, allow_no_match и bucket_span) в теле запроса.
Тело ответа
API возвращает массив объектов общего бакета, которые имеют следующие свойства:
-
bucket_span - (число) Длина бакета в секундах. Соответствует
bucket_spanзадачи с наибольшей длиной. -
is_interim - (логический) Если
true, это промежуточный результат. Другими словами, результаты вычисляются на основе частичных входных данных. -
jobs - (массив) Массив объектов, содержащих
max_anomaly_scoreна задачуjob_id. -
overall_score - (число) Среднее
top_nмаксимальных значений оценки бакетаanomaly_scoreпо задачам. -
result_type - (строка) Внутреннее. Всегда устанавливается в значение
overall_bucket. -
timestamp - (дата) Время начала бакета, для которого были рассчитаны эти результаты.
Примеры
resp = client.ml.get_overall_buckets(
job_id="job-*",
overall_score=80,
start="1403532000000",
)
print(resp) response = client.ml.get_overall_buckets(
job_id: 'job-*',
body: {
overall_score: 80,
start: '1403532000000'
}
)
puts response const response = await client.ml.getOverallBuckets({
job_id: "job-*",
overall_score: 80,
start: 1403532000000,
});
console.log(response); GET _ml/anomaly_detectors/job-*/results/overall_buckets
{
"overall_score": 80,
"start": "1403532000000"
} В этом примере API возвращает один результат, соответствующий указанным ограничениям по оценке и времени. overall_score — это максимальная оценка задачи, так как top_n по умолчанию равно 1, если не указано иначе:
{
"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"
}
]
} Следующий пример аналогичен, но на этот раз top_n установлено в значение 2:
resp = client.ml.get_overall_buckets(
job_id="job-*",
top_n=2,
overall_score=50,
start="1403532000000",
)
print(resp) response = client.ml.get_overall_buckets(
job_id: 'job-*',
body: {
top_n: 2,
overall_score: 50,
start: '1403532000000'
}
)
puts response const response = await client.ml.getOverallBuckets({
job_id: "job-*",
top_n: 2,
overall_score: 50,
start: 1403532000000,
});
console.log(response); GET _ml/anomaly_detectors/job-*/results/overall_buckets
{
"top_n": 2,
"overall_score": 50.0,
"start": "1403532000000"
} Обратите внимание, как overall_score теперь является средним значением двух лучших оценок задач:
{
"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"
}
]
}
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/ml-get-overall-buckets.html