Adding network bytes tx, rx and errors to the frontend. Network errors chart is not exposed in the UI yet.
This commit is contained in:
parent
83f2373fb1
commit
106787f850
@ -149,6 +149,14 @@ const containersHtmlTemplate = `
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">Network</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div id="network-bytes-chart"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
</div>
|
||||
|
@ -219,6 +219,42 @@ function drawMemoryPageFaults(elementId, containerInfo) {
|
||||
drawLineChart(titles, data, elementId, "Faults");
|
||||
}
|
||||
|
||||
// Draw the graph for network tx/rx bytes.
|
||||
function drawNetworkBytes(elementId, machineInfo, stats) {
|
||||
var titles = ["Time", "Tx bytes", "Rx bytes"];
|
||||
var data = [];
|
||||
for (var i = 1; i < stats.stats.length; i++) {
|
||||
var cur = stats.stats[i];
|
||||
var prev = stats.stats[i - 1];
|
||||
|
||||
// TODO(vmarmol): This assumes we sample every second, use the timestamps.
|
||||
var elements = [];
|
||||
elements.push(cur.timestamp);
|
||||
elements.push(cur.network.tx_bytes - prev.network.tx_bytes);
|
||||
elements.push(cur.network.rx_bytes - prev.network.rx_bytes);
|
||||
data.push(elements);
|
||||
}
|
||||
drawLineChart(titles, data, elementId, "Bytes");
|
||||
}
|
||||
|
||||
// Draw the graph for network errors
|
||||
function drawNetworkErrors(elementId, machineInfo, stats) {
|
||||
var titles = ["Time", "Tx", "Rx"];
|
||||
var data = [];
|
||||
for (var i = 1; i < stats.stats.length; i++) {
|
||||
var cur = stats.stats[i];
|
||||
var prev = stats.stats[i - 1];
|
||||
|
||||
// TODO(vmarmol): This assumes we sample every second, use the timestamps.
|
||||
var elements = [];
|
||||
elements.push(cur.timestamp);
|
||||
elements.push(cur.network.tx_errors - prev.network.tx_errors);
|
||||
elements.push(cur.network.rx_errors - prev.network.rx_errors);
|
||||
data.push(elements);
|
||||
}
|
||||
drawLineChart(titles, data, elementId, "Errors");
|
||||
}
|
||||
|
||||
// Expects an array of closures to call. After each execution the JS runtime is given control back before continuing.
|
||||
// This function returns asynchronously
|
||||
function stepExecute(steps) {
|
||||
@ -264,6 +300,14 @@ function drawCharts(machineInfo, containerInfo) {
|
||||
drawMemoryPageFaults("memory-page-faults-chart", containerInfo);
|
||||
});
|
||||
|
||||
// Network.
|
||||
steps.push(function() {
|
||||
drawNetworkBytes("network-bytes-chart", machineInfo, containerInfo);
|
||||
});
|
||||
steps.push(function() {
|
||||
drawNetworkErrors("network-errors-chart", machineInfo, containerInfo);
|
||||
});
|
||||
|
||||
stepExecute(steps);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user