]> jfr.im git - erebus.git/commitdiff
track and report uptime in !resources
authorzonidjan <redacted>
Fri, 24 May 2019 22:22:10 +0000 (17:22 -0500)
committerzonidjan <redacted>
Fri, 24 May 2019 22:22:10 +0000 (17:22 -0500)
erebus.py
modules/resources.py

index ae8390f94440e946c0e8afbf63180a06b59c5b08..8a48473cad82dcac9eefc9d45db28f73352b9162 100644 (file)
--- a/erebus.py
+++ b/erebus.py
@@ -140,6 +140,7 @@ class Erebus(object): #singleton to pass around
                def __repr__(self): return "<Channel %r>" % (self.name)
 
        def __init__(self, cfg):
+               self.starttime = time.time()
                self.cfg = cfg
                self.trigger = cfg.trigger
                if os.name == "posix":
index 606bdc76726d60cea3ea1b91512df3642c0ea6dc..35136a810f031afdd67e55c811254f26a245e788 100644 (file)
@@ -19,7 +19,7 @@ modstart = lib.modstart
 modstop = lib.modstop
 
 # module code
-import resource
+import resource, time
 
 @lib.hook(needchan=False, wantchan=True, glevel=lib.MANAGER)
 @lib.help(None, "show RAM usage")
@@ -40,6 +40,10 @@ def resources(bot, user, chan, realtarget, *args):
        if chan is not None: replyto = chan
        else: replyto = user
 
+       uptime = time.time() - bot.parent.starttime
+       m, s = divmod(uptime, 60)
+       h, m = divmod(m, 60)
+       d, h = divmod(h, 24)
        try:
                res = resource.getrusage(resource.RUSAGE_BOTH)
        except:
@@ -47,6 +51,7 @@ def resources(bot, user, chan, realtarget, *args):
 
        bot.slowmsg(replyto, "Resource usage:")
        for i, v in (
+               ('uptime (s)', "%d (%d days %02d:%02d:%02d)" % (uptime, d, h, m, s)),
                ('utime (s)', res.ru_utime),
                ('stime (s)', res.ru_stime),
                ('memory (MiB)', (res.ru_maxrss/1024.0)),
@@ -56,5 +61,5 @@ def resources(bot, user, chan, realtarget, *args):
                ('context switches (voluntary)', res.ru_nvcsw),
                ('context switches (involuntary)', res.ru_nivcsw),
        ):
-               bot.slowmsg(replyto, "- %s: %r" % (i, v))
+               bot.slowmsg(replyto, "- %s: %s" % (i, v))
        bot.slowmsg(replyto, "EOL.")