You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在InfluxDB Flux中按proc字段子串/正则表达式分组

解决方案

要实现按proc字段的前缀(如CPU-010)分组,核心是先提取前缀生成新字段,再基于新字段分组。以下是修正后的Flux查询:

import "regexp"

from(bucket: v.bucket)
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r._measurement == "Processors" and r.proc =~ /CPU-\d+\..*/)
  // 提取proc字段中.之前的前缀,生成新字段proc_group
  |> map(fn: (r) => ({
      r with
      proc_group: regexp.extractString(r: r.proc, regex: /(CPU-\d+)\..*/)
    })
  )
  // 按新生成的proc_group分组
  |> group(columns: ["proc_group"])
  |> aggregateWindow(every: v.windowPeriod, fn: mean)

关键说明:

  • 正则提取:使用regexp.extractString函数,通过正则/(CPU-\d+)\..*/捕获CPU-后接数字、直到.之前的部分,生成proc_group字段。
  • 过滤修正:原过滤正则/(CPU-[09].*)[.].*/中的[09]仅匹配0或9,改为\d+匹配任意长度数字,确保覆盖CPU-010、CPU-110等所有格式。
  • 分组逻辑:替换原group(columns: ["proc"])为group(columns: ["proc_group"]),实现按前缀分组聚合。

验证逻辑

针对你提供的CSV数据示例,CPU-010.CORE010-00会被提取为CPU-010,所有同前缀的记录会被归为同一组,最终聚合结果即为各CPU前缀的平均使用率。

内容的提问来源于stack exchange,提问作者greg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 03:15:46