3

定期的に届くメッセージを処理しています。それらの処理にかかる時間を測定するために、codahale dropwizard metrics の「Timer」を使用します。

私は誰かがここで同じ問題を抱えていることを発見しました:「指数関数的に減衰するリザーバーの問題は、新しいデータが入っていない場合、常に同じ数字を出し続けることです。たとえば、5 と 7 でタイマーを更新するとします (その後、何も入れないでください) 、いつ表示されても (x 時間後でも)、タイマーは平均を 6 と表示しますが、これは決して過去 5 分間を代表するものではありません。したがって、次の場合にのみ機能しますデータは常に到着しています。」

濃い青の線でわかるように: ここに画像の説明を入力

しかし、それを解決するための提案はありません。そして、彼らはそれが実装されるつもりはないと言います: https://github.com/dropwizard/metrics/issues/399

これらのタイマーを適切にリセットするにはどうすればよいですか、または混乱しないように視覚化するにはどうすればよいですか?

4

2 に答える 2

8
Note: It is too long for comment.

を使用するSlidingTimeWindowReservoirと、ほとんどのユースケースに対応できます。ただし、このコメントで指摘されているように、イベントの数によっては問題が発生する可能性があります。すべての測定値がウィンドウ内のメモリ内に保持され、多数のイベントでは受け入れられなくなります。

もっとうまくやれるだろうか?探し続けましょう。運が良ければ、このブログ記事を見つけることができます。それはあなたの種類の問題を正確に説明しています。彼らの単純な汚れたソリューションへのリンクがあります。HdrHistogramを使用するための提案も。

また、メトリクスのメーリング リストには、まさにこの問題に関するメッセージがいくつかあります。たとえばMarshall Pierce/hdrhistogram-metrics-reservoirをポイントします。レイテンシの測定に使用する理由とその理由についてはHdrHistogram、プロジェクトの説明を確認してください。

最後に、さらに掘り下げると、vladimir-bukhtoyarov/metrics-core-hdr プロジェクトも見つかります。それHdrHistogramも使っています。

したがって、同じデータ構造を使用し、ヒットした問題のケースを解決すると主張する 2 つの同様のライブラリがあります。

于 2016-11-25T17:00:50.323 に答える