【问题标题】:Grafana + InfluxDB Flux - query for displaying multi-select variable inputsGrafana + InfluxDB Flux - 显示多选变量输入的查询
【发布时间】:2020-08-23 17:06:48
【问题描述】:

我们已经建立了一个 Grafana 云 + 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")

【问题讨论】:

    标签: grafana influxdb grafana-templating grafana-variable


    【解决方案1】:

    下面好像解决了:

    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")
    

    【讨论】:

    • 当您提供大量“设备”时,它的表现如何?我有一些非常相似的东西,当我将 grafana 变量设置为“All”并使用“contains”执行通量查询时,速度会呈指数下降。我很好奇您是否想出了一些性能解决方法。
    • 我能够在这个性能打击上贴上创可贴并获得很多收益。我创建了一个名为containsWrapper 的函数,如果选择了“All”,则让 Grafana 返回空数组。 containsWrapper 将检查集合是否为空,如果是,它将在没有 contains 过滤器的情况下查询数据库。
    猜你喜欢
    • 2022-09-27
    • 2019-07-22
    • 2021-12-22
    • 1970-01-01
    • 2018-10-24
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多