- Start 后台每秒采集(CPU/内存/磁盘/网络/进程/连接/主机), GetInfo 取快照 - 基于 gopsutil, 附测试、examples/monitor 例程与包 README
30 lines
676 B
Go
30 lines
676 B
Go
package monitor
|
|
|
|
import (
|
|
"fmt"
|
|
"strconv"
|
|
|
|
"github.com/shirou/gopsutil/v3/load"
|
|
)
|
|
|
|
// LoadInfo 系统负载信息(1/5/15 分钟均值)
|
|
type LoadInfo struct {
|
|
Load1 float64 `json:"load1"`
|
|
Load5 float64 `json:"load5"`
|
|
Load15 float64 `json:"load15"`
|
|
}
|
|
|
|
// getLoadInfo 采集系统负载
|
|
func getLoadInfo() (LoadInfo, error) {
|
|
info := LoadInfo{}
|
|
v, err := load.Avg()
|
|
if err != nil {
|
|
return info, err
|
|
}
|
|
info.Load1, _ = strconv.ParseFloat(fmt.Sprintf("%.2f", v.Load1), 64)
|
|
info.Load5, _ = strconv.ParseFloat(fmt.Sprintf("%.2f", v.Load5), 64)
|
|
info.Load15, _ = strconv.ParseFloat(fmt.Sprintf("%.2f", v.Load15), 64)
|
|
//fmt.Printf("%v\n", info)
|
|
return info, nil
|
|
}
|