From 7c790201532c5dbf55db004ae252912ddeffc42f Mon Sep 17 00:00:00 2001 From: Akizon77 Date: Wed, 18 Jun 2025 14:30:12 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0memory-mode-available?= =?UTF-8?q?=EF=BC=8C=E4=BD=BF=E7=94=A8available=E5=86=85=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/flags/flag.go | 17 +++++++++-------- cmd/root.go | 5 +++-- monitoring/unit/mem.go | 13 ++++++++++--- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/cmd/flags/flag.go b/cmd/flags/flag.go index 1d6f004..9996dfa 100644 --- a/cmd/flags/flag.go +++ b/cmd/flags/flag.go @@ -1,12 +1,13 @@ package flags var ( - DisableAutoUpdate bool - DisableWebSsh bool - Token string - Endpoint string - Interval float64 - IgnoreUnsafeCert bool - MaxRetries int - ReconnectInterval int + DisableAutoUpdate bool + DisableWebSsh bool + MemoryModeAvailable bool + Token string + Endpoint string + Interval float64 + IgnoreUnsafeCert bool + MaxRetries int + ReconnectInterval int ) diff --git a/cmd/root.go b/cmd/root.go index 911b4ff..c612b27 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -58,8 +58,9 @@ func init() { RootCmd.MarkPersistentFlagRequired("token") RootCmd.PersistentFlags().StringVarP(&flags.Endpoint, "endpoint", "e", "", "API endpoint") RootCmd.MarkPersistentFlagRequired("endpoint") - RootCmd.PersistentFlags().BoolVarP(&flags.DisableAutoUpdate, "disable-auto-update", "d", false, "Disable automatic updates") - RootCmd.PersistentFlags().BoolVarP(&flags.DisableWebSsh, "disable-web-ssh", "w", false, "Disable web SSH") + RootCmd.PersistentFlags().BoolVar(&flags.DisableAutoUpdate, "disable-auto-update", false, "Disable automatic updates") + RootCmd.PersistentFlags().BoolVar(&flags.DisableWebSsh, "disable-web-ssh", false, "Disable remote control(web ssh and rce)") + RootCmd.PersistentFlags().BoolVar(&flags.MemoryModeAvailable, "memory-mode-available", false, "Report memory as available instead of used.") RootCmd.PersistentFlags().Float64VarP(&flags.Interval, "interval", "i", 1.0, "Interval in seconds") RootCmd.PersistentFlags().BoolVarP(&flags.IgnoreUnsafeCert, "ignore-unsafe-cert", "u", false, "Ignore unsafe certificate errors") RootCmd.PersistentFlags().IntVarP(&flags.MaxRetries, "max-retries", "r", 3, "Maximum number of retries") diff --git a/monitoring/unit/mem.go b/monitoring/unit/mem.go index c744b77..e759cfe 100644 --- a/monitoring/unit/mem.go +++ b/monitoring/unit/mem.go @@ -1,6 +1,7 @@ package monitoring import ( + "github.com/komari-monitor/komari-agent/cmd/flags" "github.com/shirou/gopsutil/mem" ) @@ -15,10 +16,16 @@ func Ram() RamInfo { if err != nil { raminfo.Total = 0 raminfo.Used = 0 - } else { - raminfo.Total = v.Total - raminfo.Used = v.Used + 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 {