|
@@ -0,0 +1,58 @@
|
|
|
+//
|
|
|
+// Pipe the output of server.js into this to convert raw test results into bracketed statistics
|
|
|
+// suitable for graphing.
|
|
|
+//
|
|
|
+
|
|
|
+// Average over this interval of time
|
|
|
+var GRAPH_INTERVAL = 60000;
|
|
|
+
|
|
|
+// Number of bytes expected from each test
|
|
|
+var EXPECTED_BYTES = 5000;
|
|
|
+
|
|
|
+var readline = require('readline');
|
|
|
+var rl = readline.createInterface({
|
|
|
+ input: process.stdin,
|
|
|
+ output: process.stdout,
|
|
|
+ terminal: false
|
|
|
+});
|
|
|
+
|
|
|
+var startTS = 0;
|
|
|
+
|
|
|
+var count = 0.0;
|
|
|
+var totalFailures = 0;
|
|
|
+var totalPartialFailures = 0;
|
|
|
+var totalMs = 0;
|
|
|
+var totalData = 0;
|
|
|
+
|
|
|
+rl.on('line',function(line) {
|
|
|
+ line = line.trim();
|
|
|
+ var ls = line.split(',');
|
|
|
+ if (ls.length == 7) {
|
|
|
+ var ts = parseInt(ls[0]);
|
|
|
+ var from = ls[1];
|
|
|
+ var to = ls[2];
|
|
|
+ var ms = parseFloat(ls[3]);
|
|
|
+ var bytes = parseInt(ls[4]);
|
|
|
+ var timedOut = (ls[5] == 'true') ? true : false;
|
|
|
+ var errMsg = ls[6];
|
|
|
+
|
|
|
+ count += 1.0;
|
|
|
+ if ((bytes <= 0)||(timedOut))
|
|
|
+ ++totalFailures;
|
|
|
+ if (bytes !== EXPECTED_BYTES)
|
|
|
+ ++totalPartialFailures;
|
|
|
+ totalMs += ms;
|
|
|
+ totalData += bytes;
|
|
|
+
|
|
|
+ if (startTS === 0) {
|
|
|
+ startTS = ts;
|
|
|
+ } else if (((ts - startTS) >= GRAPH_INTERVAL)&&(count > 0.0)) {
|
|
|
+ console.log(count.toString()+','+(totalMs / count)+','+totalFailures+','+totalPartialFailures+','+totalData);
|
|
|
+
|
|
|
+ count = 0.0;
|
|
|
+ totalFailures = 0;
|
|
|
+ totalPartialFailures = 0;
|
|
|
+ totalMs = 0;
|
|
|
+ }
|
|
|
+ } // else ignore junk
|
|
|
+});
|