您好,登錄后才能下訂單哦!
這篇文章主要介紹“go監控方案中的metrics是什么”,在日常操作中,相信很多人在go監控方案中的metrics是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”go監控方案中的metrics是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
Metrics本來是一個Java庫, 捕獲JVM和應用程序級指標。也就是說可以獲得代碼級別的數據指標,比如方法調用了多少次之類。
goalng 在github上使用的包是 https://github.com/rcrowley/go-metrics.git
go-metrics
這個庫官方采納的influxdb 方案只提供了TCP連接功能,然而我想要用的是使用UDP進行數據傳輸,這樣對性能損耗較小。
這主要是由于influxdb是使用http作為API接口,采納的這個包自己實現了一套定時發送http請求的方式去存儲數據。
Metrics中MetricRegistry是中心容器,它是程序中所有度量的容器,所有新的度量工具都要注冊到一個MetricRegistry實例中才可以使用,盡量在一個應用中保持讓這個MetricRegistry實例保持單例。
示例:
r := metrics.NewRegistry() // 整個系統全局唯一 c := metrics.NewCounter() // 注冊一個計數器 r.Register(“counter”, c) // 這個注冊名全局唯一
Metrics提供5種基本的度量類型:Gauges, Counters, Histograms, Meters和 Timers
Gauge是最簡單的度量類型,只有一個簡單的返回值,
他用來記錄一些對象或者事物的瞬時值。
類似于程序里的常量,是不變的值。
Counter是一個簡單的計數器,他可以增加和減少。
類似于程序里的全局變量,可以增加和減少來改變值。
Meter是一種只能自增的計數器,通常用來度量一系列事件發生的比率。他提供了平均速率,以及指數平滑平均速率,以及采樣后的1分鐘,5分鐘,15分鐘速率。
類似于 QPS, 每一分鐘發送多少次
Histrogram是用來度量流數據中Value的分布情況,Histrogram可以計算最大/小值、平均值,方差,分位數(如中位數,或者95th分位數),如75%,90%,98%,99%的數據在哪個范圍內。
類似于柱狀圖
中位數,統計學中的專有名詞,代表一個樣本、種群或概率分布中的一個數值,其可將數值集合劃分為相等的上下兩部分。
簡單說,就是一排數據從小到大排列后,中間那個數。
例如: 1,3,6,9,11。中間那個數是6,這就是中位數。1,3,6,9,11,13。這是有六個數,中間是兩個數了,那么中位數就是6和9
四分位數(Quartile)也稱四分位點,是指在統計學中把所有數值由小到大排列并分成四等份,處于三個分割點位置的數值。
首先確定四分位數的位置: Q1的位置= (n+1) × 0.25 Q2的位置= (n+1) × 0.5 Q3的位置= (n+1) × 0.75
所以分位數,就是多少比例樣本表示的數值是多少。
Timer是Histogram跟Meter的一個組合,比如要統計當前請求的速率和處理時間。
到此,關于“go監控方案中的metrics是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。