graphstats: Fix graphing script

Update the graphstats.py graphing script so that it works with recent
stats changes - the stats can now contain groups that end with a ':'
and the print_time is no longer reset to zero on a new print.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
Kevin O'Connor 2017-10-29 20:30:36 -04:00
parent fc0e016a6d
commit 8463a83324
1 changed files with 6 additions and 4 deletions

View File

@ -21,7 +21,8 @@ def parse_log(logname):
#if parts and parts[0] == 'INFO:root:shutdown:': #if parts and parts[0] == 'INFO:root:shutdown:':
# break # break
continue continue
keyparts = dict(p.split('=', 1) for p in parts[2:]) keyparts = dict(p.split('=', 1)
for p in parts[2:] if not p.endswith(':'))
if keyparts.get('bytes_write', '0') == '0': if keyparts.get('bytes_write', '0') == '0':
continue continue
keyparts['#sampletime'] = float(parts[1][:-1]) keyparts['#sampletime'] = float(parts[1][:-1])
@ -34,10 +35,11 @@ def find_print_restarts(data):
print_resets = [] print_resets = []
for d in data: for d in data:
print_time = float(d.get('print_time', last_print_time)) print_time = float(d.get('print_time', last_print_time))
if print_time < last_print_time: buffer_time = float(d.get('buffer_time', 0.))
if print_time == last_print_time and not buffer_time:
print_resets.append(d['#sampletime']) print_resets.append(d['#sampletime'])
last_print_time = 0. last_print_time = 0.
else: elif buffer_time:
last_print_time = print_time last_print_time = print_time
sample_resets = {} sample_resets = {}
for d in data: for d in data:
@ -74,7 +76,7 @@ def plot_mcu(data, maxbw, outname, graph_awake=False):
load = 0. load = 0.
pt = float(d['print_time']) pt = float(d['print_time'])
hb = float(d['buffer_time']) hb = float(d['buffer_time'])
if pt <= 2. * MAXBUFFER or hb >= MAXBUFFER or st in sample_resets: if not hb or hb >= MAXBUFFER or st in sample_resets:
hb = 0. hb = 0.
else: else:
hb = 100. * (MAXBUFFER - hb) / MAXBUFFER hb = 100. * (MAXBUFFER - hb) / MAXBUFFER