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'from=12:07_20131110、およびの間隔を指定するとuntil=12:22_20131110、2 つのバケットが存在します。1回目は12:00~12:15、2回目は12:15~12:30となります。同様に、'1hour'from=12:24_20131109、およびの間隔を指定するとuntil=12:24_20131110、バケットは 25 個になります。最初は 2013 年 11 月 9 日の 12:00-1:00 で、最後は 2013-11-10 の 12:00-1:00 です。

このような問題は、バケットが間隔に合わせて配置されているが、from 時間と until 時間がそうではないことです。alignToFrom=True開始時間に合わせてバケットを指定するように指定できます。必要なバケットの数が得られるかどうかはわかりませんが、「余分な」バケットがある場合、それはほぼ完全に from-until の外側にあるため、どのバケットを破棄する必要があるかがより明確になるはずです範囲。

于 2013-11-11T16:19:29.360 に答える
0

おそらく、この動作は、n 間隔をフレーム化するために 2 つの n+1 制限端が必要なためです。

from正確な UNIX 時間エポックをとに渡しuntilます。

于 2013-11-11T05:06:35.927 に答える