API для получения задач обнаружения аномалий
Возвращает конфигурационную информацию для задач обнаружения аномалий.
Запрос
GET _ml/anomaly_detectors/<job_id>
GET _ml/anomaly_detectors/<job_id>,<job_id>
GET _ml/anomaly_detectors/
GET _ml/anomaly_detectors/_all
Предварительные условия
Требуется привилегия кластера monitor_ml. Эта привилегия включена в встроенную роль machine_learning_user.
Описание
Этот API возвращает не более 10 000 задач.
Параметры пути
-
<job_id> - (Необязательно, строка) Идентификатор задачи обнаружения аномалий. Это может быть идентификатор задачи, имя группы или выражение с подстановкой. Вы можете получить информацию о нескольких задачах обнаружения аномалий в одном запросе API, используя имя группы, список задач, разделённый запятыми, или выражение с подстановкой. Вы можете получить информацию обо всех задачах обнаружения аномалий, используя
_all, указав*в качестве идентификатора задачи или опуская идентификатор.
Параметры запроса
-
allow_no_jobs - (Необязательно, булево) [7.10] Устарело в 7.10. Используйте
allow_no_matchвместо этого. -
allow_no_match -
(Необязательно, булево) Определяет, что делать, когда запрос:
- Содержит выражения с подстановкой, и нет совпадений с задачами.
- Содержит строку
_allили нет идентификаторов, и нет совпадений. - Содержит выражения с подстановкой, и есть только частичные совпадения.
Значение по умолчанию —
true, которое возвращает пустой массивjobs, когда нет совпадений, и подмножество результатов, когда есть частичные совпадения. Если этот параметр равенfalse, запрос возвращает код состояния404, когда нет совпадений или есть только частичные совпадения. -
exclude_generated - (Необязательно, булево) Указывает, следует ли удалять определённые поля из конфигурации при получении. Это позволяет конфигурации быть в приемлемом формате для получения и последующего добавления в другой кластер. Значение по умолчанию — false.
Тело ответа
API возвращает массив ресурсов задач обнаружения аномалий. Полный список свойств см. в API создания задач обнаружения аномалий.
-
blocked -
(объект) Если присутствует, указывает, что задача выполняется в рамках задания, блокируя его открытие.
Свойства
blocked-
reason - (строка) Причина блокировки задания. Значения могут быть
delete,reset,revert. Каждое значение означает, что выполняется соответствующее действие. -
task_id - (строка) Идентификатор задачи блокирующего действия. Для отслеживания прогресса можно использовать API управления задачами.
-
-
create_time - (строка) Время создания задания. Например,
1491007356077. Это справочная информация; значение нельзя изменить. -
datafeed_config -
(объект) Настройка datafeed для текущей задачи обнаружения аномалий.
Свойства
datafeed_config-
datafeed_id - (Необязательная, строка) Числовая строка, уникально идентифицирующая datafeed. Идентификатор может содержать строчные буквенно-цифровые символы (a-z и 0-9), дефисы и символы подчеркивания. Он должен начинаться и заканчиваться буквенно-цифровыми символами.
-
aggregations - (Необязательный, объект) Если задано, datafeed выполняет агрегационные запросы. Поддержка агрегаций ограничена и должна использоваться только с данными низкой кардинальности. Дополнительную информацию см. в Агрегирование данных для повышения производительности.
-
chunking_config -
(Необязательный, объект) Datafeed может потребоваться выполнять поиск в течение длительных периодов времени, в течение нескольких месяцев или лет. Этот поиск разделен на временные фрагменты для обеспечения управления нагрузкой на Elasticsearch. Настройка фрагментации управляет тем, как рассчитывается размер этих временных фрагментов, и является параметром расширенной настройки.
Свойства
chunking_config-
mode -
(строка) Доступны три режима:
-
auto: Размер фрагмента динамически рассчитывается. Это значение по умолчанию и рекомендуется, когда datafeed не использует агрегации. -
manual: Фрагментация применяется в соответствии с указаннымtime_span. Используйте этот режим, когда datafeed использует агрегации. -
off: Фрагментация не применяется.
-
-
time_span - (единицы времени) Длительность каждого запроса поиска. Это значение применимо только в том случае, если режим установлен на
manual. Например:3h.
-
-
delayed_data_check_config -
(Необязательный, объект) Указывает, проверяет ли datafeed отсутствие данных и размер окна. Например:
{"enabled": true, "check_window": "1h"}.Datafeed может по желанию искать в индексах, которые уже были прочитаны, чтобы определить, были ли данные добавлены в индекс позже. Если отсутствующие данные обнаружены, это хороший признак того, что параметр
query_delayустановлен слишком низко, и данные индексируются после того, как datafeed прошел этот момент времени. См. Работа с запоздавшими данными.Эта проверка выполняется только для datafeed в реальном времени.
Свойства
delayed_data_check_config-
check_window - (единицы времени) Временной интервал поиска запоздалых данных. Это окно заканчивается последним завершенным ведром. По умолчанию равно
null, что приводит к вычислению соответствующегоcheck_windowпри запуске datafeed в реальном времени. В частности, вычисление длительностиcheck_windowосновано на максимальном значении из2hили8 * bucket_span. -
enabled - (Булево) Указывает, периодически ли datafeed проверяет наличие запоздалых данных. По умолчанию равно
true.
-
-
frequency - (Необязательная, единицы времени) Интервал, в котором выполняются запланированные запросы во время работы datafeed в реальном времени. Значение по умолчанию — либо интервал ведра для коротких интервалов ведер, либо, для более длинных интервалов ведер, разумная часть интервала ведра. Например:
150s. Еслиfrequencyкороче, чем интервал ведра, промежуточные результаты для последнего (частичного) ведра записываются, а затем в конечном итоге перезаписываются полными результатами ведра. Если datafeed использует агрегации, это значение должно быть кратно интервалу агрегации гистограммы дат. -
indices -
(Обязательный, массив) Массив имён индексов. Поддерживаются подстановочные знаки. Например:
["it_ops_metrics", "server*"].Если какие-либо индексы находятся в удалённых кластерах, узлам machine learning необходимо иметь роль
remote_cluster_client. -
indices_options -
(Необязательный, объект) Указывает параметры расширения индексов, которые используются во время поиска.
Например:
{ "expand_wildcards": ["all"], "ignore_unavailable": true, "allow_no_indices": "false", "ignore_throttled": true }Дополнительную информацию об этих параметрах см. в синтаксисе для множества целей.
-
job_id - (Обязательный, строка) Идентификатор задачи обнаружения аномалий.
-
max_empty_searches - (Необязательный, целое число) Если datafeed в реальном времени никогда не видел никаких данных (включая период начальной подготовки), он автоматически остановится и закроет связанное с ним задание после этого количества запросов в реальном времени, которые не возвращают документы. Другими словами, он остановится после
frequencyразmax_empty_searchesработы в реальном времени. Если не задано, datafeed без конечной даты, который не видит данных, будет оставаться запущенным до его явного остановления. По умолчанию это значение не задано. -
query - (Необязательный, объект) Язык запросов Elasticsearch (DSL). Это значение соответствует объекту запроса в теле POST запроса поиска Elasticsearch. Все поддерживаемые Elasticsearch опции могут быть использованы, так как этот объект передаётся в Elasticsearch без изменений. По умолчанию это свойство имеет следующее значение:
{"match_all": {"boost": 1}}. -
query_delay - (Необязательный, единицы времени) Количество секунд задержки в реальном времени, в которые запрашиваются данные. Например, если данные с 10:04 утра могут быть недоступны для поиска в Elasticsearch до 10:06 утра, установите это свойство в 120 секунд. Значение по умолчанию случайно выбирается между
60sи120s. Эта случайность улучшает производительность запроса при одновременном выполнении нескольких задач на одном узле. Дополнительную информацию см. в Обработка запоздалых данных. -
runtime_mappings -
(Необязательный, объект) Указывает поля runtime для поиска datafeed.
Например:
{ "day_of_week": { "type": "keyword", "script": { "source": "emit(doc['@timestamp'].value.dayOfWeekEnum.getDisplayName(TextStyle.FULL, Locale.ENGLISH))" } } } -
script_fields - (Необязательный, объект) Указывает скрипты, которые вычисляют пользовательские выражения и возвращают поля скриптов datafeed. Объекты конфигурации детектора в задании могут содержать функции, использующие эти поля скриптов. Дополнительную информацию см. в Преобразование данных с помощью полей скриптов и Поля скриптов.
-
scroll_size - (Необязательный, целое без знака) Параметр
size, который используется в запросах Elasticsearch, когда datafeed не использует агрегации. Значение по умолчанию —1000. Максимальное значение — значениеindex.max_result_window, которое по умолчанию равно 10 000.
-
-
finished_time - (строка) Если задание было закрыто или завершилось сбоем, это время завершения задания. В противном случае —
null. Это справочная информация; значение нельзя изменить. -
job_type - (строка) Зарезервировано для будущего использования, в настоящее время установлено как
anomaly_detector. -
job_version - (строка) Версия Elasticsearch, существовавшая на узле при создании задания.
-
model_snapshot_id - (строка) Числовая строка, уникально идентифицирующая снимок модели.
Коды ответов
-
404(Отсутствующие ресурсы) - Если
allow_no_matchравноfalse, этот код указывает, что ресурсов, соответствующих запросу, нет, или есть только частичные совпадения с запросом.
Примеры
GET _ml/anomaly_detectors/high_sum_total_sales
API возвращает следующие результаты:
{
"count": 1,
"jobs": [
{
"job_id" : "high_sum_total_sales",
"job_type" : "anomaly_detector",
"job_version" : "7.5.0",
"groups" : [
"kibana_sample_data",
"kibana_sample_ecommerce"
],
"description" : "Find customers spending an unusually high amount in an hour",
"create_time" : 1577221534700,
"analysis_config" : {
"bucket_span" : "1h",
"detectors" : [
{
"detector_description" : "High total sales",
"function" : "high_sum",
"field_name" : "taxful_total_price",
"over_field_name" : "customer_full_name.keyword",
"detector_index" : 0
}
],
"influencers" : [
"customer_full_name.keyword",
"category.keyword"
]
},
"analysis_limits" : {
"model_memory_limit" : "10mb",
"categorization_examples_limit" : 4
},
"data_description" : {
"time_field" : "order_date",
"time_format" : "epoch_ms"
},
"model_plot_config" : {
"enabled" : true
},
"model_snapshot_retention_days" : 10,
"daily_model_snapshot_retention_after_days" : 1,
"custom_settings" : {
"created_by" : "ml-module-sample",
...
},
"model_snapshot_id" : "1575402237",
"results_index_name" : "shared",
"allow_lazy_open" : false
}
]
}
© 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/7.17/ml-get-job.html