Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Руководство [7.17] ›REST API ›API для обнаружения аномалий с помощью машинного обучения

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API