我正在使用Influxdb来存储一些表示对某些服务的请求的数据。我想计算在5秒的时间间隔内1秒内完成的请求数(一秒内可能发生多个请求)。为了实现这一点,我编写了这个查询,以便获得在5秒时间段select sum(Value) as RequestSum from Requests where group by time(5s) fill(0)
内发生的请求量。我面临的问题是,不是从注册的第一个时间戳开始创建时间间隔,在我的例子中,时间戳看起来像2020-10-16 14:09:13
,它总是以一些可以被5整除的秒数开始,比如2020-10-16 14:09:10
。
当我尝试按时间(6s)分组时,当它开始分组的第一个时间戳是2020-10-16 14:09:12
时,同样的情况也会发生。
有没有一种方法可以强制从某个时间戳开始分组,而不是预定义的时间戳?
发布于 2020-11-13 17:53:14
最后,我设法找到了解决方案,我必须添加一个包含开始时间和结束时间的where子句,并且必须将group by time(5s)
更改为group by time(5s, starttime)
,使查询看起来类似于select sum(Value) as RequestSum from Requests where time>=1605197046000ms and time<=1605197120000ms group by time(5s, 1605197046000ms) fill(0)
https://stackoverflow.com/questions/64461475
复制相似问题