2

我有一个将指标发送到流入数据库的应用程序,我们使用 grafana 根据该数据绘制图表。对于其中一个指标,应用程序发送一种计数器类型的数据,基本上只要有事件发生,计数就会增加。有没有办法在 Grafana 中查询这种类型的数据和绘图?

我尝试使用 DIFFERENCE 函数,但图表仅在 10 秒期间显示正确值,然后显示为零。

实现这一目标的正确方法是什么?

例子:

T1 : 10
T1+10minutes : 12

我想在 T2 和 T1(10 分钟)之间看到图表为 2,在我的情况下,它显示 2 10 秒,然后重置为零。

我正在使用下面的 influx/grafana 查询

select difference(sum("Counter_Metrics")) FROM "My_Measurement" WHERE $timeFilter GROUP BY time(10s), host fill(null)

提前致谢

4

1 回答 1

2

如果您只需要一段时间内当前和先前计数器值之间的差异(本质上是值增量),那么只需使用DIFFERENCE没有任何功能的函数SUM

SELECT * FROM api_calls
name: api_calls
time                         value
----                         -----
2018-03-02T17:22:53.5335191Z 1
2018-03-02T17:22:56.3249691Z 2
2018-03-02T17:22:59.619759Z  4
2018-03-02T17:23:01.6130663Z 6
2018-03-02T17:23:04.1959738Z 7

每次您的应用程序向您报告一个新的计数器值时(在我的情况下,我有 API 调用计数器)。

调用DIFFERENCE将为我提供每个指标报告(每个时间戳)的计数器增量:

SELECT DIFFERENCE(value) FROM api_calls
name: api_calls
time                         difference
----                         ----------
2018-03-02T17:22:56.3249691Z 1
2018-03-02T17:22:59.619759Z  2
2018-03-02T17:23:01.6130663Z 2
2018-03-02T17:23:04.1959738Z 1
于 2018-03-02T17:30:17.007 回答