InfluxDB:分组超过1天时开始时间错误

InfluxDB:分组超过1天时开始时间错误,influxdb,Influxdb,当时间间隔超过1天时,我坚持在一个与问题相关的小组。当谷物超过1天时,不同谷物的开始时间是错误的 谷物=1天 预期开始时间=2019-01-01 实际开始时间=2019-01-01 >从rabbitmq中选择平均值(“消息”),其中host='rabbitmq_cluster'和time>='2019-01-01 00:00:00'和time select平均值(“消息”),从rabbitmq中选择平均值(“消息”),其中host='rabbitmq_cluster'和time>='201

当时间间隔超过1天时,我坚持在一个与问题相关的小组。当谷物超过1天时,不同谷物的开始时间是错误的


  • 谷物=1天
  • 预期开始时间=2019-01-01
  • 实际开始时间=2019-01-01

>从rabbitmq中选择平均值(“消息”),其中host='rabbitmq_cluster'和time>='2019-01-01 00:00:00'和time select平均值(“消息”),从rabbitmq中选择平均值(“消息”),其中host='rabbitmq_cluster'和time>='2019-01-01 00:00:00'和time select平均值(“消息”)来自rabbitmq,其中主机='rabbitmq_cluster'和时间>='2019-01-01 00:00:00',时间InfluxDB使用历元时间计算当前时间边界。它参照历元时间创建groupby插槽

为了保持groupby中的开始时间相同,我需要传递一个偏移量

下面是一个用python编写的简单偏移量计算函数,它使用开始时间和groupby间隔

def get_offset(start_dt, interval_m):
    epoch = datetime.datetime.utcfromtimestamp(0)
    offset = (start_time - epoch).total_seconds() % (interval_m * 60)
    return offset

start_dt = datetime.datetime(2019,1,1,0,0)
interval_m = 1440 * 3 # 3 days 
offset_s = get_offset(start_dt, interval_m) # 172800

Groupby间隔3天,查询将如下所示,带有偏移量

> select mean("messages") from rabbitmq where host='rabbitmq_cluster' and time>='2019-01-01 00:00:00' and time<'2019-01-16 00:00:00' GROUP BY time(3d, 172800s), "host" LIMIT 2;
time                      mean_messages
----                      ----
2019-01-01T00:00:00+05:30 539232
2019-01-04T00:00:00+05:30 464640

>从rabbitmq中选择平均值(“消息”),其中host='rabbitmq_cluster'和time>='2019-01-01 00:00:00'和time非常聪明。你知道如何在php中实现这一点吗?你只需要在php中编写get_offset函数,为流入查询生成偏移量,以获得清晰的答案-非常有用!在get_offset()函数中确实有一个小的输入错误,在
offset=
行中,变量引用应该是
start_dt
而不是
start_time
。我试图提交一个编辑建议,但被拒绝,因为显然“编辑必须至少6个字符”…哈
> select mean("messages") from rabbitmq where host='rabbitmq_cluster' and time>='2019-01-01 00:00:00' and time<'2019-01-16 00:00:00' GROUP BY time(5d), "host" LIMIT 2;
time                 mean_messages
----                 ----
2018-12-30T00:00:00Z 529056
2019-01-04T00:00:00Z 826694.3999999762
def get_offset(start_dt, interval_m):
    epoch = datetime.datetime.utcfromtimestamp(0)
    offset = (start_time - epoch).total_seconds() % (interval_m * 60)
    return offset

start_dt = datetime.datetime(2019,1,1,0,0)
interval_m = 1440 * 3 # 3 days 
offset_s = get_offset(start_dt, interval_m) # 172800

> select mean("messages") from rabbitmq where host='rabbitmq_cluster' and time>='2019-01-01 00:00:00' and time<'2019-01-16 00:00:00' GROUP BY time(3d, 172800s), "host" LIMIT 2;
time                      mean_messages
----                      ----
2019-01-01T00:00:00+05:30 539232
2019-01-04T00:00:00+05:30 464640