golang toolkits包的使用方法介紹
在檢視 open-falcon 專案原始碼時,經常會看到其引用了一個類庫 https://github.com/toolkits ,而仔細檢視該類庫的作者為秦曉輝(UlricQin)--- 原Open-Falcon主程,現滴滴雲運維負責人 。所以有了這層關係就不難理解open-Falcon引用toolkits裡很多程式碼的原因了吧。toolkits里根據模組型別分了多個子專案,其根據型別又分為 LINUX 底層效能監控的、郵件傳送的、網路的等,這裡以 nux項 為例,說下如下引用。
如下引用其中的部分實現的函式進行處理,程式碼如下:
// code from www.361way.com 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專案在此基礎上又進行了二次封裝,其地址為: https://github.com/open-falcon/falcon-plus/blob/master/modules/agent/funcs/cpustat.go 這裡只取其中一個指標的獲取方式的程式碼,如下:
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
- Golang Tools 介紹Golang
- 包介紹
- domutils 工具庫的使用方法介紹
- Lombok介紹及使用方法Lombok
- Golang : pflag 包簡介Golang
- Golang : cobra 包簡介Golang
- Hanlp在ubuntu中的使用方法介紹HanLPUbuntu
- pytorch 包介紹PyTorch
- golang-切片slice的基本介紹Golang
- vuex詳細介紹和使用方法Vue
- 介紹 golang net/http 原始碼GolangHTTP原始碼
- SAP Cloud SDK for JavaScript 的搭建和使用方法介紹CloudJavaScript
- SAP UI5 navpopover Factory 的使用方法介紹UI
- jar包和war包的介紹與區別JAR
- jar包、war包和ear包的介紹與區別JAR
- DriverStudio工具包介紹
- [譯] part 20: golang 併發介紹Golang
- golang 介紹以及踩坑之四Golang
- golang實現常用集合原理介紹Golang
- Deadmin 更新部分文件介紹快速使用方法
- go 字串之 strings 包介紹Go字串
- 簡單介紹JavaScript閉包JavaScript
- RPM包安裝與介紹
- 隨身碟恢復工具的使用方法與技巧介紹
- 簡單介紹.Net效能測試框架Crank的使用方法框架
- Golang指標基本介紹及使用案例Golang指標
- SOLIDWORKS批次改名外掛功能介紹以及使用方法Solid
- 簡單介紹SQL中ISNULL函式使用方法SQLNull函式
- Python的包(package)和模組(module)介紹PythonPackage
- 介紹 10 個有用的 Flutter 軟體包Flutter
- SAP UI5 OData 模型(V2) 的使用方法介紹UI模型
- golang資料型別基本介紹與使用Golang資料型別
- Golang 的 JSON 包GolangJSON
- 介紹一個好用的 Laravel Menu 建構包Laravel
- 兄弟連golang神技(1)-關於 Go 語言的介紹Golang
- tcpdump抓包及tshark解包方法介紹TCP
- 『簡書API:jianshu 基於golang -- 用法介紹 (2)』APIGolang