3

在 Grafana 中,我有一个使用 InfluxDB 1.x 作为数据源的仪表板,我正在迁移它以使用 InfluxDB 2.0 数据源和 Flux 查询。

在 Grafana 仪表板中有一个名为“Server”的变量,其中定义了以下查询:

SHOW TAG VALUES ON telegraf WITH KEY = "host"

我真的很难用 Flux 查询创建一个类似的变量。知道如何做到这一点吗?谢谢

4

3 回答 3

2

尝试这个:

import "influxdata/influxdb/schema"

schema.measurementTagValues(
  bucket: "my_bucket",
  tag: "host",
  measurement: "my_measurement"
)
于 2020-11-13T13:27:00.503 回答
0

这对我有用:

from(bucket: "telegraf")
 |> range(start: -15m)
 |> group(columns: ["host"], mode:"by")
 |> keyValues(keyColumns: ["host"])

注意:如果您想要更多时间(例如 -30d)性能会变慢,您可以通过仅加载此查询一次(在 grafana 变量中可用)或更好地添加一些过滤器和选择器来解决它

例如:

from(bucket: "telegraf")
  |> range(start: -30d)
  |> filter(fn: (r) => r._field == "you field")
  |> filter(fn: (r) => /* more filter*/)
  |> group(columns: ["host"], mode:"by")
  |> first()
  |> keyValues(keyColumns: ["host"])
于 2020-11-04T09:27:20.030 回答
0

我正在使用以下通量代码来提取存储桶“telegraf”的所有主机标签值 - 就像您发布的 InfluxQL 一样:

import "influxdata/influxdb/schema"

schema.tagValues(bucket: "telegraf", tag: "host")

InfluxDB 在他们的文档中对此有所了解: https ://docs.influxdata.com/influxdb/v2.0/query-data/flux/explore-schema/#list-tag-values

于 2021-01-11T19:03:04.780 回答