chiark / gitweb /
admin: Initialize reference counter for client blocks.
[tripe] / tripemon.in
index a5fe71d0ae83768fa9bd8b1682c9592e98a65795..0db0775247603f6c6f9d14010d65fb6fa90615dc 100644 (file)
@@ -7,6 +7,7 @@ import socket as S
 from sys import argv, exit, stdin, stdout, stderr
 import os as OS
 from os import environ
+import math as M
 import sets as SET
 import getopt as O
 import time as T
@@ -815,8 +816,15 @@ def xlate_time(t):
   """Translate a time in tripe's stats format to something a human might
   actually want to read."""
   if t == 'NEVER': return '(never)'
-  Y, M, D, h, m, s = map(int, rx_time.match(t).group(1, 2, 3, 4, 5, 6))
-  return '%04d:%02d:%02d %02d:%02d:%02d' % (Y, M, D, h, m, s)
+  YY, MM, DD, hh, mm, ss = map(int, rx_time.match(t).group(1, 2, 3, 4, 5, 6))
+  ago = T.time() - T.mktime((YY, MM, DD, hh, mm, ss, 0, 0, -1))
+  ago = M.floor(ago); unit = 's'
+  for n, u in [(60, 'min'), (60, 'hrs'), (24, 'days')]:
+    if ago < 2*n: break
+    ago /= n
+    unit = u
+  return '%04d:%02d:%02d %02d:%02d:%02d (%.1f %s ago)' % \
+         (YY, MM, DD, hh, mm, ss, ago, unit)
 def xlate_bytes(b):
   """Translate a number of bytes into something a human might want to read."""
   suff = 'B'