add deviation to reports
diff --git a/report_templates/report_ceph.html b/report_templates/report_ceph.html
index 3b97b8e..39ef30e 100644
--- a/report_templates/report_ceph.html
+++ b/report_templates/report_ceph.html
@@ -43,15 +43,15 @@
<table style="width: auto;" class="table table-bordered table-striped">
<tr>
<td>Operation</td>
- <td>IOPS</td>
+ <td>IOPS +- conf% ~ dev%</td>
</tr>
<tr>
<td>Read</td>
- <td><div align="right">{direct_iops_r_max[0]} ~ {direct_iops_r_max[1]}%</div></td>
+ <td><div align="right">{direct_iops_r_max[0]} +- {direct_iops_r_max[1]} ~ {direct_iops_r_max[2]}</div></td>
</tr>
<tr>
<td>Write</td>
- <td><div align="right">{direct_iops_w_max[0]} ~ {direct_iops_w_max[1]}%</div></td>
+ <td><div align="right">{direct_iops_w_max[0]} +- {direct_iops_w_max[1]} ~ {direct_iops_w_max[2]}</div></td>
</tr>
</table>
</td><td> </td><td>
@@ -59,15 +59,15 @@
<table style="width: auto;" class="table table-bordered table-striped">
<tr>
<td>Operation</td>
- <td>BW MiBps</td>
+ <td>BW MiBps +- conf% ~ dev%</td>
</tr>
<tr>
<td>Read</td>
- <td><div align="right">{bw_read_max[0]} ~ {bw_read_max[1]}%</div></td>
+ <td><div align="right">{bw_read_max[0]} +- {bw_read_max[1]} ~ {bw_read_max[2]}</div></td>
</tr>
<tr>
<td>Write</td>
- <td><div align="right">{bw_write_max[0]} ~ {bw_write_max[1]}%</div></td>
+ <td><div align="right">{bw_write_max[0]} +- {bw_write_max[1]} ~ {bw_write_max[2]}</div></td>
</tr>
</table>
</td><td> </td><td>
diff --git a/wally/discover/fuel.py b/wally/discover/fuel.py
index 665321e..34adc07 100644
--- a/wally/discover/fuel.py
+++ b/wally/discover/fuel.py
@@ -89,15 +89,9 @@
logger.debug("Found %s fuel nodes for env %r" %
(len(nodes), fuel_data['openstack_env']))
- if version > [6, 0]:
- openrc = cluster.get_openrc()
- else:
- logger.warning("Getting openrc on fuel 6.0 is broken, skip")
- openrc = None
-
return (nodes,
(ssh_conn, fuel_ext_iface, ips_ports),
- openrc)
+ cluster.get_openrc())
def download_master_key(conn):
diff --git a/wally/report.py b/wally/report.py
index 8b83d5d..8fc8400 100644
--- a/wally/report.py
+++ b/wally/report.py
@@ -336,9 +336,12 @@
data[name] = round_3_digit(val)
data['bw_read_max'] = (data['bw_read_max'][0] // 1024,
- data['bw_read_max'][1])
+ data['bw_read_max'][1],
+ data['bw_read_max'][2])
+
data['bw_write_max'] = (data['bw_write_max'][0] // 1024,
- data['bw_write_max'][1])
+ data['bw_write_max'][1],
+ data['bw_write_max'][2])
images.update(data)
return get_template(templ_name).format(lab_info=lab_description,
@@ -353,7 +356,9 @@
log_iops=False,
log_lat=False,
boxplots=False,
- latv_50=None, latv_95=None):
+ latv_50=None,
+ latv_95=None,
+ error2=None):
matplotlib.rcParams.update({'font.size': 10})
points = " MiBps" if legend == 'BW' else ""
@@ -367,15 +372,37 @@
p1.bar(xpos, iops_or_bw,
width=width,
- yerr=iops_or_bw_err,
- ecolor='m',
color='y',
label=legend)
+ err1_leg = None
+ for pos, y, err in zip(xpos, iops_or_bw, iops_or_bw_err):
+ err1_leg = p1.errorbar(pos + width / 2,
+ y,
+ err,
+ color='magenta')
+
+ err2_leg = None
+ if error2 is not None:
+ for pos, y, err in zip(xpos, iops_or_bw, error2):
+ err2_leg = p1.errorbar(pos + width / 2 + 0.08,
+ y,
+ err,
+ lw=2,
+ alpha=0.5,
+ color='teal')
+
p1.grid(True)
p1.plot(xt, op_per_vm, '--', label=legend + "/thread", color='black')
handles1, labels1 = p1.get_legend_handles_labels()
+ handles1 += [err1_leg]
+ labels1 += ["95% conf"]
+
+ if err2_leg is not None:
+ handles1 += [err2_leg]
+ labels1 += ["95% dev"]
+
p2 = p1.twinx()
if latv_50 is None:
@@ -445,13 +472,13 @@
if use_bw:
data = [x.bw.average / 1000 for x in chart_data]
- data_dev = [x.bw.confidence / 1000 for x in chart_data]
- # data_dev = [x.bw.deviation / 1000 for x in chart_data]
+ data_conf = [x.bw.confidence / 1000 for x in chart_data]
+ data_dev = [x.bw.deviation * 2.5 / 1000 for x in chart_data]
name = "BW"
else:
data = [x.iops.average for x in chart_data]
- data_dev = [x.iops.confidence for x in chart_data]
- # data_dev = [x.iops.deviation for x in chart_data]
+ data_conf = [x.iops.confidence for x in chart_data]
+ data_dev = [x.iops.deviation * 2 for x in chart_data]
name = "IOPS"
fc = io_chart(title=desc,
@@ -462,13 +489,15 @@
latv_max=lat_max,
iops_or_bw=data,
- iops_or_bw_err=data_dev,
+ iops_or_bw_err=data_conf,
legend=name,
log_lat=lat_log_scale,
latv_50=lat_50,
- latv_95=lat_95)
+ latv_95=lat_95,
+
+ error2=data_dev)
files[fname] = fc
return files
@@ -568,7 +597,8 @@
def pp(x):
med, conf = x.rounded_average_conf()
conf_perc = int(float(conf) / med * 100)
- return (round_3_digit(med), conf_perc)
+ dev_perc = int(float(x.deviation) / med * 100)
+ return (round_3_digit(med), conf_perc, dev_perc)
hdi.direct_iops_r_max = pp(di.direct_iops_r_max)
diff --git a/wally/suits/io/rrd.cfg b/wally/suits/io/rrd.cfg
index 27cb1a0..094aa78 100644
--- a/wally/suits/io/rrd.cfg
+++ b/wally/suits/io/rrd.cfg
@@ -2,58 +2,11 @@
include defaults.cfg
ramp_time=30
runtime=120
-numjobs={% 1,10 %}
+numjobs={% 1,2,3 %}
direct=1
-rw={% randwrite, randread %}
-
-# ---------------------------------------------------------------------
-#[test_{TEST_SUMM}]
-#blocksize=1m
-
-# ---------------------------------------------------------------------
-#[test_{TEST_SUMM}]
-#blocksize=4m
-
-# ---------------------------------------------------------------------
-#[test_{TEST_SUMM}]
-#blocksize=16m
# ---------------------------------------------------------------------
[test_{TEST_SUMM}]
blocksize=4k
rw=randwrite
sync=1
-numjobs={% 10,50,100 %}
-
-# ---------------------------------------------------------------------
-# [test_{TEST_SUMM}]
-# blocksize=4m
-# rw=write
-# numjobs=1
-
-# ---------------------------------------------------------------------
-# [rws_{TEST_SUMM}]
-# blocksize=4k
-# rw=randwrite
-# sync=1
-# ramp_time=0
-# runtime=60
-# numjobs=10
-
-# ---------------------------------------------------------------------
-# [rws_{TEST_SUMM}]
-# blocksize=4k
-# rw=randwrite
-# sync=1
-# ramp_time=10
-# runtime=60
-# numjobs=10
-
-# ---------------------------------------------------------------------
-# [rws_{TEST_SUMM}]
-# blocksize=4k
-# rw=randwrite
-# sync=1
-# ramp_time=10
-# runtime=60
-# numjobs=1