Fixed charts
diff --git a/report.py b/report.py
index 62489f1..32f9d6f 100644
--- a/report.py
+++ b/report.py
@@ -1,15 +1,13 @@
import sys
from collections import OrderedDict
-import matplotlib.pyplot as plt
import formatters
from chart import charts
from utils import ssize_to_b
from statistic import med_dev, approximate_curve
-from disk_perf_test_tool.tests.io_results_loader import (load_files,
- filter_data)
+from disk_perf_test_tool.io_results_loader import (load_files, filter_data)
OPERATIONS = (('async', ('randwrite asynchronous', 'randread asynchronous',
@@ -147,10 +145,6 @@
open(dest, 'w').write(html)
-def build_io_chart(res):
- pass
-
-
# def render_html_results(ctx):
# charts = []
# for res in ctx.results:
@@ -163,7 +157,26 @@
# render_html(bars + lines, dest)
-def make_io_report(results):
+def io_chart(title, concurence, latv, iops_or_bw, iops_or_bw_dev,
+ legend):
+ bar_data, bar_dev = iops_or_bw, iops_or_bw_dev
+ legend = [legend]
+
+ bar_dev_bottom = []
+ bar_dev_top = []
+ for i in range(len(bar_data)):
+ bar_dev_top.append(bar_data[i] + bar_dev[i])
+ bar_dev_bottom.append(bar_data[i] - bar_dev[i])
+
+ latv = [lat / 1000 for lat in latv]
+ ch = charts.render_vertical_bar(title, legend, [bar_data], [bar_dev_top],
+ [bar_dev_bottom],
+ scale_x=concurence,
+ lines=[(latv, "msec", "rr", "lat")])
+ return str(ch)
+
+
+def make_io_report(results, path):
for suite_type, test_suite_data in results:
if suite_type != 'io':
continue
@@ -186,28 +199,33 @@
concurence, latv, iops_or_bw_v = zip(*data_iter)
iops_or_bw_v, iops_or_bw_dev_v = zip(*map(med_dev, iops_or_bw_v))
+ latv, _ = zip(*map(med_dev, latv))
- _, ax1 = plt.subplots()
-
- ax1.plot(concurence, iops_or_bw_v)
- ax1.errorbar(concurence, iops_or_bw_v, iops_or_bw_dev_v,
- linestyle='None',
- label="iops_or_bw_v",
- marker="*")
-
- # ynew = approximate_line(ax, ay, ax, True)
-
- ax2 = ax1.twinx()
-
- ax2.errorbar(concurence,
- [med_dev(lat)[0] / 1000 for lat in latv],
- [med_dev(lat)[1] / 1000 for lat in latv],
- linestyle='None',
- label="iops_or_bw_v",
- marker="*")
- ax2.plot(concurence, [med_dev(lat)[0] / 1000 for lat in latv])
- plt.show()
- exit(0)
+ url = io_chart(name_filter, concurence, latv, iops_or_bw_v,
+ iops_or_bw_dev_v,
+ fields[2])
+ charts_url.append(url)
+ # _, ax1 = plt.subplots()
+ #
+ # ax1.plot(concurence, iops_or_bw_v)
+ # ax1.errorbar(concurence, iops_or_bw_v, iops_or_bw_dev_v,
+ # linestyle='None',
+ # label="iops_or_bw_v",
+ # marker="*")
+ #
+ # # ynew = approximate_line(ax, ay, ax, True)
+ #
+ # ax2 = ax1.twinx()
+ #
+ # ax2.errorbar(concurence,
+ # [med_dev(lat)[0] / 1000 for lat in latv],
+ # [med_dev(lat)[1] / 1000 for lat in latv],
+ # linestyle='None',
+ # label="iops_or_bw_v",
+ # marker="*")
+ # ax2.plot(concurence, [med_dev(lat)[0] / 1000 for lat in latv])
+ # plt.show()
+ # exit(0)
# bw_only = []
@@ -224,11 +242,11 @@
# charts_url.append(str(chart_url))
- render_html(charts_url, "results.html")
+ render_html(charts_url, path)
def main(args):
- make_io_report('/tmp/report', load_files(args[1:]))
+ make_io_report(load_files(args[1:]))
return 0