mirror of
https://github.com/fankes/komari-agent.git
synced 2025-10-19 02:59:23 +08:00
43 lines
752 B
Go
43 lines
752 B
Go
package monitoring
|
|
|
|
import (
|
|
"github.com/komari-monitor/komari-agent/cmd/flags"
|
|
"github.com/shirou/gopsutil/v4/mem"
|
|
)
|
|
|
|
type RamInfo struct {
|
|
Total uint64 `json:"total"`
|
|
Used uint64 `json:"used"`
|
|
}
|
|
|
|
func Ram() RamInfo {
|
|
raminfo := RamInfo{}
|
|
v, err := mem.VirtualMemory()
|
|
if err != nil {
|
|
raminfo.Total = 0
|
|
raminfo.Used = 0
|
|
return raminfo
|
|
}
|
|
if flags.MemoryModeAvailable {
|
|
raminfo.Total = v.Total
|
|
raminfo.Used = v.Total - v.Available
|
|
return raminfo
|
|
}
|
|
raminfo.Total = v.Total
|
|
raminfo.Used = v.Used
|
|
|
|
return raminfo
|
|
}
|
|
func Swap() RamInfo {
|
|
swapinfo := RamInfo{}
|
|
s, err := mem.SwapMemory()
|
|
if err != nil {
|
|
swapinfo.Total = 0
|
|
swapinfo.Used = 0
|
|
} else {
|
|
swapinfo.Total = s.Total
|
|
swapinfo.Used = s.Used
|
|
}
|
|
return swapinfo
|
|
}
|