タイトルが示すように、私は上記のスタックを使用して、時間の経過に伴う特定のメソッド呼び出しの頻度を把握しています。
これは、コードでメトリクスの収集を設定する方法です。
public void searchProducts(Query query) {
Meter meter = metricRegistry.meter(MetricRegistry.name("search.products"));
meter.mark();
// perform search
// ...
}
これは、Grafana でグラフを構成する方法です。
結果のグラフは次のようになります。
ご覧のとおり、メソッド呼び出しがない場合、行は最新の値でスタックしています。アプリケーションを停止したときに発生した 0 へのドロップがいくつかあります (最初に 2 つの大きな「こぶ」と最後にもう 1 つの「こぶ」の直後)。
最後のマークから時間が経過すると、ラインが 0 に落ちるべきではありませんか? たとえば、アプリケーションが開始され、いくつかのメソッド呼び出しが発生し、各メソッド呼び出しの間に 1 秒が経過し、約 30 秒後に行が 0 に戻り、そこにとどまります。このような:
- 00:00アプリケーションの開始 (ラインは0にあります)
- 00:01メソッド呼び出し (行は1に移動)
- 00:02メソッド呼び出し (行は2に進みます)
- 00:03メソッド呼び出し (行は3に進みます)
- 00:04 何も起こりません(行は3のままです)
- 00:05 何も起こりません(行は3のままです)
- ...
- 00:30 何も起こらない(行が0に落ちる)
代わりに、この場合のメーターはカウンターと同じように動作するように見えます-アプリケーションのライフサイクル全体の値を増やします。
編集:表示スタイル -> ヌル ポイント モード -> ゼロが設定されている場合でもグラフがどのように見えるかを次に示します。表示スタイル→ヌルポイントモード→ヌル設定でもグラフは全く同じように見えます。
更新: 応答が遅れて申し訳ありません - 最近、この問題に戻ってきました。問題の根本的な原因を突き止めました - 基盤となるデータベースがカスタム メトリクス レポーターを備えた InfluxDB であり (InfluxDB の公式レポーターはありません)、レポーター ロジックにバグがあったことが原因でした。
助けてくれてありがとう。