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

基于InfluxDB在Grafana中实现状态切换计数器

实现FALSE到TRUE切换的计数器(InfluxDB + Grafana)

要统计变量从FALSE切换到TRUE的次数,你可以基于现有Flux查询扩展,通过对比前后状态来实现,具体查询代码如下:

from(bucket: "test")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "In_Outs")
  |> filter(fn: (r) => r["_field"] == "variable_1")
  // 按时间正序排列,保证状态对比顺序正确
  |> sort(columns: ["_time"], desc: false)
  // 为每条记录添加上一条的状态值
  |> fill(column: "_value", usePrevious: true)
  |> keep(columns: ["_time", "_value", "_value_prev"])
  // 标记从FALSE到TRUE的切换事件
  |> map(fn: (r) => ({
      r with
      is_transition: r._value == true and r._value_prev == false
    }))
  // 统计所有符合条件的切换次数
  |> count(column: "is_transition")
  // 重命名计数字段,更直观
  |> rename(columns: {is_transition: "switch_count"})
  |> yield(name: "switch_count")

关键步骤说明

  • sort:必须先按时间排序,不然前后状态对比会出错
  • fill(usePrevious: true):自动生成_value_prev字段,存储上一条记录的状态值
  • map:判断当前状态是TRUE且上一条是FALSE时,标记为有效切换
  • count:统计所有有效切换的总数

在Grafana里,把这个查询加到面板,选择「Stat」或「Single Stat」类型,就能直接显示这段时间内的切换总次数了。

内容的提问来源于stack exchange,提问作者Matías Idrobo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 06:42:38