やること
Goでリソースを取得してみる。今回は以下のライブラリを利用しました。
-
cloudfoundry/gosigar
-
実行環境
- MacOS(10.14.1)
- go1.11.2 darwin/amd64
-
このライブラリを利用してリソース情報を取得する書き方をまとめてくれています。
-
取得するリソース
- Uptime
- ロードアベレージ
- メモリ使用量
ソースコード
main.go
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 Used[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
のライブラリを利用して、システムリソース情報を取得してみました。
次は、このライブラリを利用せずにシステムリソースを取得するコードを書いていきたいと思います。