Goでシステムリソース情報を取得する
やること
Goでシステムリソースを取得してみる。 今回はライブラリを利用して取得してみる。利用したライブラリは以下です。
cloudfoundry/gosigar
このライブラリを利用してリソース情報を取得する書き方をまとめてくれています。
取得するリソース
ソースコード
package main import ( "fmt" "github.com/cloudfoundry/gosigar" ) // MB func format(val uint64) uint64 { return val / 1024 / 1024 } func main(){ uptime := sigar.Uptime{} uptime.Get() // UPTIME fmt.Printf("Uptime: %s \n", uptime.Format()) avg := sigar.LoadAverage{} avg.Get() // Load Average fmt.Printf("Load Average %.2f, %.2f \n", avg.One, avg.Five) mem := sigar.Mem{} mem.Get() // Memory Usage[MB] fmt.Printf("Memory[MB] total=%d, used=%d, free=%d \n", format(mem.Total), format(mem.Used), format(mem.Free)) }
- 実行結果
Uptime: 15 days, 14:05 Load Average 2.09, 2.49 Memory[MB] total=8192, used=8112, free=79
まとめ
cloudfoundry/gosigar
のライブラリを利用して、システムリソース情報を取得してみました。
次は、このライブラリを利用せずにシステムリソースを取得するコードを書いていきたいと思います。