Allow to hide swap stats for mem plugin, fix swap calculation

This commit is contained in:
eleksir
2024-01-10 19:07:12 +03:00
parent bc9b8f9106
commit c969ac9e42
4 changed files with 49 additions and 12 deletions

View File

@@ -1,6 +1,7 @@
package main
import (
"log"
"time"
"github.com/shirou/gopsutil/mem"
@@ -19,14 +20,38 @@ var Memory Mem
// UpdateMemStats parses mem info stats.
func UpdateMemStats() {
for {
v, _ := mem.VirtualMemory()
v, err := mem.VirtualMemory()
if Memory.Usedpct != int64(v.UsedPercent) || Memory.Shared != int64(v.Shared/1024/1024) ||
Memory.Swap != int64(v.SwapTotal-v.SwapFree) {
Memory.Usedpct = int64(v.UsedPercent)
Memory.Shared = int64(v.Shared / 1024 / 1024)
Memory.Swap = int64(v.SwapTotal - v.SwapFree)
UpdateReady <- true
if err != nil {
log.Printf("Unable to get memory statistics: %s", err)
time.Sleep(1 * time.Second)
continue
}
sw, err := mem.SwapMemory()
if err != nil {
log.Printf("Unable to get swap statistics: %s", err)
time.Sleep(1 * time.Second)
continue
}
if Conf.Mem.ShowSwap {
if Memory.Usedpct != int64(v.UsedPercent) || Memory.Shared != int64(v.Shared/1024/1024) ||
Memory.Swap != int64(v.SwapTotal-v.SwapFree) {
Memory.Usedpct = int64(v.UsedPercent)
Memory.Shared = int64(v.Shared / 1024 / 1024)
Memory.Swap = int64(sw.Total - sw.Free)
UpdateReady <- true
}
} else {
if Memory.Usedpct != int64(v.UsedPercent) || Memory.Shared != int64(v.Shared/1024/1024) {
Memory.Usedpct = int64(v.UsedPercent)
Memory.Shared = int64(v.Shared / 1024 / 1024)
UpdateReady <- true
}
}
time.Sleep(3 * time.Second)