2016-11-07 18 views
1

有沒有一種方法可以生成每個請求的平均響應時間,每個請求的最小響應時間和每個請求的最大響應時間?我想我可以使用Atomic變量或每個請求的同步來避免競爭條件,但我不確定這是否是最好的方法。彈簧執行器自定義指標(平均,最小,最大響應時間)

+0

您可以使用Spring'CounterService'和'GaugeService'添加自定義度量。 – Isukthar

+1

是的,謝謝你,但這些對象只能更新度量。沒有明顯的方法來存儲(在內存中),然後訪問先前的值,以便在更新和再次存儲該值之前執行一些操作(即,比較,加,乘,除)。我正在尋找一種線程安全的方式,並且我現在所擁有的所有功能都是在應用這些操作之前鎖定應用程序範圍。 – ampofila

回答

1

此問題的解決方案是使用dropwizard metrics計時器。不幸的是,我們正面臨着與here相同的問題,這是API的限制。但總體而言,這可以完成這項工作。

0

如果要記錄響應時間,可以在處理程序的開始和結束處獲取時間,然後使用delta更新GaugeService。 如果要保存此值的歷史記錄,可以使用GaugeWriter從GaugeService中導出當前數據。

+0

謝謝你的回答。不幸的是,我們使用彈簧執行器的舊版本。如果他們有更多的重載方法,我們需要使用dropwizard度量標準來完成。 – ampofila

相關問題