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

使用Flux Query在InfluxDB中按窗口统计字段计数

按应用类型+时间窗口聚合计数的Flux查询方案

针对你的需求,以下是实现按时间窗口(小时/天/周)统计各应用类型记录数的Flux查询,基于你的测试数据修改:

import "array"

data = array.from(rows: [
  {application: "ap1", time: "2022-10-01T10:10:06.757Z", message: "error..."},
  {application: "ap2", time: "2022-10-03T15:11:05.757Z", message: "error..."},
  {application: "ap1", time: "2022-10-02T12:11:08.757Z", message: "error..."},
  {application: "ap1", time: "2022-10-04T13:13:05.757Z", message: "error..."},
  {application: "ap3", time: "2022-10-05T10:11:16.757Z", message: "error..."},
  {application: "ap3", time: "2022-10-06T15:22:05.757Z", message: "error..."},
])

data
  // 按应用类型分组,确保各应用独立统计
  |> group(columns: ["application"])
  // 设置时间窗口:1d=天,1h=小时,1w=周,按需替换
  |> window(every: 1d)
  // 统计每个窗口内的记录数量
  |> count(column: "message")
  // 调整结果格式:将窗口起始时间作为时间字段,取消窗口分组
  |> duplicate(column: "_start", as: "time")
  |> window(every: inf)

关键步骤说明

  • 分组:先用group(columns: ["application"])按应用类型拆分数据,保证后续统计是针对单个应用的。
  • 时间窗口:window(every: 1d)定义聚合的时间粒度,替换参数即可切换:
    • 小时级:window(every: 1h)
    • 周级:window(every: 1w)
  • 计数聚合:count(column: "message")统计每个窗口内的记录数,只要是数据中存在的非空字段都可以作为计数依据(比如这里的message)。
  • 结果格式化:最后两步把窗口的起始时间转为结果的time字段,并取消窗口分组,让输出的每条记录对应「应用类型+时间窗口+计数」的结构,更符合直观展示需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 04:50:27