Skip to content
Snippets Groups Projects
Commit 9efbe1bc authored by David Schmitz's avatar David Schmitz
Browse files

fix/wrong_ratelimit_stats: extend JS graph plots in route detail views to...

fix/wrong_ratelimit_stats: extend JS graph plots in route detail views to matched metrics if available
parent d74e4fe4
No related branches found
No related tags found
No related merge requests found
......@@ -309,7 +309,7 @@ def poll_snmp_statistics():
for xtype in newdata[rule]:
key = "value"
if xtype!="counter":
key = "value-"+str(xtype)
key = "value_"+str(xtype)
if counter==None:
#counter = {"ts": nowstr, "value": newdata[rule]['counter']}
counter = {"ts": nowstr, key: newdata[rule][xtype]}
......@@ -372,8 +372,8 @@ def poll_snmp_statistics():
counter_null = {"ts": rule_last_updated.isoformat(), "value": null_measurement }
counter_zero = {"ts": rule_last_updated.isoformat(), "value": zero_measurement }
else:
counter_null = {"ts": rule_last_updated.isoformat(), "value": null_measurement, "value-counter": null_measurement }
counter_zero = {"ts": rule_last_updated.isoformat(), "value": zero_measurement, "value-counter": zero_measurement }
counter_null = {"ts": rule_last_updated.isoformat(), "value": null_measurement, "value_counter": null_measurement }
counter_zero = {"ts": rule_last_updated.isoformat(), "value": zero_measurement, "value_counter": zero_measurement }
#logger.info("snmpstats: STATISTICS_PER_RULE ruleobj="+str(ruleobj))
#logger.info("snmpstats: STATISTICS_PER_RULE ruleobj.type="+str(type(ruleobj)))
......@@ -387,7 +387,7 @@ def poll_snmp_statistics():
if xtype==xtype_default:
counter = {"ts": nowstr, "value": newdata[flowspec_params_str][xtype]}
else:
counter = {"ts": nowstr, "value": newdata[flowspec_params_str][xtype], "value-counter": newdata[flowspec_params_str][xtype_default]}
counter = {"ts": nowstr, "value": newdata[flowspec_params_str][xtype], "value_counter": newdata[flowspec_params_str][xtype_default]}
counter_is_null = False
except Exception as e:
......@@ -499,7 +499,7 @@ def add_initial_zero_value(rule_id, route_obj, zero_or_null=True):
if xtype==xtype_default:
counter = {"ts": nowstr, "value": zero_measurement }
else:
counter = {"ts": nowstr, "value": zero_measurement, "value-counter": zero_measurement }
counter = {"ts": nowstr, "value": zero_measurement, "value_counter": zero_measurement }
samplecount = settings.SNMP_MAX_SAMPLECOUNT
......
......@@ -140,26 +140,57 @@ function myreloadPage() {
function plotGraph(data)
{
var xdata = Array();
var ydata = Array();
var ydatarel = Array();
var ypkgdata = Array();
var ypkgdatarel = Array();
var ybytesdata = Array();
var ybytesdatarel = Array();
var yseenpkgdata = Array();
var yseenpkgdatarel = Array();
var yseenbytesdata = Array();
var yseenbytesdatarel = Array();
var yseen_available = false;
for (i=0; i<data["data"].length; i++) {
var d = data["data"][data["data"].length - 1 - i];
xdata[i] = d.ts.replace(/\..*/, '').replace('T', ' ');
ydata[i] = d.value.packets;
ypkgdata[i] = d.value.packets;
ybytesdata[i] = d.value.bytes;
if (i == 0) {
ydatarel[i] = 0;
ypkgdatarel[i] = 0;
ybytesdatarel[i] = 0;
} else {
delta = (ydata[i]===undefined) ? undefined : (ydata[i-1]===undefined) ? ydata[i] : (ydata[i] - ydata[i-1]);
ydatarel[i] = (delta===undefined || delta>=0) ? delta : 0;
delta = (ypkgdata[i]===undefined) ? undefined : (ypkgdata[i-1]===undefined) ? ypkgdata[i] : (ypkgdata[i] - ypkgdata[i-1]);
ypkgdatarel[i] = (delta===undefined || delta>=0) ? delta : 0;
bytesdelta = (ybytesdata[i]===undefined) ? undefined : (ybytesdata[i-1]===undefined) ? ybytesdata[i] : (ybytesdata[i] - ybytesdata[i-1]);
ybytesdatarel[i] = (bytesdelta===undefined || bytesdelta>=0) ? bytesdelta : 0;
}
if (d.value_counter!=undefined) {
yseen_available=true
yseenpkgdata[i] = d.value_counter.packets;
yseenbytesdata[i] = d.value_counter.bytes;
if (i == 0) {
yseenpkgdatarel[i] = 0;
yseenbytesdatarel[i] = 0;
} else {
delta = (yseenpkgdata[i]===undefined) ? undefined : (yseenpkgdata[i-1]===undefined) ? yseenpkgdata[i] : (yseenpkgdata[i] - yseenpkgdata[i-1]);
yseenpkgdatarel[i] = (delta===undefined || delta>=0) ? delta : 0;
bytesdelta = (yseenbytesdata[i]===undefined) ? undefined : (yseenbytesdata[i-1]===undefined) ? yseenbytesdata[i] : (yseenbytesdata[i] - yseenbytesdata[i-1]);
yseenbytesdatarel[i] = (bytesdelta===undefined || bytesdelta>=0) ? bytesdelta : 0;
}
}
}
var graphpktsabs = document.getElementById("traffic-plot-pkts-abs");
......@@ -174,19 +205,81 @@ function plotGraph(data)
graphbytesabs.height = 20;
graphbytesrel.width = 80;
graphbytesrel.height = 20;
var graphabssetting = {
type: 'line',
data: {
labels: xdata,
datasets: [{
var ypkg_datasets = [{
label: '# packets',
data: ydata,
data: ypkgdata,
borderWidth: 2,
borderColor: "#3c37c6",
pointBackgroundColor: "#3c37c6",
backgroundColor: "#99bfff"
}]
}];
var ypkgrel_datasets = [{
label: '# packets',
data: ypkgdatarel,
borderWidth: 2,
borderColor: "#c63737",
pointBackgroundColor: "#c63737",
backgroundColor: "#ff877a"
}];
var ybytes_datasets = [{
label: '# bytes',
data: ybytesdata,
borderWidth: 2,
borderColor: "#3c37c6",
pointBackgroundColor: "#3c37c6",
backgroundColor: "#99bfff"
}];
var ybytesrel_datasets = [{
label: '# bytes',
data: ybytesdatarel,
borderWidth: 2,
borderColor: "#c63737",
pointBackgroundColor: "#c63737",
backgroundColor: "#ff877a"
}];
if (yseen_available) {
ypkg_datasets.push({
label: '# packets matched',
data: yseenpkgdata,
borderWidth: 2,
borderColor: "#cc37c6",
pointBackgroundColor: "#3c37c6",
backgroundColor: "#59bf6f"
});
ypkgrel_datasets.push({
label: '# packets matched',
data: yseenpkgdatarel,
borderWidth: 2,
borderColor: "#c63737",
pointBackgroundColor: "#c63737",
backgroundColor: "#6f223a"
});
ybytes_datasets.push({
label: '# bytes matched',
data: yseenbytesdata,
borderWidth: 2,
borderColor: "#cc37c6",
pointBackgroundColor: "#3c37c6",
backgroundColor: "#59bf6f"
});
ybytesrel_datasets.push({
label: '# bytes matched',
data: yseenbytesdatarel,
borderWidth: 2,
borderColor: "#c63737",
pointBackgroundColor: "#c63737",
backgroundColor: "#6f223a"
});
}
var graphabssetting = {
type: 'line',
data: {
labels: xdata,
datasets: ypkg_datasets
},
options: {
elements: {
......@@ -214,14 +307,7 @@ function plotGraph(data)
type: 'bar',
data: {
labels: xdata,
datasets: [{
label: '# packets',
data: ydatarel,
borderWidth: 2,
borderColor: "#c63737",
pointBackgroundColor: "#c63737",
backgroundColor: "#ff877a"
}]
datasets: ypkgrel_datasets
},
options: {
elements: {
......@@ -240,14 +326,7 @@ function plotGraph(data)
type: 'line',
data: {
labels: xdata,
datasets: [{
label: '# bytes',
data: ybytesdata,
borderWidth: 2,
borderColor: "#3c37c6",
pointBackgroundColor: "#3c37c6",
backgroundColor: "#99bfff"
}]
datasets: ybytes_datasets
},
options: {
elements: {
......@@ -266,14 +345,7 @@ function plotGraph(data)
type: 'bar',
data: {
labels: xdata,
datasets: [{
label: '# bytes',
data: ybytesdatarel,
borderWidth: 2,
borderColor: "#c63737",
pointBackgroundColor: "#c63737",
backgroundColor: "#ff877a"
}]
datasets: ybytesrel_datasets
},
options: {
elements: {
......@@ -292,6 +364,8 @@ function plotGraph(data)
var pktsrelChart = new Chart(graphpktsrel, graphrelsetting);
var bytesabsChart = new Chart(graphbytesabs, graphbytesabssetting);
var bytesrelChart = new Chart(graphbytesrel, graphbytesrelsetting);
}
$(document).ready(function() {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment