如何使用Grafana获取存储在InfluxDB中的计数器类型值的总跨时间值?

时间:2020-03-23 12:59:29

标签: grafana influxdb

我们正在InfluxDB中存储一些类似计数器的度量值。
这些值是单调增长的,但可以不时重置。
重置可以随时发生(例如,由于服务重启)。

例如:
测量:bytes_in

time                         value
----                         -----
2020-03-23T09:00:50.5335191Z 1000
2020-03-23T09:00:51.0335191Z 3000
2020-03-23T09:00:51.5335191Z 4500
2020-03-23T09:00:52.0335191Z 7000
2020-03-23T09:00:52.5335191Z 8000
2020-03-23T09:00:55.0335191Z 15000
2020-03-23T09:00:55.5335191Z 500
2020-03-23T09:00:56.0335191Z 1000
2020-03-23T09:00:56.5335191Z 1000
2020-03-23T09:00:57.5335191Z 3000

在这种情况下,如果我希望从2020-03-23T09:00:50到2020-03-23T09:00:58的bytes_in总数,我想获取:
(15,000-1000)+(3000-0)(截至55.5335191Z,它已重置,然后从0开始)= 17,000

使用针对InfluxDB(1.7)的Grafana达到上述结果的方法是什么?
应该使用哪些功能?

谢谢

1 个答案:

答案 0 :(得分:0)

查看NON_NEGATIVE_DIFFERENCE函数。 查询可能看起来像(如果需要,可以按时间添加组)

SELECT SUM(diffval) FROM (SELECT NON_NEGATIVE_DIFFERENCE(value) AS diffval FROM bytes_in)