在 Elastic Streams 中直接配置降采样,不再需要编辑 JSON

0 阅读3分钟

作者:来自 Elastic Edward Lewis

在 Elastic Streams 中与保留策略和数据层级一起配置降采样,并提供实时预览和验证。不再需要编辑 ILM 或生命周期 JSON。

从 Elastic 9.4(正式发布版)开始,Streams 允许你直接在 Retention 选项卡中查看和配置降采样,同时查看保留周期、数据层级以及摄取上下文。打开一个 stream,即可查看它如何随时间演变,并在同一个位置完成修改。

Elasticsearch 已经通过 ILM 策略与数据流生命周期 支持降采样功能一段时间了。但配置过程意味着你需要离开当前查看的 stream,找到对应的 policy 或 lifecycle 定义,编辑 JSON,并希望配置的时间间隔有效。现在,这种来回切换已经不再需要。

基于 ILM 的 Streams

ILM 将降采样与阶段(phase)绑定。每个阶段(hot、warm、cold)都可以包含一个带有 fixed_interval 的降采样操作。现在,Streams 会在数据生命周期时间线上展示这些操作。点击某个阶段即可打开侧边弹窗(flyout),设置降采样间隔,并在保存之前实时查看时间线更新效果。

下面是相同策略对应的 JSON。这就是当你使用侧边弹窗(flyout)时,Streams 实际读取和写入的内容:

`

1.  {
2.    "phases": {
3.      "hot": {
4.        "min_age": "0ms",
5.        "actions": {
6.          "rollover": { "max_age": "1d" },
7.          "downsample": {
8.            "fixed_interval": "5m",
9.            "wait_timeout": "1d"
10.          }
11.        }
12.      },
13.      "warm": {
14.        "min_age": "2d",
15.        "actions": {}
16.      },
17.      "cold": {
18.        "min_age": "4d",
19.        "actions": {
20.          "downsample": {
21.            "fixed_interval": "10m",
22.            "wait_timeout": "1d"
23.          }
24.        }
25.      },
26.      "frozen": {
27.        "min_age": "8d",
28.        "actions": {
29.          "searchable_snapshot": {
30.            "snapshot_repository": "found-snapshots",
31.            "force_merge_index": true
32.          }
33.        }
34.      },
35.      "delete": {
36.        "min_age": "30d",
37.        "actions": {
38.          "delete": {
39.            "delete_searchable_snapshot": true
40.          }
41.        }
42.      }
43.    }
44.  }

`AI写代码![](https://csdnimg.cn/release/blogv2/dist/pc/img/runCode/icon-arrowwhite.png)

ILM 策略通常会被多个 stream 共享使用。如果你编辑了一个正在其他地方使用的策略,Streams 会发出警告,并提供 Save as new policy(另存为新策略) 选项,让你可以进行分支(fork),而不是直接修改原始策略。

数据流生命周期(DLM)streams

数据流 生命周期采用不同的方法:与其在每个阶段只设置一个降采样操作,它允许你定义一系列步骤(最多 10 个),每一步都包含一个 after 延迟和一个 fixed_interval。Streams 会将其以“视觉阶梯(visual ladder)”的形式展示出来,让你可以一步一步构建配置。

这是同一个配置,但以 API 调用的形式表示。UI 中的每一个步骤都会映射为 downsampling 数组中的一个对象:

`

1.  {
2.    "data_retention": "14d",
3.    "downsampling": [
4.      { "after": "1d", "fixed_interval": "5m" },
5.      { "after": "3d", "fixed_interval": "1h" },
6.      { "after": "7d", "fixed_interval": "4h" }
7.    ]
8.  }

`AI写代码

开始使用

  • 在 Kibana 中打开 Streams,并选择一个由 时间序列数据流(TSDS)支持的 stream。

  • 进入 Retention(保留) 选项卡。数据生命周期时间线会显示当前的降采样配置(如果存在)。

  • 对于 ILM streams,点击时间线中的某个 phase,会打开 flyout,并可在其中配置降采样间隔。

  • 对于 DLM streams,可以在 lifecycle 视图中直接添加或编辑降采样步骤。

了解更多

本文章中描述的任何功能或发布时间均由 Elastic 自行决定。任何当前不可用的功能或能力,可能不会按计划交付,甚至可能不提供。

原文:Configure downsampling directly in Elastic Streams, no more JSON editing needed — Elastic Observability Labs