Files
X-Agents/server/internal/handler/system_helper.go

61 lines
1.1 KiB
Go
Raw Normal View History

package handler
import (
"github.com/shirou/gopsutil/v3/cpu"
"github.com/shirou/gopsutil/v3/mem"
"x-agents/server/internal/model"
)
func getCPUPercent() (float64, error) {
percent, err := cpu.Percent(0, false)
if err != nil {
return 0, err
}
if len(percent) > 0 {
return percent[0], nil
}
return 0, nil
}
func getCPUCoreCount() (int, error) {
count, err := cpu.Counts(false)
if err != nil {
return 0, err
}
return count, nil
}
func getCPUModelName() (string, error) {
info, err := cpu.Info()
if err != nil {
return "Unknown", err
}
if len(info) > 0 {
return info[0].ModelName, nil
}
return "Unknown", nil
}
func getMemoryInfo() (*model.MemoryInfo, error) {
v, err := mem.VirtualMemory()
if err != nil {
return nil, err
}
// 计算使用率
percent := 0.0
if v.Total > 0 {
percent = float64(v.Used) / float64(v.Total) * 100
}
return &model.MemoryInfo{
Total: v.Total,
Used: v.Used,
Available: v.Available,
Percent: percent,
TotalGB: float64(v.Total) / 1024 / 1024 / 1024,
UsedGB: float64(v.Used) / 1024 / 1024 / 1024,
AvailableGB: float64(v.Available) / 1024 / 1024 / 1024,
}, nil
}