从汇总迁移到降采样编辑

汇总和降采样是两种不同的功能,允许对历史指标进行汇总。从高层次来看,与降采样相比,汇总更加灵活,但降采样是一种更强大、更容易的指标降采样功能。

降采样的以下方面更容易或更强大

  • 无需安排作业。降采样与索引生命周期管理 (ILM) 和数据流生命周期 (DSL) 集成。
  • 没有单独的搜索 API。可以通过搜索 API 和 es|ql 访问降采样索引。
  • 没有单独的汇总配置。降采样使用映射中的时间序列维度和指标配置。

无法将所有汇总用法迁移到降采样。主要要求是数据应作为 时间序列数据流 (TSDS) 存储在 Elasticsearch 中。基本上按时间和所有维度汇总数据的汇总用法可以迁移到降采样。

可以迁移到降采样的汇总用法示例

PUT _rollup/job/sensor
{
  "index_pattern": "sensor-*",
  "rollup_index": "sensor_rollup",
  "cron": "0 0 * * * *", 
  "page_size": 1000,
  "groups": { 
    "date_histogram": {
      "field": "timestamp",
      "fixed_interval": "60m" 
    },
    "terms": {
      "fields": [ "node" ]
    }
  },
  "metrics": [
    {
      "field": "temperature",
      "metrics": [ "min", "max", "sum" ] 
    },
    {
      "field": "voltage",
      "metrics": [ "avg" ] 
    }
  ]
}

使用 DSL 通过降采样的等效 时间序列数据流 (TSDS) 设置

PUT _index_template/sensor-template
{
  "index_patterns": ["sensor-*"],
  "data_stream": { },
  "template": {
    "lifecycle": {
        "downsampling": [
            {
                "after": "1d", 
                "fixed_interval": "1h" 
            }
        ]
    },
    "settings": {
      "index.mode": "time_series"
    },
    "mappings": {
      "properties": {
        "node": {
          "type": "keyword",
          "time_series_dimension": true 
        },
        "temperature": {
          "type": "half_float",
          "time_series_metric": "gauge" 
        },
        "voltage": {
          "type": "half_float",
          "time_series_metric": "gauge" 
        },
        "@timestamp": { 
          "type": "date"
        }
      }
    }
  }
}

降采样配置包含在上述 时间序列数据流 (TSDS) 的模板中。仅 downsampling 部分是启用降采样所必需的,它指示何时降采样到哪个固定间隔。

在汇总作业中,cron 字段确定汇总文档的时间。在索引模板中,after 字段确定降采样何时汇总文档(请注意,这是执行滚动后 的时间)。

在汇总作业中,groups 字段确定将组文档汇总到的所有维度。在索引模板中,time_series_dimension 设置为 true 的字段和 @timestamp 字段确定组。

在汇总作业中,fixed_interval 字段确定时间戳作为分组的一部分如何聚合。在索引模板中,fixed_interval 字段具有相同的用途。请注意,降采样不支持日历间隔。

在汇总作业中,metrics 字段定义指标以及如何存储这些指标。在索引模板中,所有具有 time_series_metric 的字段都是指标字段。如果字段的 time_series_metric 属性值为 gauge,则会在降采样索引中为此字段存储最小值、最大值、总和和值计数。如果字段的 time_series_metric 属性值为 counter,则仅存储降采样索引中此字段的最后一个值。