0
  1. render?target=summarize(\*.\*.\*.count,'15min','sum')&from=12:07_20131110&format=json&until=12:22_20131110
    

    我希望这里有 1 个数据点,但我得到 2 个

    [{"target"=>"summarize(foo.example.abc.count, \"15min\", \"sum\")", "datapoints"=>[[nil, 1384113600], [3.0, 1384114500]]}] 
    
  2. render?target=summarize(\*.\*.\*.count,'1hour','sum')&from=12:24_20131109&format=json&until=12:24_20131110
    

    我预计这里有 24 个数据点,但在过去 24 小时内我得到了 25 个数据点

    [{"target"=>"summarize(foo.example.abc.count, \"1hour\", \"sum\")", "datapoints"=>[[nil, 1384027200], [nil, 1384030800], [nil, 1384034400], [nil, 1384038000], [nil, 1384041600], [nil, 1384045200], [nil, 1384048800], [nil, 1384052400], [nil, 1384056000], [nil, 1384059600], [nil, 1384063200], [nil, 1384066800], [nil, 1384070400], [nil, 1384074000], [nil, 1384077600], [nil, 1384081200], [nil, 1384084800], [nil, 1384088400], [nil, 1384092000], [nil, 1384095600], [nil, 1384099200], [nil, 1384102800], [nil, 1384106400], [4.0, 1384110000], [4.0, 1384113600]]}]
    

这里until总是指向当前时间。请问有人能解释为什么会这样吗?以及如何限制数据点符合我的期望?

4

2 回答 2

1

我已经改变了我在评论中所说的想法。

我查看summarize().

问题是,默认情况下,桶与间隔对齐。如果您指定、 和的间隔'15min',则将有两个桶。第一个是 12:00-12:15,第二个是 12:15-12:30。同样,如果您指定、 和的间隔,则将有 25 个桶。第一个是 2013-11-09 的 12:00-1:00,最后一个是 2013-11-10 的 12:00-1:00。from=12:07_20131110until=12:22_20131110'1hour'from=12:24_20131109until=12:24_20131110

问题,例如,是桶与间隔对齐,但您的开始和结束时间不是。您可以指定alignToFrom=True指定与您的起始时间对齐的存储桶。我不确定这会给你想要的桶数,但它应该更清楚你应该丢弃哪个桶,因为如果有一个“额外”的桶,它几乎会完全落在你的从 - 直到范围。

于 2013-11-11T16:19:29.360 回答
0

也许这种行为之所以如此,是因为需要两个 n+1 限制端来构建 n 个间隔。

将确切的 UNIX 时间纪元传递给fromuntil

于 2013-11-11T05:06:35.927 回答