Grafana / InfluxDB查询具有时间范围的计数器数据

时间:2018-02-27 06:54:34

标签: influxdb grafana telegraf

我有一个应用程序将指标发送到涌入数据库,我们使用grafana根据该数据绘制图表。对于其中一个指标,应用程序发送计数器类型的数据,基本上每当有事件计数递增时。有没有办法在Grafana中查询这类数据和情节?

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

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

示例:

T1 : 10
T1+10minutes : 12

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

我正在使用以下涌入/ grafana查询

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

提前致谢

1 个答案:

答案 0 :(得分:1)

如果您只需要当前和之前的计数器值之间的差异(基本上是值增量),那么只需使用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