2 回答

TA貢獻1784條經驗 獲得超8個贊
計算事件持續時間后使用 Timer.record 。
default?void?record(Duration?duration)
當您想要傳遞 Sample 以確定發布指標的點時,您通常會使用 Timer.Sample,不一定在完全相同的位置。您還可以更精細地控制使用 Timer 對象發布的內容。這是一個兩步過程。
在事件開始之前創建一個樣本以返回一個樣本對象
static?Sample?start(Clock?clock)?{..}
使用 Sample.stop 停止示例并在活動完成時推送指標
public?long?stop(Timer?timer)?{..}
例如來自TimedAspect的那個-
? Timer.Sample sample = Timer.start(registry);
? ? try {
? ? ? ? return pjp.proceed();
? ? } finally {
? ? ? ? sample.stop(Timer.builder(timed.value())
? ? ? ? ? ? ? ? .description(timed.description().isEmpty() ? null : timed.description())
? ? ? ? ? ? ? ? .tags(timed.extraTags())
? ? ? ? ? ? ? ? .tags(tagsBasedOnJoinpoint.apply(pjp))
? ? ? ? ? ? ? ? .publishPercentileHistogram(timed.histogram())
? ? ? ? ? ? ? ? .publishPercentiles(timed.percentiles().length == 0 ? null : timed.percentiles())
? ? ? ? ? ? ? ? .register(registry));
? ? }

TA貢獻1818條經驗 獲得超11個贊
主要區別是添加了手動停止錄制的選項
您還可以將開始狀態存儲在稍后可以停止的示例實例中。該示例根據注冊表的時鐘記錄開始時間。啟動樣本后,執行要計時的代碼,并通過調用樣本的stop(Timer) 完成操作。
添加回答
舉報