2016-11-07 7 views
1

1リクエストあたりの平均応答時間、1リクエストあたりの最小応答時間、1リクエストあたりの最大応答時間を生成する方法はありますか?私は競合状態を避けるためにAtomic変数やリクエストごとの同期を使用することができますが、これが最善の方法かどうかはわかりません。Spring Actuatorカスタムメトリック(平均、最小、最大応答時間)

+0

Springの 'CounterService'と' GaugeService'を使ってカスタムメトリックを追加することができます。 – Isukthar

+1

ありがとうございますが、これらのオブジェクトはメトリックのみを更新できます。更新する前にいくつかのアクション(比較、追加、逓倍、除算)を行うために、(メモリに)保存して以前の値にアクセスする明白な方法はありません。私はスレッドセーフな方法を探しているし、私は今までこれらのアクションを適用する前にアプリケーションのスコープをロックしています。 – ampofila

答えて

1

この問題の解決策は、dropwizard metricsタイマーを使用することです。残念ながら、私たちはAPIの制限であるhereと全く同じ問題に直面しています。しかし全体的にこれは仕事をすることができます。

0

応答時間を記録する場合は、ハンドラの先頭と最後で時間を取得してから、GaugeServiceをデルタで更新できます。 この値の履歴を保存する場合は、GaugeWriterを使用してGaugeServiceから現在のデータをエクスポートできます。

+0

あなたの答えをありがとう。残念ながら、古いバージョンのスプリングアクチュエータを使用しています。より多くのメソッドがオーバーロードされていれば、必要なものはdropwizardメトリックで実行できます。 – ampofila

関連する問題