2016-06-30 12 views
5

私はシステムで起こっているいくつかの「イベント」を監視するためにcodahaleメトリック(今dropwizardメトリック)を使用しています。私はcountersメトリックを使用して、「イベント」が発生した回数を記録しています。Dropwizardのメトリック - レポート間隔の後にカウンタをリセットする方法

レポーターが印刷した値をカウンタメトリックにチェックしたところ、値が増え続けているように見えます(決してダウンしません)。私の 'イベント'が発生するたびに常にmetrics.inc()関数を使用しているので、これは論理的です。

What I really want is to get count of my 'event' happening between two reporting timesこの場合、私は私のメトリクスを報告するたびに私のカウンターをリセットする必要がありますが、それを行うカウンターメトリックのオプションは見つかりませんでした。このような指標を作成するためにcodahaleユーザーが従う方法や一般的な慣行はありますか?

(時間10秒を報告する)現在の行動:

00:00:00 0 
00:00:10 2 // event happened twice 
00:00:20 2 // event did not occur 
00:00:30 5 // event occured three times` 

期待メトリック:

00:00:00 0 
00:00:10 2 
00:00:20 0 
00:00:30 3 

答えて

1

私はcounterは、あなたのケースのための正しいメトリックではないと信じています。

while(...) { 
    int stuffProcesssed = doStuff(); 
    meter.mark(stuffProcesssed); 
} 
+0

mark.meterは最近の分レートと超過レート(またはアプリの開始から)afaikを与えますが、任意の間隔を選択する能力はありません。 – Sasha

1

合計またはカウント数(合計)を計算するために、任意の間隔ごと:時間間隔ごとにあなた速度を提供しますmeterを使用することを検討して

hitcount(perSecond(your.count), '1day') 

それは内部のすべての黒魔術を行います私の知る限り。 summarize(scaleToSeconds(nonNegativeDerivative(your.count),1), '1day') を含むが、これに限定されず、選択した集約間隔に入る炭素の保持期間(1つまたは複数)に応じてスケーリングが行われるべきである。

関連する問題