- Start 后台每秒采集(CPU/内存/磁盘/网络/进程/连接/主机), GetInfo 取快照 - 基于 gopsutil, 附测试、examples/monitor 例程与包 README
35 lines
771 B
Go
35 lines
771 B
Go
package monitor
|
||
|
||
import (
|
||
"strings"
|
||
|
||
"github.com/shirou/gopsutil/v3/host"
|
||
)
|
||
|
||
// HostInfo 主机信息(主机名/系统/开机时长等,gopsutil host.InfoStat)
|
||
type HostInfo struct {
|
||
HostName string `json:"hostName"`
|
||
Uptime uint64 `json:"uptime"`
|
||
BootTime uint64 `json:"bootTime"`
|
||
Procs uint64 `json:"procs"`
|
||
Os string `json:"os"`
|
||
Platform string `json:"platform"`
|
||
}
|
||
|
||
// getHostInfo 采集主机信息
|
||
func getHostInfo() (HostInfo, error) {
|
||
info := HostInfo{}
|
||
h, err := host.Info()
|
||
|
||
if err != nil {
|
||
return info, err
|
||
}
|
||
info.HostName = h.Hostname
|
||
info.Uptime = h.Uptime
|
||
info.BootTime = h.BootTime
|
||
info.Procs = h.Procs
|
||
info.Os = h.OS
|
||
info.Platform = strings.Trim(strings.Replace(h.Platform, "Microsoft", "", -1), " ")
|
||
return info, nil
|
||
}
|