首页 > 解决方案 > Grafana + InfluxDB Flux - 用于显示多选变量输入的查询

问题描述

我们搭建了一个 Grafana cloud + InfluxDB 2.0(Flux 语言)云实例。作为其中的一部分,我们创建了一个带有“设备 ID”的自定义变量列表,称为devices.

在面板中,我们希望显示参数数据,用户可以从devices列表中选择一个或多个设备 ID 以将它们显示在面板中。这适用于单个设备 ID 选择,但不适用于多个设备。

应如何修改查询以根据 Grafana 下拉列表中的多选条目显示来自可变数量设备的数据?

from(bucket: "test-bucket-new")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "${devices}")
  |> filter(fn: (r) => r["_field"] == "Speed")
  |> aggregateWindow(every: v.windowPeriod, fn: mean)
  |> yield(name: "mean")

标签: grafanainfluxdbgrafana-templatinggrafana-variable

解决方案


似乎以下解决了它:

from(bucket: "test-bucket-new")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => contains(value: r["_measurement"], set: ${devices:json}))
  |> filter(fn: (r) => r["_field"] == "Speed")
  |> aggregateWindow(every: v.windowPeriod, fn: mean)
  |> yield(name: "mean")

推荐阅读