add local sensor datastore, make IO tests granular
diff --git a/wally/report.py b/wally/report.py
index 5198d13..aa7a4b0 100644
--- a/wally/report.py
+++ b/wally/report.py
@@ -43,7 +43,7 @@
lines=[
(latv, "msec", "rr", "lat"),
(iops_or_bw_per_vm, None, None,
- "IOPS per vm")
+ "IOPS per thread")
])
return str(ch)
@@ -150,14 +150,14 @@
report_funcs = []
-def report(names):
+def report(name, required_fields):
def closure(func):
- report_funcs.append((names.split(","), func))
+ report_funcs.append((required_fields.split(","), name, func))
return func
return closure
-@report('hdd_test_rrd4k,hdd_test_rws4k')
+@report('HDD', 'hdd_test_rrd4k,hdd_test_rws4k')
def make_hdd_report(processed_results, path, lab_info):
make_plots(processed_results, path)
di = get_disk_info(processed_results)
@@ -182,18 +182,26 @@
try:
processed_results = process_disk_info(results)
+ res_fields = sorted(processed_results.keys())
- for fields, func in report_funcs:
+ for fields, name, func in report_funcs:
for field in fields:
- if field not in processed_results:
+ pos = bisect.bisect_left(res_fields, field)
+
+ if pos == len(res_fields):
+ continue
+
+ if not res_fields[pos + 1].startswith(field):
break
else:
- func(processed_results, path, lab_info)
+ hpath = path.format(name)
+ func(processed_results, hpath, lab_info)
+ logger.debug(name + " report generated into " + hpath)
break
else:
logger.warning("No report generator found for this load")
except Exception as exc:
+ import traceback
+ traceback.print_exc()
logger.error("Failed to generate html report:" + str(exc))
- else:
- logger.info("Html report were stored in " + path)