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