1
0
Fork 0
cpu_ctrl/test/os_linux.go

124 lines
3.4 KiB
Go

package main
import (
"github.com/mackerelio/go-osstat/memory"
"github.com/mackerelio/go-osstat/loadavg"
"github.com/mackerelio/go-osstat/network"
"github.com/mackerelio/go-osstat/uptime"
"github.com/mackerelio/go-osstat/cpu"
"github.com/mackerelio/go-osstat/disk"
"github.com/hako/durafmt"
"fmt"
"os"
"amuz.es/src/infra/goutils/misc"
)
func a() {
memory, err := memory.Get()
if err != nil {
fmt.Fprintf(os.Stderr, "%s\n", err)
return
}
//Total
//Used
//Buffers
//Cached
//Free
//Active
//Inactive
//SwapTotal
//SwapUsed
//SwapCached
//SwapFree uint64
// Stats represents memory statistics for linux
fmt.Println("memory total: ", misc.FileSizeIEC(memory.Total))
fmt.Println("memory used: ", misc.FileSizeIEC(memory.Used))
fmt.Println("memory buffers: ", misc.FileSizeIEC(memory.Buffers))
fmt.Println("memory cached: ", misc.FileSizeIEC(memory.Cached))
fmt.Println("memory free: ", misc.FileSizeIEC(memory.Free))
fmt.Println("memory active: ", misc.FileSizeIEC(memory.Active))
fmt.Println("memory inactive: ", misc.FileSizeIEC(memory.Inactive))
fmt.Println("memory swapTotal: ", misc.FileSizeIEC(memory.SwapTotal))
fmt.Println("memory swapUsed: ", misc.FileSizeIEC(memory.SwapUsed))
fmt.Println("memory swapCached: ", misc.FileSizeIEC(memory.SwapCached))
fmt.Println("memory swapFree: ", misc.FileSizeIEC(memory.SwapFree))
}
func b() {
load, err := loadavg.Get()
if err != nil {
fmt.Fprintf(os.Stderr, "%s\n", err)
return
}
fmt.Printf("load Loadavg1: %f \n", load.Loadavg1)
fmt.Printf("load Loadavg5: %f \n", load.Loadavg5)
fmt.Printf("load Loadavg15: %f \n", load.Loadavg15)
}
func c() {
netios, err := network.Get()
if err != nil {
fmt.Fprintf(os.Stderr, "%s\n", err)
return
}
for _, netio := range netios {
fmt.Println("netio name: ", netio.Name)
fmt.Println("netio rxBytes: ", misc.FileSizeIEC(netio.RxBytes))
fmt.Println("netio txBytes: ", misc.FileSizeIEC(netio.TxBytes))
}
}
func d() {
ut, err := uptime.Get()
if err != nil {
fmt.Fprintf(os.Stderr, "%s\n", err)
return
}
fmt.Printf("uptime: %s\n", durafmt.Parse(ut).String())
}
func e() {
ct, err := cpu.Get()
if err != nil {
fmt.Fprintf(os.Stderr, "%s\n", err)
return
}
fmt.Printf("cpu user: %d\n", ct.User)
fmt.Printf("cpu nice: %d\n", ct.Nice)
fmt.Printf("cpu system: %d\n", ct.System)
fmt.Printf("cpu idle: %d\n", ct.Idle)
fmt.Printf("cpu iowait: %d\n", ct.Iowait)
fmt.Printf("cpu irq: %d\n", ct.Irq)
fmt.Printf("cpu softirq: %d\n", ct.Softirq)
fmt.Printf("cpu steal: %d\n", ct.Steal)
fmt.Printf("cpu total: %d\n", ct.Total)
fmt.Printf("cpu user: %f%%\n", float64(ct.User*100)/float64(ct.Total))
fmt.Printf("cpu nice: %f%%\n", float64(ct.Nice*100)/float64(ct.Total))
fmt.Printf("cpu system: %f%%\n", float64(ct.System*100)/float64(ct.Total))
fmt.Printf("cpu idle: %f%%\n", float64(ct.Idle*100)/float64(ct.Total))
fmt.Printf("cpu iowait: %f%%\n", float64(ct.Iowait*100)/float64(ct.Total))
fmt.Printf("cpu irq: %f%%\n", float64(ct.Irq*100)/float64(ct.Total))
fmt.Printf("cpu softirq: %f%%\n", float64(ct.Softirq*100)/float64(ct.Total))
fmt.Printf("cpu steal: %f%%\n", float64(ct.Steal*100)/float64(ct.Total))
}
func f() {
disks, err := disk.Get()
if err != nil {
fmt.Fprintf(os.Stderr, "%s\n", err)
return
}
for _, dsk := range disks {
fmt.Println("disk name: ", dsk.Name)
fmt.Println("disk read: ", misc.FileSizeIEC(dsk.ReadsCompleted))
fmt.Println("disk written: ", misc.FileSizeIEC(dsk.WritesCompleted))
}
}