Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Руководство [8.17] ›REST API ›API управления жизненным циклом индексов

API explain lifecycle

Новая справка по API

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

Получает текущий статус жизненного цикла для одного или нескольких индексов. Для потоков данных API получает текущий статус жизненного цикла для базовых индексов потока.

Запрос

GET <target>/_ilm/explain

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

  • Если включены функции безопасности Elasticsearch, у вас должны быть разрешения view_index_metadata или manage_ilm, или оба, на индексах, которые управляются этим API. Дополнительную информацию см. в разделе Разрешения безопасности.

Описание

Получает информацию о текущем состоянии жизненного цикла индекса, например, о текущей фазе, действии и шаге. Показывается, когда индекс вошел в каждый из них, определение текущей фазы и информация о любых ошибках.

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

<target>
(Обязательный, строка) Список данных потоков, индексов и алиасов для обработки, разделенных запятыми. Поддерживаются подстановочные знаки (*). Для обработки всех потоков данных и индексов используйте * или _all.

Параметры запроса

only_managed
(Необязательный, логический тип) Фильтрует возвращаемые индексы, оставляя только индексы, управляемые ILM.
only_errors
(Необязательный, логический тип) Фильтрует возвращаемые индексы, оставляя только индексы, управляемые ILM и находящиеся в состоянии ошибки, либо из-за возникновения ошибки при выполнении политики, либо при попытке использовать несуществующую политику.
master_timeout
(Необязательный, единицы измерения времени) Период ожидания узла мастера. Если узел мастера недоступен до истечения времени ожидания, запрос завершается ошибкой. По умолчанию 30s. Также можно задать -1, чтобы указать, что запрос никогда не должен вызывать таймаут.

Примеры

Следующий пример получает состояние жизненного цикла my-index-000001:

resp = client.ilm.explain_lifecycle(
    index="my-index-000001",
    human=True,
)
print(resp)
response = client.ilm.explain_lifecycle(
  index: 'my-index-000001',
  human: true
)
puts response
const response = await client.ilm.explainLifecycle({
  index: "my-index-000001",
  human: "true",
});
console.log(response);
GET my-index-000001/_ilm/explain?human

Когда управление индексом впервые берет на себя ILM, explain показывает, что индекс управляется и находится в фазе new:

{
  "indices": {
    "my-index-000001": {
      "index": "my-index-000001",
      "index_creation_date_millis": 1538475653281,        
      "index_creation_date": "2018-10-15T13:45:21.981Z",
      "time_since_index_creation": "15s",                 
      "managed": true,                                    
      "policy": "my_policy",                              
      "lifecycle_date_millis": 1538475653281,             
      "lifecycle_date": "2018-10-15T13:45:21.981Z",
      "age": "15s",                                       
      "phase": "new",
      "phase_time_millis": 1538475653317,                 
      "phase_time": "2018-10-15T13:45:22.577Z",
      "action": "complete"
      "action_time_millis": 1538475653317,                
      "action_time": "2018-10-15T13:45:22.577Z",
      "step": "complete",
      "step_time_millis": 1538475653317,                  
      "step_time": "2018-10-15T13:45:22.577Z"
    }
  }
}

При создании индекса используется эта временная метка для определения момента ролловера

Время с момента создания индекса (используется для расчета момента перехода индекса в следующую фазу с помощью max_age)

Показывает, управляется ли индекс ILM. Если индекс не управляется ILM, другие поля не будут показаны

Имя политики, которую ILM использует для этого индекса

Временная метка, используемая для min_age

Возраст индекса (используется для расчета момента перехода в следующую фазу)

Когда индекс вошел в текущую фазу

Когда индекс вошел в текущее действие

Когда индекс вошел в текущий шаг

После того, как политика запущена на индексе, ответ включает объект phase_execution, который показывает определение текущей фазы. Изменения в базовой политике не повлияют на этот индекс до завершения текущей фазы.

{
  "indices": {
    "test-000069": {
      "index": "test-000069",
      "index_creation_date_millis": 1538475653281,
      "time_since_index_creation": "25.14s",
      "managed": true,
      "policy": "my_lifecycle3",
      "lifecycle_date_millis": 1538475653281,
      "lifecycle_date": "2018-10-15T13:45:21.981Z",
      "age": "25.14s",
      "phase": "hot",
      "phase_time_millis": 1538475653317,
      "phase_time": "2018-10-15T13:45:22.577Z",
      "action": "rollover",
      "action_time_millis": 1538475653317,
      "action_time": "2018-10-15T13:45:22.577Z",
      "step": "attempt-rollover",
      "step_time_millis": 1538475653317,
      "step_time": "2018-10-15T13:45:22.577Z",
      "phase_execution": {
        "policy": "my_lifecycle3",
        "phase_definition": { 
          "min_age": "0ms",
          "actions": {
            "rollover": {
              "max_age": "30s",
              "max_primary_shard_docs": 200000000, 
              "min_docs": 1
            }
          }
        },
        "version": 3, 
        "modified_date": "2018-10-15T13:21:41.576Z", 
        "modified_date_in_millis": 1539609701576 
      }
    }
  }
}

Определение фазы JSON, загруженное из указанной политики при входе индекса в эту фазу

Действие ролловера включает в себя условия по умолчанию max_primary_shard_docs и min_docs. Дополнительную информацию см. в разделе Параметры ролловера ILM.

Версия загруженной политики

Дата последнего изменения загруженной политики

Временная метка эпохи последнего изменения загруженной политики

Если ILM ожидает завершения шага, ответ включает в себя информацию о статусе выполняемого над индексом шага.

{
  "indices": {
    "test-000020": {
      "index": "test-000020",
      "index_creation_date_millis": 1538475653281,
      "time_since_index_creation": "4.12m",
      "managed": true,
      "policy": "my_lifecycle3",
      "lifecycle_date_millis": 1538475653281,
      "lifecycle_date": "2018-10-15T13:45:21.981Z",
      "age": "4.12m",
      "phase": "warm",
      "phase_time_millis": 1538475653317,
      "phase_time": "2018-10-15T13:45:22.577Z",
      "action": "allocate",
      "action_time_millis": 1538475653317,
      "action_time": "2018-10-15T13:45:22.577Z",
      "step": "check-allocation",
      "step_time_millis": 1538475653317,
      "step_time": "2018-10-15T13:45:22.577Z",
      "step_info": { 
        "message": "Waiting for all shard copies to be active",
        "shards_left_to_allocate": -1,
        "all_shards_active": false,
        "number_of_replicas": 2
      },
      "phase_execution": {
        "policy": "my_lifecycle3",
        "phase_definition": {
          "min_age": "0ms",
          "actions": {
            "allocate": {
              "number_of_replicas": 2,
              "include": {
                "box_type": "warm"
              },
              "exclude": {},
              "require": {}
            },
            "forcemerge": {
              "max_num_segments": 1
            }
          }
        },
        "version": 2,
        "modified_date": "2018-10-15T13:20:02.489Z",
        "modified_date_in_millis": 1539609602489
      }
    }
  }
}

Статус шага, который выполняется.

Если индекс находится в шаге ERROR, что-то пошло не так при выполнении шага в политике, и вам нужно принять меры, чтобы индекс перешел к следующему шагу. Некоторые шаги можно безопасно автоматически повторить в определенных обстоятельствах. Чтобы помочь вам диагностировать проблему, ответ explain показывает, какой шаг завершился ошибкой, информацию о шаге, содержащую информацию об ошибке, и информацию о попытках автоматического повторения выполнения завершившегося ошибкой шага, если это применимо.

{
  "indices": {
    "test-000056": {
      "index": "test-000056",
      "index_creation_date_millis": 1538475653281,
      "time_since_index_creation": "50.1d",
      "managed": true,
      "policy": "my_lifecycle3",
      "lifecycle_date_millis": 1538475653281,
      "lifecycle_date": "2018-10-15T13:45:21.981Z",
      "age": "50.1d",
      "phase": "hot",
      "phase_time_millis": 1538475653317,
      "phase_time": "2018-10-15T13:45:22.577Z",
      "action": "rollover",
      "action_time_millis": 1538475653317,
      "action_time": "2018-10-15T13:45:22.577Z",
      "step": "ERROR",
      "step_time_millis": 1538475653317,
      "step_time": "2018-10-15T13:45:22.577Z",
      "failed_step": "check-rollover-ready", 
      "is_auto_retryable_error": true, 
      "failed_step_retry_count": 1, 
      "step_info": { 
        "type": "cluster_block_exception",
        "reason": "index [test-000057/H7lF9n36Rzqa-KfKcnGQMg] blocked by: [FORBIDDEN/5/index read-only (api)",
        "index_uuid": "H7lF9n36Rzqa-KfKcnGQMg",
        "index": "test-000057"
      },
      "previous_step_info": { 
        "type": "cluster_block_exception",
        "reason": "index [test-000057/H7lF9n36Rzqa-KfKcnGQMg] blocked by: [FORBIDDEN/5/index read-only (api)",
        "index_uuid": "H7lF9n36Rzqa-KfKcnGQMg",
        "index": "test-000057"
      },
      "phase_execution": {
        "policy": "my_lifecycle3",
        "phase_definition": {
          "min_age": "0ms",
          "actions": {
            "rollover": {
              "max_age": "30s"
            }
          }
        },
        "version": 3,
        "modified_date": "2018-10-15T13:21:41.576Z",
        "modified_date_in_millis": 1539609701576
      }
    }
  }
}

Шаг, вызвавший ошибку

Указывает, можно ли повторить неудавшийся шаг, чтобы устранить ошибку. Если это значение true, ILM автоматически повторит неудавшийся шаг.

Показывает количество попыток автоматического повторения выполнения неудачного шага.

Что пошло не так

Содержит копию поля step_info (если оно существует) последней попытки или выполнения шага для целей диагностики, поскольку step_info перезаписывается во время каждой новой попытки.

© 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/ilm-explain-lifecycle.html

Spec-Zone.ru

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