tracer/gsttr-stats: improve formatting

Add a headline and print the results as columns. Use ':' in ts format.
This commit is contained in:
Stefan Sauer 2016-12-20 10:27:45 +01:00
parent bbd75cb65e
commit 4a8a29a884

View file

@ -129,6 +129,9 @@ class Stats(Analyzer):
data['max'] = max(dv, data['max']) data['max'] = max(dv, data['max'])
def report(self): def report(self):
# headline
print("%-45s: %30s: %16s/%16s/%16s" % (
'scope', 'value', 'min','avg','max'))
# iterate scopes # iterate scopes
for sk,sv in self.data.items(): for sk,sv in self.data.items():
# iterate tracers # iterate tracers
@ -136,17 +139,15 @@ class Stats(Analyzer):
mi = tv.get('min', '-') mi = tv.get('min', '-')
ma = tv.get('max', '-') ma = tv.get('max', '-')
avg = tv['sum']/tv['num'] avg = tv['sum']/tv['num']
if mi == ma:
mi = ma = '-'
if is_time_field(tk): if is_time_field(tk):
if mi != '-': if mi != '-':
mi = format_ts(mi) mi = format_ts(mi)
if ma != '-': if ma != '-':
ma = format_ts(ma) ma = format_ts(ma)
avg = format_ts(avg) avg = format_ts(avg)
if mi == ma: print("%-45s: %30s: %16s/%16s/%16s" % (sk, tk, mi, avg, ma))
print("%-45s: Avg %30s: %s" % (sk, tk, avg))
else:
print("%-45s: Min/Avg/Max %30s: %s, %s, %s" %
(sk, tk, mi, avg, ma))
class ListClasses(Analyzer): class ListClasses(Analyzer):
@ -166,7 +167,7 @@ def format_ts(ts):
h = int(ts // (sec * 60 * 60)) h = int(ts // (sec * 60 * 60))
m = int((ts // (sec * 60)) % 60) m = int((ts // (sec * 60)) % 60)
s = (ts / sec) s = (ts / sec)
return '{:02d}.{:02d}.{:010.7f}'.format(h,m,s) return '{:02d}:{:02d}:{:010.7f}'.format(h,m,s)
def is_time_field(f): def is_time_field(f):
# TODO: need proper units # TODO: need proper units