2

我想将跨不同保留策略的相同度量查询到单个图表中。理想情况下,我想在查询本身中执行此操作,因为我正在使用 Grafana。

根据 Flux 文档,“Flux 在表格中构建所有数据。当数据从数据源流式传输时,Flux 将其格式化为带注释的逗号分隔值 (CSV),表示表格。然后函数操作或处理它们并输出新表格。”

在这种情况下,不同的保留策略会表现得像不同的表吗?我可以使用 union() 函数来获得我想要的吗?任何见解将不胜感激。

4

1 回答 1

0

因此,对于这样的事情,您只需使用两个不同的from语句并使用unionjoin组合它们。查看有关union查询示例的文档:https ://v2.docs.influxdata.com/v2.0/reference/flux/stdlib/built-in/transformations/union/#examples

left = from(bucket: "database1/policy1")
  |> range(start: 2018-05-22T19:53:00Z, stop: 2018-05-22T19:53:50Z)
  |> filter(fn: (r) =>
    r._field == "usage_guest" or
    r._field == "usage_guest_nice"
  )
  |> drop(columns: ["_start", "_stop"])

right = from(bucket: "database1/policy2")
  |> range(start: 2018-05-22T19:53:50Z, stop: 2018-05-22T19:54:20Z)
  |> filter(fn: (r) =>
    r._field == "usage_guest" or
    r._field == "usage_idle"
  )
  |> drop(columns: ["_start", "_stop"])

union(tables: [left, right])

在这种情况下,函数中bucket使用的from将采用database_name/rp. 请参阅 1.x 中有关存储桶命名约定的文档:https ://docs.influxdata.com/flux/v0.50/introduction/getting-started/#buckets

于 2020-02-26T19:16:32.740 回答