1
0
Fork 0
mirror of https://github.com/munin-monitoring/contrib.git synced 2025-07-22 14:16:00 +00:00

Merge pull request #1500 from rwky/kvm-mem-fix

Updated kvm_mem to better handle extrating values
This commit is contained in:
Kenyon Ralph 2025-06-17 12:16:41 -07:00 committed by GitHub
commit 932d923250
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -61,15 +61,20 @@ def fetch(vms):
res = {} res = {}
for pid in vms: for pid in vms:
try: try:
cmdline = open("/proc/%s/cmdline" % pid, "r") with open(f"/proc/{pid}/cmdline", "rb") as f:
amount = re.sub(r"^.*-m\x00(.*)\x00-smp.*$",r"\1", cmdline.readline()) line = f.read().replace(b'\x00', b' ')
amount = int(amount) * 1024 * 1024 match = re.search(rb"-m\s+size=(\d+)k", line)
print("%s_mem.value %s" % (vms[pid], amount)) if match:
except: amount = int(match.group(1)) * 1024
cmdline = open("/proc/%s/cmdline" % pid, "r") else:
amount = re.sub(r"^.*-m\x00(\d+).*$",r"\1", cmdline.readline()) match = re.search(rb"-m\s+size=(\d+)", line)
amount = int(amount) * 1024 * 1024 if match:
print("%s_mem.value %s" % (vms[pid], amount)) amount = int(match.group(1)) * 1024 * 1024
else:
raise ValueError(f"Memory size not found in {line}")
print(f"{vms[pid]}_mem.value {amount}")
except Exception as e:
print(f"Error extracting memory for PID {pid}: {e}", file=sys.stderr)
def detect_kvm(): def detect_kvm():
''' Check if kvm is installed ''' Check if kvm is installed