aboutsummaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
Diffstat (limited to 'web')
-rw-r--r--web/js/nms-draw-chart.js358
1 files changed, 179 insertions, 179 deletions
diff --git a/web/js/nms-draw-chart.js b/web/js/nms-draw-chart.js
index 491b216..6f790dc 100644
--- a/web/js/nms-draw-chart.js
+++ b/web/js/nms-draw-chart.js
@@ -12,10 +12,10 @@ function setNightModeChart(night) {
}
function drawLatency(canvas, sw, chart, callback) {
- var q = encodeURIComponent('SELECT mean("latency") AS "mean_latency" FROM "ping" WHERE time > now() - 3h AND "switch"=\''+sw+'\' GROUP BY time(60s), "version" fill(null)');
- var dataset = [];
-
- $.getJSON( "/query?db=gondul&q="+q, function( results ) {
+ var q = encodeURIComponent('SELECT mean("latency") AS "mean_latency" FROM "ping" WHERE time > now() - 1h AND "switch"=\''+sw+'\' GROUP BY time(60s), "version" fill(null)');
+ var dataset = [];
+
+ $.getJSON( "/query?db=gondul&q="+q, function( results ) {
try {
results['results'][0]['series'].forEach(function(serie) {
var data = [];
@@ -31,7 +31,7 @@ function drawLatency(canvas, sw, chart, callback) {
if(chart != false) {
chart.data.datasets = dataset;
chart.update();
- return;
+ return;
}
var ctx = document.getElementById(canvas).getContext('2d');
var myChart = new Chart(ctx, {
@@ -75,134 +75,134 @@ function drawLatency(canvas, sw, chart, callback) {
});
} catch(e) {
}
- if(callback != undefined) {
- callback(myChart);
- }
- });
+ if(callback != undefined) {
+ callback(myChart);
+ }
+ });
}
function drawSumOfPorts(canvas, sw) {
- var kilobit = 1024;
- var megabit = kilobit * 1024;
- var gigabit = megabit * 1024;
- var terabit = gigabit * 1024;
+ var kilobit = 1024;
+ var megabit = kilobit * 1024;
+ var gigabit = megabit * 1024;
+ var terabit = gigabit * 1024;
- var q = encodeURIComponent('SELECT non_negative_derivative(first("ifHCInOctets"), 1s) * 8 AS "ifHCInOctets", non_negative_derivative(first("ifHCOutOctets"), 1s) * 8 AS "ifHCOutOctets" FROM "ports" WHERE time > now() - 30m AND "switch"=\''+sw+'\' GROUP BY time(90s),"interface" fill(null)');
+ var q = encodeURIComponent('SELECT non_negative_derivative(first("ifHCInOctets"), 1s) * 8 AS "ifHCInOctets", non_negative_derivative(first("ifHCOutOctets"), 1s) * 8 AS "ifHCOutOctets" FROM "ports" WHERE time > now() - 30m AND "switch"=\''+sw+'\' GROUP BY time(90s),"interface" fill(null)');
- var dataset = [];
+ var dataset = [];
- $.getJSON( "/query?db=gondul&q="+q, function( results ) {
+ $.getJSON( "/query?db=gondul&q="+q, function( results ) {
- var bits_in = [];
- var bits_out = [];
+ var bits_in = [];
+ var bits_out = [];
- results['results'][0]['series'].forEach(function(serie) {
+ results['results'][0]['series'].forEach(function(serie) {
- // Bytes in
- serie['values'].forEach(function(element) {
- bits_in.push(element[1]);
- });
+ // Bytes in
+ serie['values'].forEach(function(element) {
+ bits_in.push(element[1]);
+ });
- // Bytes out
- serie['values'].forEach(function(element) {
- bits_out.push(element[2]);
- });
+ // Bytes out
+ serie['values'].forEach(function(element) {
+ bits_out.push(element[2]);
+ });
});
- var bits_in_size = bitToSize(Math.max.apply( Math, bits_in ));
- var bits_out_size = bitToSize(Math.max.apply( Math, bits_out ));
- var size = 0;
-
- if(bits_in_size >= bits_out_size) {
- size = bits_in_size;
- } else {
- size = bits_out_size;
- }
-
- var size_divider;
- switch (size) {
- case 0:
- size_divider = 1;
- break;
- case 1:
- size_divider = kilobit;
- break;
- case 2:
- size_divider = megabit;
- break;
- case 3:
- size_divider = gigabit;
- break;
- case 4:
- size_divider = terabit;
- break;
- }
+ var bits_in_size = bitToSize(Math.max.apply( Math, bits_in ));
+ var bits_out_size = bitToSize(Math.max.apply( Math, bits_out ));
+ var size = 0;
+
+ if(bits_in_size >= bits_out_size) {
+ size = bits_in_size;
+ } else {
+ size = bits_out_size;
+ }
+
+ var size_divider;
+ switch (size) {
+ case 0:
+ size_divider = 1;
+ break;
+ case 1:
+ size_divider = kilobit;
+ break;
+ case 2:
+ size_divider = megabit;
+ break;
+ case 3:
+ size_divider = gigabit;
+ break;
+ case 4:
+ size_divider = terabit;
+ break;
+ }
results['results'][0]['series'].forEach(function(serie) {
- // Bytes in
- var data = [];
- serie['values'].forEach(function(element) {
- data.push({t: new Date(element[0]), y: element[1] / size_divider });
- });
- dataset.push({data: data, backgroundColor:'rgba(58,125,48,200)', label:'Traffic in (' + sizeToText(size)+')'});
+ // Bytes in
+ var data = [];
+ serie['values'].forEach(function(element) {
+ data.push({t: new Date(element[0]), y: element[1] / size_divider });
+ });
+ dataset.push({data: data, backgroundColor:'rgba(58,125,48,200)', label:'Traffic in (' + sizeToText(size)+')'});
- // Bytes out
- data = [];
- serie['values'].forEach(function(element) {
- data.push({t: new Date(element[0]), y: -Math.abs(element[2] / size_divider) });
- });
- dataset.push({data: data, backgroundColor:'rgba(84,84,142,225)', label:'Traffic out (' + sizeToText(size)+')'});
+ // Bytes out
+ data = [];
+ serie['values'].forEach(function(element) {
+ data.push({t: new Date(element[0]), y: -Math.abs(element[2] / size_divider) });
+ });
+ dataset.push({data: data, backgroundColor:'rgba(84,84,142,225)', label:'Traffic out (' + sizeToText(size)+')'});
});
- // Draw the chart
- var ctx = document.getElementById(canvas).getContext('2d');
- var myChart = new Chart(ctx, {
- type: 'line',
- data: {
- datasets: dataset
- },
- options: {
+ // Draw the chart
+ var ctx = document.getElementById(canvas).getContext('2d');
+ var myChart = new Chart(ctx, {
+ type: 'line',
+ data: {
+ datasets: dataset
+ },
+ options: {
legend: {
display: false
},
- scales: {
- xAxes:[{
- type: 'time',
- time: {
- parser: "HH:mm",
- unit: 'minute',
- tooltipFormat: 'HH:mm',
- displayFormats: {
- 'minute': 'HH:mm',
- 'hour': 'HH:mm',
- min: '00:00',
- max: '23:59'
- },
- }
- }],
- yAxes: [{
+ scales: {
+ xAxes:[{
+ type: 'time',
+ time: {
+ parser: "HH:mm",
+ unit: 'minute',
+ tooltipFormat: 'HH:mm',
+ displayFormats: {
+ 'minute': 'HH:mm',
+ 'hour': 'HH:mm',
+ min: '00:00',
+ max: '23:59'
+ },
+ }
+ }],
+ yAxes: [{
stacked: true,
- ticks: {
- callback: function(label, index, labels) {
- return Math.abs(label)+' '+sizeToText(size);
- }
- },
- scaleLabel: {
- display: true,
- labelString: sw+' - All ports'
- }
- }]
- },
- responsive: true,
- animation: false,
- elements: {
+ ticks: {
+ callback: function(label, index, labels) {
+ return Math.abs(label)+' '+sizeToText(size);
+ }
+ },
+ scaleLabel: {
+ display: true,
+ labelString: sw+' - All ports'
+ }
+ }]
+ },
+ responsive: true,
+ animation: false,
+ elements: {
point: {
radius: 0
},
@@ -210,44 +210,44 @@ function drawSumOfPorts(canvas, sw) {
tension: 0
}
}
- }
- });
- });
+ }
+ });
+ });
}
function drawPort(canvas, sw, port) {
- var kilobit = 1024;
- var megabit = kilobit * 1024;
- var gigabit = megabit * 1024;
- var terabit = gigabit * 1024;
+ var kilobit = 1024;
+ var megabit = kilobit * 1024;
+ var gigabit = megabit * 1024;
+ var terabit = gigabit * 1024;
var q = encodeURIComponent('SELECT non_negative_derivative(first("ifHCInOctets"), 1s) * 8 AS "ifHCInOctets", non_negative_derivative(first("ifHCOutOctets"), 1s) * 8 AS "ifHCOutOctets" FROM "ports" WHERE time > now() - 30m AND "switch"=\''+sw+'\' AND "interface"=\''+port+'\' GROUP BY time(30s) fill(null)');
var dataset = [];
- $.getJSON( "/query?db=gondul&q="+q, function( results ) {
+ $.getJSON( "/query?db=gondul&q="+q, function( results ) {
var serie = results['results'][0]['series'][0];
-
+
var bits_in = [];
var bits_out = [];
// Bytes in
- serie['values'].forEach(function(element) {
+ serie['values'].forEach(function(element) {
bits_in.push(element[1]);
- });
+ });
// Bytes out
serie['values'].forEach(function(element) {
bits_out.push(element[2]);
- });
+ });
var bits_in_size = bitToSize(Math.max.apply( Math, bits_in ));
var bits_out_size = bitToSize(Math.max.apply( Math, bits_out ));
- var size = 0;
-
+ var size = 0;
+
if(bits_in_size >= bits_out_size) {
size = bits_in_size;
} else {
@@ -257,59 +257,59 @@ function drawPort(canvas, sw, port) {
var size_divider;
switch (size) {
case 0:
- size_divider = 1;
- break;
+ size_divider = 1;
+ break;
case 1:
- size_divider = kilobit;
- break;
+ size_divider = kilobit;
+ break;
case 2:
- size_divider = megabit;
- break;
+ size_divider = megabit;
+ break;
case 3:
- size_divider = gigabit;
- break;
+ size_divider = gigabit;
+ break;
case 4:
- size_divider = terabit;
- break;
+ size_divider = terabit;
+ break;
}
// Bytes in
- var data = [];
- serie['values'].forEach(function(element) {
- data.push({t: new Date(element[0]), y: element[1] / size_divider });
- });
- dataset.push({data: data, backgroundColor:'rgba(58,125,48,200)', label:'Traffic in (' + sizeToText(size)+')'});
+ var data = [];
+ serie['values'].forEach(function(element) {
+ data.push({t: new Date(element[0]), y: element[1] / size_divider });
+ });
+ dataset.push({data: data, backgroundColor:'rgba(58,125,48,200)', label:'Traffic in (' + sizeToText(size)+')'});
- // Bytes out
- data = [];
- serie['values'].forEach(function(element) {
- data.push({t: new Date(element[0]), y: -Math.abs(element[2] / size_divider) });
- });
- dataset.push({data: data, backgroundColor:'rgba(84,84,142,225)', label:'Traffic out (' + sizeToText(size)+')'});
+ // Bytes out
+ data = [];
+ serie['values'].forEach(function(element) {
+ data.push({t: new Date(element[0]), y: -Math.abs(element[2] / size_divider) });
+ });
+ dataset.push({data: data, backgroundColor:'rgba(84,84,142,225)', label:'Traffic out (' + sizeToText(size)+')'});
// Draw the chart
- var ctx = document.getElementById(canvas).getContext('2d');
- var myChart = new Chart(ctx, {
- type: 'line',
- data: {
- datasets: dataset
- },
- options: {
- scales: {
- xAxes:[{
- type: 'time',
- time: {
- parser: "HH:mm",
- unit: 'minute',
- tooltipFormat: 'HH:mm',
- displayFormats: {
- 'minute': 'HH:mm',
- 'hour': 'HH:mm',
- min: '00:00',
- max: '23:59'
- },
- }
+ var ctx = document.getElementById(canvas).getContext('2d');
+ var myChart = new Chart(ctx, {
+ type: 'line',
+ data: {
+ datasets: dataset
+ },
+ options: {
+ scales: {
+ xAxes:[{
+ type: 'time',
+ time: {
+ parser: "HH:mm",
+ unit: 'minute',
+ tooltipFormat: 'HH:mm',
+ displayFormats: {
+ 'minute': 'HH:mm',
+ 'hour': 'HH:mm',
+ min: '00:00',
+ max: '23:59'
+ },
+ }
}],
yAxes: [{
ticks: {
@@ -322,18 +322,18 @@ function drawPort(canvas, sw, port) {
labelString: sw+' - '+port
}
}]
- },
- responsive: true,
- animation: false,
- elements: {
+ },
+ responsive: true,
+ animation: false,
+ elements: {
line: {
tension: 0
}
}
- }
- });
- });
+ }
+ });
+ });
}
@@ -361,22 +361,22 @@ function bitToSize(bits) {
}
}
-function sizeToText(size) {
+function sizeToText(size) {
switch(size) {
case 0:
- return 'bit/s';
- break;
+ return 'bit/s';
+ break;
case 1:
- return 'kb/s';
- break;
+ return 'kb/s';
+ break;
case 2:
- return 'mb/s';
- break;
+ return 'mb/s';
+ break;
case 3:
- return 'gb/s';
- break;
+ return 'gb/s';
+ break;
case 4:
- return 'tb/s';
- break;
+ return 'tb/s';
+ break;
}
}