statistics: Add system stats
Report os load, process cpu time, and system available memory to each statistics report. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
f3667fd453
commit
6aae62542c
|
@ -1,9 +1,24 @@
|
|||
# Support for logging periodic statistics
|
||||
#
|
||||
# Copyright (C) 2018 Kevin O'Connor <kevin@koconnor.net>
|
||||
# Copyright (C) 2018-2020 Kevin O'Connor <kevin@koconnor.net>
|
||||
#
|
||||
# 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.
|
||||
|
|
Loading…
Reference in New Issue