import json import sys from pylab import hist import gzip import io def get_next_line(line, output): val = json.loads(line) if val['type'] not in output: output[val['type']] = {} for (name, value) in val.items(): if name == "type": continue if name == "seq": continue if name not in output[val['type']]: output[val['type']][name] = [] output[val['type']][name] += [float(value)] def wrapgz(gfilename): gfile = gzip.open(gfilename, 'rb') if sys.version_info[0] >= 3: gfile = io.TextIOWrapper(gfile) return gfile def read_all_input(filename): cur = {} openfn = open if ".gz" in filename: openfn = wrapgz with openfn(filename) as fh: for line in fh: get_next_line(line, cur) return cur def write_committed_latency(out, bins, **kwargs): hist(out['write_committed']['latency'], bins, **kwargs) def read_latency(out): hist(out['read']['latency'], 100) def com(out): return out['write_committed']['latency'] def app(out): return out['write_applied']['latency']