gpt4 book ai didi

linux - 如何获取influxdb中当前值和之前值的差值?

转载 作者:太空宇宙 更新时间:2023-11-04 11:48:19 24 4
gpt4 key购买 nike

我正在使用 collectd 来监控系统指标......对于网络指标,我需要知道每分钟传入和传出的流量是多少......但是 Rx(传输的数据包总数)和 Tx(总数收到的数据包)数据包正在提供自机器上次重新启动以来的数据...

所以我需要查询 influxdb 以获取当前值与先前值之间的差异。如何查询以获取差异......

我正在使用这样的查询

select difference(last("value")) from interface_rx WHERE  "type" = 'if_octets' > now() - 1h group by time(10s)

请帮助我..我没有得到我需要的准确输出

enter image description here

当我使用查询时出现以下错误

从 interface_rx WHERE "type"= 'if_octets' and time > now() - 1h group by time(1m) 选择差异(last("value"))

enter image description here

enter image description here

最佳答案

应该是这样的

select difference(last("value")) from interface_rx WHERE "type"= 'if_octets' and time > now() - 1h 按时间分组(1m)

这个查询应该返回大约 60 个值;过去一小时每分钟差 1。 last 在这种情况下意味着每 1 分钟使用最后一个值(如果有多个)

与您的查询不同:and time > now() - 1h 丢失了 - 这可能是一个编辑错误,但它似乎无效。如果你想要每分钟的统计数据,那么你需要group by time(1m)。您按 10 秒分组,因此结果将是每 10 秒的差异。

您还可能想要做的是用以前的可用值填充缺失值(并且相应地您会得到那个时期的零)select difference(last("value")) from interface_rx WHERE "type"= 'if_octets' and time > now() - 1h group by time(1m) fill(previous)编辑:fill(previous) 可能不是你想要的,因为如果没有记录最新的值,它们将被旧值替换,你将得到 difference=0 作为最新值。

如果你只想要最后一个值,你可以这样做select difference(last("value")) from interface_rx WHERE "type"= 'if_octets' and time > now() - 1h group by time(1m) fill(previous) order by time DESC limit 1

关于linux - 如何获取influxdb中当前值和之前值的差值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56897304/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com