golang toolkits包的使用方法介紹
在檢視 專案原始碼時,經常會看到其引用了一個類庫 ,而仔細檢視該類庫的作者為秦曉輝(UlricQin)--- 原Open-Falcon主程,現滴滴雲運維負責人 。所以有了這層關係就不難理解open-Falcon引用toolkits裡很多程式碼的原因了吧。toolkits里根據模組型別分了多個子專案,其根據型別又分為 底層效能監控的、郵件傳送的、網路的等,這裡以 為例,說下如下引用。
如下引用其中的部分實現的函式進行處理,程式碼如下:
// code from package main import ( "fmt" "github.com/toolkits/nux" ) func main() { l,_ := nux.LoadAvg() fmt.Println(nux.LoadAvg()) m,_ := nux.MemInfo() fmt.Println(l) fmt.Println(l.Avg1min) fmt.Println(m) fmt.Println(nux.NumCpu()) //fmt.Println(nux.CurrentProcStat()) fmt.Println(nux.ListMountPoint()) fmt.Println(nux.BuildDeviceUsage("/dev/mapper/centos-root","/","xfs")) } 執行結果如下:
其程式碼寫的比較清晰簡潔,可以作為參考使用下。不過其對部分指標處理的結果可能和我們所需的結果還是有一些出入,比如,我們平時需要檢視的CPU使用率,並不會取各各指標占用的CPU時間,而是直接像top檢視到的結果一樣,只看idel、us等佔用的CPU百分比是多少。正因為如些,所以open-falcon專案在此基礎上又進行了二次封裝,其地址為: 這裡只取其中一個指標的獲取方式的程式碼,如下:
func CpuIdle() float64 { psLock.RLock() defer psLock.RUnlock() dt := deltaTotal() if dt == 0 { return 0.0 } invQuotient := 100.00 / float64(dt) return float64(procStatHistory[0].Cpu.Idle-procStatHistory[1].Cpu.Idle) * invQuotient }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2285535/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- golang ssh包使用方法介紹Golang
- oracle 11g DBMS_SQLTUNE 包的使用方法介紹OracleSQL
- Golang Tools 介紹Golang
- Audit 功能的使用方法介紹
- Golang : pflag 包簡介Golang
- Golang : cobra 包簡介Golang
- domutils 工具庫的使用方法介紹
- Lombok介紹及使用方法Lombok
- golang-切片slice的基本介紹Golang
- Hanlp在ubuntu中的使用方法介紹HanLPUbuntu
- Lombok介紹,使用方法及原理Lombok
- Ldd命令介紹及使用方法
- pytorch 包介紹PyTorch
- 介紹 golang net/http 原始碼GolangHTTP原始碼
- vuex詳細介紹和使用方法Vue
- jar包和war包的介紹與區別JAR
- jar包、war包和ear包的介紹與區別JAR
- SAP Cloud SDK for JavaScript 的搭建和使用方法介紹CloudJavaScript
- javascript閉包概念介紹JavaScript
- Springmvc jar包介紹SpringMVCJAR
- Android中SharedPreferences使用方法介紹Android
- golang實現常用集合原理介紹Golang
- golang 介紹以及踩坑之四Golang
- [譯] part 20: golang 併發介紹Golang
- SAP UI5 navpopover Factory 的使用方法介紹UI
- DriverStudio工具包介紹
- 簡單介紹JavaScript閉包JavaScript
- SJL 開發包1.0介紹
- jQuery外掛Tmpl使用方法簡單介紹jQuery
- Golang指標基本介紹及使用案例Golang指標
- 隨身碟恢復工具的使用方法與技巧介紹
- 簡單介紹.Net效能測試框架Crank的使用方法框架
- Python的包(package)和模組(module)介紹PythonPackage
- 介紹 10 個有用的 Flutter 軟體包Flutter
- javascript中的閉包概念簡單介紹JavaScript
- jar包涉及到的知識介紹JAR
- 簡單介紹SQL中ISNULL函式使用方法SQLNull函式
- Deadmin 更新部分文件介紹快速使用方法