将两个 InfluxDB Flux 查询的结果合并到一个 Grafana 表中

问题描述 投票:0回答:1

我将 Grafana 与 InfluxDB 结合使用,在尝试在单个表中可视化两个不同 Flux 查询的结果时遇到了问题。

我有两个 Flux 查询:一个以 GB 为单位获取已用内存,另一个以百分比形式获取已用内存。当我尝试在单个 Grafana 表中可视化两个查询时,我不是获取三列(主机、已用内存(以 GB 为单位)、已用内存(以百分比为单位)),而是从第一个查询结果下方附加的第二个查询中获取结果。

这是我的疑问:

查询已用内存(GB):

from(bucket: "telegraf")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "mem")
  |> filter(fn: (r) => r["_field"] == "used")
  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
  |> yield(name: "mean")

查询已用内存百分比:

from(bucket: "telegraf")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "mem")
  |> filter(fn: (r) => r["_field"] == "used_percent")
  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
  |> yield(name: "mean")

我已经在使用转换减少,以获得所需的 2 列(主机和指标,例如“已使用”) [Output]

我尝试使用 Flux 中的 join 函数,还尝试使用 Grafana 的转换功能(合并和组织字段)合并结果,但我无法获得所需的表结构。

预期结果: 我想要一个包含三列的 Grafana 表:一列用于主机,一列显示已用内存(以 GB 为单位),另一列以百分比显示已用内存。

我是否可能需要以不同的方式处理这个问题,也许通过调整查询或使用其他方法?

转换前的输出:

grafana influxdb flux grafana-loki grafana-dashboard
1个回答
0
投票

您可以使用 Grafana 连接转换 - 通过主机列/标签连接这些结果。

© www.soinside.com 2019 - 2024. All rights reserved.