如何用Grafana获取InfluxDB中存储的计数器类型值的总跨时间值?
How to get with Grafana a total cross-time value of a counter-type value stored in 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
使用 Grafana 针对 InfluxDB (1.7) 实现上述结果的方法是什么?
应该使用哪些函数?
谢谢
查看NON_NEGATIVE_DIFFERENCE函数。
查询可能看起来像(如果需要按时间添加组)
SELECT SUM(diffval) FROM (SELECT NON_NEGATIVE_DIFFERENCE(value) AS diffval FROM bytes_in)
我们正在 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
使用 Grafana 针对 InfluxDB (1.7) 实现上述结果的方法是什么?
应该使用哪些函数?
谢谢
查看NON_NEGATIVE_DIFFERENCE函数。 查询可能看起来像(如果需要按时间添加组)
SELECT SUM(diffval) FROM (SELECT NON_NEGATIVE_DIFFERENCE(value) AS diffval FROM bytes_in)