亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Micrometer Timer.start/stop 和 Timer.record 之間的區別

Micrometer Timer.start/stop 和 Timer.record 之間的區別

哆啦的時光機 2023-04-26 14:54:12
我想檢查數據庫命中(多個數據庫)和請求處理的延遲。什么是更好的選擇Timer.Sample或Timer.record?我正在使用以 Prometheus 為基礎的 Micrometer。
查看完整描述

2 回答

?
青春有我

TA貢獻1784條經驗 獲得超8個贊

計算事件持續時間后使用 Timer.record 。

default?void?record(Duration?duration)

當您想要傳遞 Sample 以確定發布指標的點時,您通常會使用 Timer.Sample,不一定在完全相同的位置。您還可以更精細地控制使用 Timer 對象發布的內容。這是一個兩步過程。

  1. 在事件開始之前創建一個樣本以返回一個樣本對象

    static?Sample?start(Clock?clock)?{..}
  2. 使用 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));

? ? }


查看完整回答
反對 回復 2023-04-26
?
慕尼黑8549860

TA貢獻1818條經驗 獲得超11個贊

主要區別是添加了手動停止錄制的選項

您還可以將開始狀態存儲在稍后可以停止的示例實例中。該示例根據注冊表的時鐘記錄開始時間。啟動樣本后,執行要計時的代碼,并通過調用樣本的stop(Timer) 完成操作。


查看完整回答
反對 回復 2023-04-26
  • 2 回答
  • 0 關注
  • 378 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號