diff --git a/src/rust/lqos_node_manager/static/circuit_queue.html b/src/rust/lqos_node_manager/static/circuit_queue.html
index 0b17f350..39f51d79 100644
--- a/src/rust/lqos_node_manager/static/circuit_queue.html
+++ b/src/rust/lqos_node_manager/static/circuit_queue.html
@@ -88,16 +88,16 @@
-
Throughput
-
+
Throughput
+
@@ -105,7 +105,7 @@
@@ -116,16 +116,16 @@
-
Queue Length
-
+
Queue Length
+
@@ -148,8 +148,8 @@
@@ -157,8 +157,8 @@
Tin 2 (Best Effort)
-
-
+
+
@@ -168,8 +168,8 @@
@@ -177,8 +177,8 @@
@@ -359,37 +359,51 @@
delaysY2.push(entries.y[9]);
}
let graph = document.getElementById("backlogGraph");
+ let blx = zip(backlogX1[0], backlogX2[0]);
+ let bly = [
+ zip(backlogY1[0].reverse(), backlogY2[0].reverse()),
+ zip(backlogY1[1].reverse(), backlogY2[1].reverse()),
+ zip(backlogY1[2].reverse(), backlogY2[2].reverse()),
+ zip(backlogY1[3].reverse(), backlogY2[3].reverse()),
+ ]
let graph_data = [
- {x: backlogX1[0], y:backlogY1[0].reverse(), type: 'scatter', name: 'Tin 0 Down'},
- {x: backlogX2[0], y:backlogY2[0].reverse(), type: 'scatter', name: 'Tin 0 Up'},
- {x: backlogX1[1], y:backlogY1[1].reverse(), type: 'scatter', name: 'Tin 1 Down'},
- {x: backlogX2[1], y:backlogY2[1].reverse(), type: 'scatter', name: 'Tin 1 Up'},
- {x: backlogX1[2], y:backlogY1[2].reverse(), type: 'scatter', name: 'Tin 2 Down'},
- {x: backlogX2[2], y:backlogY2[2].reverse(), type: 'scatter', name: 'Tin 2 Up'},
- {x: backlogX1[3], y:backlogY1[3].reverse(), type: 'scatter', name: 'Tin 3 Down'},
- {x: backlogX2[3], y:backlogY2[3].reverse(), type: 'scatter', name: 'Tin 3 Up'},
+ {x: blx, y:bly[0], type: 'scatter', mode: 'markers', name: 'Bulk'},
+ //{x: blx, y:backlogY2[0].reverse(), type: 'scatter', mode: 'markers', name: 'Tin 0 Up'},
+ {x: blx, y:bly[1], type: 'scatter', mode: 'markers', name: 'Best Effort'},
+ //{x: blx, y:backlogY2[1].reverse(), type: 'scatter', mode: 'markers', name: 'Tin 1 Up'},
+ {x: blx, y:bly[2], type: 'scatter', mode: 'markers', name: 'Video'},
+ //{x: blx, y:backlogY2[2].reverse(), type: 'scatter', mode: 'markers', name: 'Tin 2 Up'},
+ {x: blx, y:bly[3], type: 'scatter', mode: 'markers', name: 'Voice'},
+ //{x: blx, y:backlogY2[3].reverse(), type: 'scatter', mode: 'markers', name: 'Tin 3 Up'},
];
- Plotly.newPlot(graph, graph_data, { margin: { l:0,r:0,b:0,t:0,pad:4 }, yaxis: { automargin: true }, xaxis: {automargin: true, title: "Time since now (seconds)"} });
+ Plotly.newPlot(graph, graph_data, { margin: { l:0,r:0,b:0,t:0,pad:4 }, yaxis: { automargin: true, title: "Bytes" }, xaxis: {automargin: true, title: "Time since now (seconds)"} });
+ let dlx = zip(delaysX1[0], delaysX2[0]);
+ let dly = [
+ zip(delaysY1[0].reverse(), delaysY2[0].reverse()),
+ zip(delaysY1[1].reverse(), delaysY2[1].reverse()),
+ zip(delaysY1[2].reverse(), delaysY2[2].reverse()),
+ zip(delaysY1[3].reverse(), delaysY2[3].reverse()),
+ ]
graph = document.getElementById("delayGraph");
graph_data = [
- {x: delaysX1[0], y:delaysY1[0].reverse(), type: 'scatter', name: 'Tin 0 Down'},
- {x: delaysX2[0], y:delaysY2[0].reverse(), type: 'scatter', name: 'Tin 0 Up'},
- {x: delaysX1[1], y:delaysY1[1].reverse(), type: 'scatter', name: 'Tin 1 Down'},
- {x: delaysX2[1], y:delaysY2[1].reverse(), type: 'scatter', name: 'Tin 1 Up'},
- {x: delaysX1[2], y:delaysY1[2].reverse(), type: 'scatter', name: 'Tin 2 Down'},
- {x: delaysX2[2], y:delaysY2[2].reverse(), type: 'scatter', name: 'Tin 2 Up'},
- {x: delaysX1[3], y:delaysY1[3].reverse(), type: 'scatter', name: 'Tin 3 Down'},
- {x: delaysX2[3], y:delaysY2[3].reverse(), type: 'scatter', name: 'Tin 3 Up'},
+ {x: dlx, y:dly[0], type: 'scatter', mode: 'markers', name: 'Tin 0'},
+ //{x: delaysX2[0], y:delaysY2[0].reverse(), type: 'scatter', name: 'Tin 0 Up'},
+ {x: dlx, y:dly[1], type: 'scatter', mode: 'markers', name: 'Tin 1'},
+ //{x: delaysX2[1], y:delaysY2[1].reverse(), type: 'scatter', name: 'Tin 1 Up'},
+ {x: dlx, y:dly[2], type: 'scatter', mode: 'markers', name: 'Tin 2'},
+ //{x: delaysX2[2], y:delaysY2[2].reverse(), type: 'scatter', name: 'Tin 2 Up'},
+ {x: dlx, y:dly[3], type: 'scatter', mode: 'markers', name: 'Tin 3'},
+ //{x: delaysX2[3], y:delaysY2[3].reverse(), type: 'scatter', name: 'Tin 3 Up'},
];
- Plotly.newPlot(graph, graph_data, { margin: { l:0,r:0,b:0,t:0,pad:4 }, yaxis: { automargin: true }, xaxis: {automargin: true, title: "Time since now (seconds)"} });
+ Plotly.newPlot(graph, graph_data, { margin: { l:0,r:0,b:0,t:0,pad:4 }, yaxis: { automargin: true, title: "Time (ms)" }, xaxis: {automargin: true, title: "Time since now (seconds)"} });
graph = document.getElementById("qlenGraph");
graph_data = [
{x: qlenX1, y:qlenY1.reverse(), type: 'scatter', name: 'Down'},
{x: qlenX2, y:qlenY2.reverse(), type: 'scatter', name: 'Up'},
];
- Plotly.newPlot(graph, graph_data, { margin: { l:0,r:0,b:0,t:0,pad:4 }, yaxis: { automargin: true }, xaxis: {automargin: true, title: "Time since now (seconds)"} });
+ Plotly.newPlot(graph, graph_data, { margin: { l:0,r:0,b:0,t:0,pad:4 }, yaxis: { automargin: true, title: "Packets" }, xaxis: {automargin: true, title: "Time since now (seconds)"} });
});
}
}
@@ -466,8 +480,11 @@
}
}
- graph_data.push({x: xDown, y: yDown.reverse(), name: ip + " Down", type: 'scatter'});
- graph_data.push({x: xUp, y: yUp.reverse(), name: ip + " Up", type: 'scatter'});
+ let xd = zip(xDown, xUp);
+ let yd = zip(yDown.reverse(), yUp.reverse());
+
+ graph_data.push({x: xd, y: yd, name: ip + " Down", mode: 'markers', type: 'scatter', marker: { size: 4 }});
+ //graph_data.push({x: xUp, y: yUp.reverse(), name: ip + " Up", mode: 'markers', type: 'scatter'});
}
Plotly.newPlot(graph, graph_data, { margin: { l:0,r:0,b:0,t:0,pad:4 }, yaxis: { automargin: true, title: "Traffic (bits)" }, xaxis: {automargin: true, title: "Time since now (seconds)"} });
throughput_head += 1;
@@ -502,14 +519,14 @@
row += "";
row += "
";
row += "
";
- row += "
";
+ row += "
";
row += "
";
row += "
";
row += "";
row += "
";
row += "
" + redactText(data[i][1].name) + " TCP RTT
";
- row += "
";
+ row += "
";
row += "
";
row += "
";
diff --git a/src/rust/lqos_node_manager/static/lqos.js b/src/rust/lqos_node_manager/static/lqos.js
index 92999a47..584820f4 100644
--- a/src/rust/lqos_node_manager/static/lqos.js
+++ b/src/rust/lqos_node_manager/static/lqos.js
@@ -378,4 +378,13 @@ function ecn(n) {
case 3: return "CE";
default: return "???";
}
+}
+
+function zip(a, b) {
+ let zipped = [];
+ for (let i=0; i
-
Last 5 Minutes
+
Last 5 Minutes