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]]}]
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
始终指向当前时间。
请任何人解释为什么会这样?以及如何根据我的期望限制数据点?
答案 0 :(得分:1)
我已经改变了我在评论中所说的话。
我查看了Graphite documentation for summarize()
。
问题在于,默认情况下,存储桶会与间隔对齐。如果您指定的时间间隔为'15min'
,from=12:07_20131110
和until=12:22_20131110
,则会有两个存储桶。第一个是12:00-12:15,第二个是12:15-12:30。同样,如果您指定的时间间隔为'1hour'
,from=12:24_20131109
和until=12:24_20131110
,则会有25个存储桶。第一个是2013-11-09 12:00-1:00,最后一个是2013-11-10的12:00-1:00。
问题,例如,桶是与间隔对齐的,但是你的时间和时间都没有。您可以指定alignToFrom=True
来指定与您的时间对齐的存储桶。我不确定那会给你你想要的水桶数量,但它应该让你更明显应该丢弃哪个水桶,因为如果有一个“额外”水桶,它几乎完全落在你的直到范围。
答案 1 :(得分:0)
也许这种行为是这样的,因为需要两个n + 1个限制端来构成n个区间。
将确切的UNIX时间纪元传递给from
和until
。