java定时器克隆方式,Java-DropWizard指标计量器与计时器
您之所以會感到困惑,部分原因是DW Metrics Timer IS是DW Metrics Meter。
儀表專用于速率,單位為Hz(事件每秒)。 每個儀表都會發布4(?)個不同的指標:
自指標開始以來的平均(平均)率
1、5和15分鐘的滾動平均費率
您可以通過在代碼的不同點記錄一個值來使用儀表-DW Metrics會自動記下每個呼叫的掛墻時間以及您給它的值,并使用這些來計算該值的增加速率:
Meter getRequests = registry.meter("some-operation.operations")
getRequests.mark() //resets the value, e.g. sets it to 0
int numberOfOps = doSomeNumberOfOperations() //takes 10 seconds, returns 333
getRequests.mark(numberOfOps) //sets the value to number of ops.
我們期望速率為33.3 Hz,因為發生了333次操作,兩次調用mark()之間的時間為10秒。
計時器計算以上四個指標(將每個Timer.Context視為一個事件),并向其中添加許多其他指標:
事件數量的計數
自指標開始以來的最小,平均和最大持續時間
標準偏差
一個“直方圖”,記錄在第50、97、98、99和99.95個百分位數上分配的持續時間
每個計時器總共報告15個指標。
簡而言之:計時器報告很多指標,要理解它們可能很棘手,但是一旦您這樣做,它們便是發現棘手行為的一種非常有效的方法。
事實是,僅收集兩點之間花費的時間并不是一個非常有用的指標。 考慮:您有如下代碼塊:
Timer timer = registry.timer("costly-operation.service-time")
Timer.Context context = timer.time()
costlyOperation() //service time 10 ms
context.stop()
假設costlyOperation()具有不變的成本,不變的負載并且在單個線程上運行。 在1分鐘的報告期內,我們應該預計此操作的時間為6000次。 顯然,我們不會通過6000x線路報告實際的服務時間-而是需要某種方式來匯總所有這些操作,以適合我們所需的報告窗口。 DW Metrics的計時器每分鐘(我們的報告期間)為我們自動執行一次。 5分鐘后,我們的指標注冊表將報告:
速率為100(每秒事件)
1分鐘的平均速率為100
5分鐘的平均速度為100
計數為30000(看到的事件總數)
最多10(ms)
最少10分鐘
平均10
第50個百分點(p50)的值為10
99.9個百分點(p999)的值為10
現在,讓我們考慮進入一個時期,有時我們的操作會長時間脫離軌道和障礙:
Timer timer = registry.timer("costly-operation.service-time")
Timer.Context context = timer.time()
costlyOperation() //takes 10 ms usually, but once every 1000 times spikes to 1000 ms
context.stop()
在1分鐘的收集時間內,由于每千次執行需要更長的時間,因此現在將看到少于6000次執行。 得出大約5505的信息。經過第一分鐘(系統總時間為6分鐘),我們現在將看到:
平均速率98(每秒事件)
1分鐘平均率為91.75
5分鐘平均率為98.35
計數為35505(看到的事件總數)
最長持續時間1000(ms)
最小持續時間為10
平均持續時間10.13
第50個百分點(p50)的值為10
99.9個百分點(p999)的值為1000
如果將其繪制成圖形,您會看到大多數請求(p50,p75,p99等)在10毫秒內完成,但是每1000個請求(p99)中的一個請求在1秒內完成。 這也將被視為平均速度略有降低(約2%),平均1分鐘的幅度顯著降低(將近9%)。
如果僅查看超時時間平均值(速率或持續時間),您將永遠不會發現這些尖峰-如果對許多成功操作進行平均,它們就會被拖入背景噪聲中。 同樣,僅知道最大值也無濟于事,因為它不會告訴您最大值發生的頻率。 這就是為什么直方圖是跟蹤性能的強大工具的原因,也是DW Metrics的計時器同時發布比率和直方圖的原因。
總結
以上是生活随笔為你收集整理的java定时器克隆方式,Java-DropWizard指标计量器与计时器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用python计算准确率_分词结果准确率
- 下一篇: 洛谷 深基 第1部分 语言入门 第7章