从 Glances 计算 influxDB 2.x Flux 中的数据率

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

我在我的机器上设置了 Glances 以导出到 Influx。我现在想要获得涌入的网络数据传输率。但我注意到,如果我只查询以每秒位数导出的 rx 和 tx,它会给出错误的数字。我的查询如下所示:

from(bucket: "glances_fibdonas")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "network")
  |> filter(fn: (r) => r["_field"] == "rx" or r["_field"] == "tx")
  |> filter(fn: (r) => r["hostname"] == "FibdoNAS")
  |> filter(fn: (r) => r["interface_name"] == "eth0")
  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
  |> yield(name: "mean")

然后我看到一篇文章说我必须根据“自上次更新以来的时间”计算比特率: “接收到的比特率为 = rx / time_since_update = 2056872 / 20.3142728805542 = 101252 B/s”

我尝试使用 Flux 中的映射函数进行计算,但我不明白如何使用从数据库获得的不同值进行计算。

你能帮我计算一下吗,我是 Flux 新手:)

grafana influxdb
1个回答
0
投票

Glances API 通过 rx 和 tx 字段提供每秒计算的速率(请参阅 API 文档)。

因此无需考虑 time_since_update ,rx/tx 字段已经以每秒位数为单位。

尼古拉斯

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