Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›REST API ›API для работы с Rollup

API получения данных о заданиях Rollup

Получает конфигурацию, статистику и статус заданий Rollup.

Эта функциональность находится в техническом превью и может быть изменена или удалена в будущих версиях. Elastic будет работать над устранением проблем, но функции в техническом превью не подпадают под SLA поддержки официальных функций GA.

Запрос

GET _rollup/job/<job_id>

Предварительные условия

  • Если функции безопасности Elasticsearch включены, для использования этого API у вас должны быть monitor, monitor_rollup, manage или manage_rollup права кластера. Дополнительную информацию см. в разделе Права доступа.

Описание

API может возвращать данные для одного задания Rollup или для всех заданий Rollup.

Данный API возвращает только активные (как STARTED, так и STOPPED) задания. Если задание было создано, работало некоторое время, а затем удалено, этот API не возвращает никаких данных о данном задании.

Для получения данных о историческом задании Rollup API получения возможностей Rollup (API получения возможностей заданий Rollup) может быть более полезным.

Параметры пути

<job_id>
(Необязательно, строка) Идентификатор задания Rollup. Если он _all или опущен, API возвращает все задания Rollup.

Тело ответа

jobs

(массив) Массив ресурсов заданий Rollup.

Свойства ресурсов заданий Rollup
config
(объект) Содержит конфигурацию для задания Rollup. Эта информация идентична конфигурации, которая была предоставлена при создании задания с помощью API создания заданий.
stats
(объект) Содержит временную статистику о задании Rollup, например, количество обработанных документов и количество индексированных документов сводки Rollup. Эта статистика не сохраняется. Если узел перезапускается, эта статистика сбрасывается.
status

(объект) Содержит текущий статус индексатора для задания Rollup. Возможные значения и их значения:

  • stopped означает, что индексатор приостановлен и не будет обрабатывать данные, даже если его интервал cron сработает.
  • started означает, что индексатор работает, но не активно индексирует данные. Когда срабатывает интервал cron, индексатор задания начнёт обрабатывать данные.
  • indexing означает, что индексатор активно обрабатывает данные и создаёт новые документы Rollup. Когда он находится в этом состоянии, любые последующие срабатывания интервала cron будут проигнорированы, потому что задание уже активно с предыдущим срабатыванием.
  • abort — временное состояние, которое обычно не наблюдается пользователем. Оно используется, если задачу нужно остановить по какой-либо причине (задание было удалено, была обнаружена невосстановимая ошибка и т. д.). Вскоре после того, как будет установлено состояние abort, задание удалит себя из кластера.

Примеры

Если мы уже создали задание Rollup под названием sensor, данные о задании можно получить следующим образом:

GET _rollup/job/sensor

API возвращает следующий ответ:

{
  "jobs": [
    {
      "config": {
        "id": "sensor",
        "index_pattern": "sensor-*",
        "rollup_index": "sensor_rollup",
        "cron": "*/30 * * * * ?",
        "groups": {
          "date_histogram": {
            "fixed_interval": "1h",
            "delay": "7d",
            "field": "timestamp",
            "time_zone": "UTC"
          },
          "terms": {
            "fields": [
              "node"
            ]
          }
        },
        "metrics": [
          {
            "field": "temperature",
            "metrics": [
              "min",
              "max",
              "sum"
            ]
          },
          {
            "field": "voltage",
            "metrics": [
              "avg"
            ]
          }
        ],
        "timeout": "20s",
        "page_size": 1000
      },
      "status": {
        "job_state": "stopped",
        "upgraded_doc_id": true
      },
      "stats": {
        "pages_processed": 0,
        "documents_processed": 0,
        "rollups_indexed": 0,
        "trigger_count": 0,
        "index_failures": 0,
        "index_time_in_ms": 0,
        "index_total": 0,
        "search_failures": 0,
        "search_time_in_ms": 0,
        "search_total": 0,
        "processing_time_in_ms": 0,
        "processing_total": 0
      }
    }
  ]
}

Массив jobs содержит одно задание (id: sensor), поскольку мы запросили одно задание в URL конечной точки. Если мы добавим ещё одно задание, мы можем увидеть, как обрабатываются ответы с несколькими заданиями:

PUT _rollup/job/sensor2 
{
  "index_pattern": "sensor-*",
  "rollup_index": "sensor_rollup",
  "cron": "*/30 * * * * ?",
  "page_size": 1000,
  "groups": {
    "date_histogram": {
      "field": "timestamp",
      "fixed_interval": "1h",
      "delay": "7d"
    },
    "terms": {
      "fields": [ "node" ]
    }
  },
  "metrics": [
    {
      "field": "temperature",
      "metrics": [ "min", "max", "sum" ]
    },
    {
      "field": "voltage",
      "metrics": [ "avg" ]
    }
  ]
}

GET _rollup/job/_all 

Создаём второе задание с именем sensor2

Затем запрашиваем все задания, используя _all в API GetJobs

Что даст следующий ответ:

{
  "jobs": [
    {
      "config": {
        "id": "sensor2",
        "index_pattern": "sensor-*",
        "rollup_index": "sensor_rollup",
        "cron": "*/30 * * * * ?",
        "groups": {
          "date_histogram": {
            "fixed_interval": "1h",
            "delay": "7d",
            "field": "timestamp",
            "time_zone": "UTC"
          },
          "terms": {
            "fields": [
              "node"
            ]
          }
        },
        "metrics": [
          {
            "field": "temperature",
            "metrics": [
              "min",
              "max",
              "sum"
            ]
          },
          {
            "field": "voltage",
            "metrics": [
              "avg"
            ]
          }
        ],
        "timeout": "20s",
        "page_size": 1000
      },
      "status": {
        "job_state": "stopped",
        "upgraded_doc_id": true
      },
      "stats": {
        "pages_processed": 0,
        "documents_processed": 0,
        "rollups_indexed": 0,
        "trigger_count": 0,
        "index_failures": 0,
        "index_time_in_ms": 0,
        "index_total": 0,
        "search_failures": 0,
        "search_time_in_ms": 0,
        "search_total": 0,
        "processing_time_in_ms": 0,
        "processing_total": 0
      }
    },
    {
      "config": {
        "id": "sensor",
        "index_pattern": "sensor-*",
        "rollup_index": "sensor_rollup",
        "cron": "*/30 * * * * ?",
        "groups": {
          "date_histogram": {
            "fixed_interval": "1h",
            "delay": "7d",
            "field": "timestamp",
            "time_zone": "UTC"
          },
          "terms": {
            "fields": [
              "node"
            ]
          }
        },
        "metrics": [
          {
            "field": "temperature",
            "metrics": [
              "min",
              "max",
              "sum"
            ]
          },
          {
            "field": "voltage",
            "metrics": [
              "avg"
            ]
          }
        ],
        "timeout": "20s",
        "page_size": 1000
      },
      "status": {
        "job_state": "stopped",
        "upgraded_doc_id": true
      },
      "stats": {
        "pages_processed": 0,
        "documents_processed": 0,
        "rollups_indexed": 0,
        "trigger_count": 0,
        "index_failures": 0,
        "index_time_in_ms": 0,
        "index_total": 0,
        "search_failures": 0,
        "search_time_in_ms": 0,
        "search_total": 0,
        "processing_time_in_ms": 0,
        "processing_total": 0
      }
    }
  ]
}

© 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/rollup-get-job.html

Spec-Zone.ru

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