def report(datalogger, datestring): # get data, from datalogger, or dataloggerhelper starttime = time.time() tsa = datalogger.load_tsa(datestring) print "Duration load %f" % (time.time() - starttime) starttime = time.time() tsa3 = datalogger.group_by(datestring, tsa, ("hostname", ), lambda a,b: (a + b) / 2) print "Duration group_by %f" % (time.time() - starttime) starttime = time.time() # tsa_test = tsa.slice(("cpu.used.summation", )) cma = CorrelationMatrixArray(tsa3) print "Duration CorrelationMatrix %f" % (time.time() - starttime) starttime = time.time() cma.dump(open("/tmp/correlation.json", "wb")) cma2 = cma.load(open("/tmp/correlation.json", "rb")) assert cma == cma2 cma3 = datalogger.load_correlationmatrix(datestring) # matrix = get_correlating(tsa3, "cpu.used.summation") matrix = cma3["cpu.used.summation"] for key in matrix.keys(): print str(key) + "\t" + "\t".join(("%0.2f" % matrix[key, otherkey] for otherkey in matrix.keys()))
def load(filehandle): cma = CorrelationMatrixArray.__new__(CorrelationMatrixArray) data = json.load(filehandle) cma.__data = dict(((key, CorrelationMatrix.loads(data)) for key, data in data.items())) return cma