【问题标题】:Convert InfluxQL to FLUX query in Grafana在 Grafana 中将 InfluxQL 转换为 FLUX 查询
【发布时间】:2020-12-08 08:50:47
【问题描述】:

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

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

SHOW TAG VALUES ON telegraf WITH KEY = "host"

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

【问题讨论】:

    标签: grafana influxdb flux grafana-variable influxdb-2


    【解决方案1】:

    这对我有用:

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

    【讨论】:

      【解决方案2】:

      试试这个:

      import "influxdata/influxdb/schema"
      
      schema.measurementTagValues(
        bucket: "my_bucket",
        tag: "host",
        measurement: "my_measurement"
      )
      

      【讨论】:

      • 你如何使用这个?这段代码会去哪里?
      • @thomascrha 在数据源定义下的“查询选项”中。
      【解决方案3】:

      我正在使用以下通量代码来提取存储桶“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

      【讨论】:

        猜你喜欢
        • 2022-08-17
        • 2021-01-15
        • 1970-01-01
        • 2021-12-02
        • 2021-01-03
        • 1970-01-01
        • 2022-01-15
        • 1970-01-01
        • 2017-12-27
        相关资源
        最近更新 更多