【问题标题】:How to get with Grafana a total cross-time value of a counter-type value stored in InfluxDB?如何使用 Grafana 获取存储在 InfluxDB 中的计数器类型值的总跨时间值?
【发布时间】:2020-03-23 12:59:29
【问题描述】:

我们在 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) 实现上述结果的方法是什么?
应该使用哪些函数?

谢谢

【问题讨论】:

    标签: grafana influxdb


    【解决方案1】:

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

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

    【讨论】:

    • 我使用了non_negative_derivative(它有一些数据不够一致的问题),但这确实是要走的路。
    猜你喜欢
    • 2016-08-23
    • 1970-01-01
    • 2019-05-25
    • 2017-07-12
    • 2019-11-05
    • 1970-01-01
    • 2018-08-06
    • 1970-01-01
    • 2017-04-19
    相关资源
    最近更新 更多