解释数据流生命周期

编辑

检索一个或多个数据流的支持索引的当前数据流生命周期状态。

先决条件

编辑

如果启用了 Elasticsearch 安全功能,您必须至少拥有 manage_data_stream_lifecycle 索引权限或 view_index_metadata 索引权限才能使用此 API。有关更多信息,请参阅 安全权限

请求

编辑

GET <target>/_lifecycle/explain

描述

编辑

检索有关索引或数据流当前数据流生命周期状态的信息,例如自索引创建以来的时间、自滚动更新以来的时间、管理索引的生命周期配置,或者 Elasticsearch 在生命周期执行期间可能遇到的任何错误。

路径参数

编辑
<target>
(必需,字符串) 以逗号分隔的索引或数据流列表。

查询参数

编辑
include_defaults
(可选,布尔值) 包括与目标生命周期相关的默认配置。默认为 false
master_timeout
(可选,时间单位) 等待主节点的时间。如果在超时到期之前主节点不可用,则请求失败并返回错误。默认为 30s。也可以设置为 -1 表示请求永远不应超时。

示例

编辑

如果要检索数据流的所有支持索引的生命周期状态,可以使用数据流名称。为简单起见,以下示例检索一个支持索引 .ds-metrics-2023.03.22-000001 的生命周期状态

resp = client.indices.explain_data_lifecycle(
    index=".ds-metrics-2023.03.22-000001",
)
print(resp)
response = client.indices.explain_data_lifecycle(
  index: '.ds-metrics-2023.03.22-000001'
)
puts response
const response = await client.indices.explainDataLifecycle({
  index: ".ds-metrics-2023.03.22-000001",
});
console.log(response);
GET .ds-metrics-2023.03.22-000001/_lifecycle/explain

如果索引由数据流生命周期管理,则 explain 将显示 managed_by_lifecycle 字段设置为 true,并且响应的其余部分将包含有关此索引的生命周期执行状态的信息

{
  "indices": {
    ".ds-metrics-2023.03.22-000001": {
      "index" : ".ds-metrics-2023.03.22-000001",
      "managed_by_lifecycle" : true,                        
      "index_creation_date_millis" : 1679475563571,   
      "time_since_index_creation" : "843ms",          
      "rollover_date_millis" : 1679475564293,         
      "time_since_rollover" : "121ms",                
      "lifecycle" : { },                              
      "generation_time" : "121ms"                     
  }
}

显示索引是否由数据流生命周期管理。如果索引不受数据流生命周期管理,则不会显示其他字段

创建索引的时间,此时间戳用于确定何时滚动更新

自索引创建以来的时间(用于通过 max_age 计算何时滚动更新索引)

索引滚动更新的时间。如果索引未滚动更新,则不会显示此项。

自滚动更新以来的时间。如果索引未滚动更新,则不会显示此项。

应用于此索引的生命周期配置(在父数据流上配置)

索引的生成时间表示自索引开始朝着用户可配置/特定业务生命周期部分(例如保留)前进的时间。generation_time 是从原始日期(如果存在)计算得出的,或者从滚动更新日期(如果存在)计算得出的,或者从创建日期(如果其他两个都不存在)计算得出的。如果索引是写入索引,则不会报告 generation_time,因为它不符合保留条件或生命周期的其他部分。

explain 还会报告与目标索引生命周期执行相关的任何错误

{
  "indices": {
    ".ds-metrics-2023.03.22-000001": {
      "index" : ".ds-metrics-2023.03.22-000001",
      "managed_by_lifecycle" : true,
      "index_creation_date_millis" : 1679475563571,
      "time_since_index_creation" : "843ms",
      "lifecycle" : {
        "enabled": true
      },
      "error": "{\"type\":\"validation_exception\",\"reason\":\"Validation Failed: 1: this action would add [2] shards, but this cluster
currently has [4]/[3] maximum normal shards open;\"}"        
  }
}

由于集群中允许的分片数量有限制,目标索引无法滚动更新。