From 6aae62542c2b571c6533565ff7d673d448ed07e0 Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Sun, 22 Mar 2020 20:02:51 -0400 Subject: [PATCH] statistics: Add system stats Report os load, process cpu time, and system available memory to each statistics report. Signed-off-by: Kevin O'Connor --- klippy/extras/statistics.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/klippy/extras/statistics.py b/klippy/extras/statistics.py index 84186ed1..f79c7add 100644 --- a/klippy/extras/statistics.py +++ b/klippy/extras/statistics.py @@ -1,9 +1,24 @@ # Support for logging periodic statistics # -# Copyright (C) 2018 Kevin O'Connor +# Copyright (C) 2018-2020 Kevin O'Connor # # This file may be distributed under the terms of the GNU GPLv3 license. -import logging +import os, time, logging + +def get_os_stats(eventtime): + # Get core usage stats + msg = "sysload=%.2f cputime=%.3f" % (os.getloadavg()[0], time.clock()) + # Get available system memory + try: + f = open("/proc/meminfo", "rb") + data = f.read() + f.close() + for line in data.split('\n'): + if line.startswith("MemAvailable:"): + msg = "%s memavail=%s" % (msg, line.split()[1]) + except: + pass + return (False, msg) class PrinterStats: def __init__(self, config): @@ -21,6 +36,7 @@ class PrinterStats: def generate_stats(self, eventtime): stats = [cb(eventtime) for cb in self.stats_cb] if max([s[0] for s in stats]): + stats.append(get_os_stats(eventtime)) logging.info("Stats %.1f: %s", eventtime, ' '.join([s[1] for s in stats])) return eventtime + 1.