1

ユースケース

データベースに複数の変更ログが保存されており、変更間の期間を監視するヒストグラムを作成したいと考えています。

問題

の開始時刻を設定する方法はないようです 。たとえば、現在の変更ログHistorgram.Timerを指定して設定したいとします。lastUpdated

アプローチの道

1 サブクラス化Histogram

動作するはずです。ただし、java-lib はprotected/package-privateを広範囲に使用するため、ライブラリの大部分をコピーしないと難しくなります。

2 リフレクションの使用

が作成された後、リフレクションを使用してフィールドHistogram.Timerを設定できるはずです。startこのフィールドは としてマークされているprivate finalため、一部の環境では SecurityManager によって停止される可能性があります。

アイデア?

どちらのソリューションも正しい方法のようには見えず、より単純なソリューションを見落としていると思われます (ただし、SO または Google で何かを見つけることができます)。このシナリオで役立つ場合は、グラファナを使用してメトリクスを視覚化しています。

4

1 に答える 1

2

ヒストグラムが時間を測定しているという理由だけでHistogram使用する必要がないため、をサブクラス化する必要はありません。Histogram.Timer

myHistogram.observe(System.now() - lastUpdated)データベースに新しい変更を記録するたびに呼び出すだけです。

于 2018-09-19T07:51:14.040 に答える