aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKristian Lyngstol <kly@kly.no>2016-11-10 20:46:22 +0100
committerKristian Lyngstol <kly@kly.no>2016-11-10 20:46:22 +0100
commita4684336edfc510e8e5b7a7752cd5c531ab6c26f (patch)
tree02e7c06cfb30f357dd91c89c9670119f326dd113
parent200cf04d24927349c25c77363ffe4782df17fcbf (diff)
Push all numerical snmp-data to graphite
Fixes #126
-rwxr-xr-xcollectors/snmpfetchng.pl13
-rwxr-xr-xtemplating/templating.py2
-rw-r--r--web/js/nms-info-box.js6
-rw-r--r--web/js/nms.js2
4 files changed, 15 insertions, 8 deletions
diff --git a/collectors/snmpfetchng.pl b/collectors/snmpfetchng.pl
index 70cdf4b..680c392 100755
--- a/collectors/snmpfetchng.pl
+++ b/collectors/snmpfetchng.pl
@@ -140,12 +140,10 @@ sub callback{
for my $nic (@nicids) {
$tree2{'ports'}{$tree{$nic}{'ifName'}} = $tree{$nic};
for my $tmp_key (keys $tree{$nic}) {
- my $path = "snmp.$switch{'sysname'}.$tree{$nic}{'ifName'}.$tmp_key";
+ my $path = "snmp.$switch{'sysname'}.ports.$tree{$nic}{'ifName'}.$tmp_key";
my $value = $tree{$nic}{$tmp_key};
if ($value =~ m/^\d+$/) {
print $sock "$path $value $now_graphite\n";
- } else {
- mylog ("??? $path $value $now_graphite");
}
}
@@ -154,6 +152,15 @@ sub callback{
for my $iid (keys %tree) {
for my $key (keys %{$tree{$iid}}) {
$tree2{'misc'}{$key}{$iid} = $tree{$iid}{$key};
+ my $localiid = $iid;
+ if ($iid ne "") {
+ $localiid = ".$iid";
+ }
+ my $path = "snmp.$switch{'sysname'}.misc.$key$localiid";
+ my $value = $tree{$iid}{$key};
+ if ($value =~ m/^\d+$/) {
+ print $sock "$path $value $now_graphite\n";
+ }
}
}
if ($total > 0) {
diff --git a/templating/templating.py b/templating/templating.py
index 7b91806..340c54b 100755
--- a/templating/templating.py
+++ b/templating/templating.py
@@ -8,7 +8,7 @@ endpoints = "read/oplog read/snmp read/switches-management public/config public/
objects = dict()
def getEndpoint(endpoint):
- r = requests.get("http://gondul-front:/api/%s" % endpoint, auth=('demo','demo'))
+ r = requests.get("http://gondul-front:/api/%s" % endpoint)
if (r.status_code != 200):
raise Exception("Bad status code for endpoint %s: %s" % (endpoint, r.status_code))
return r.json()
diff --git a/web/js/nms-info-box.js b/web/js/nms-info-box.js
index 1aa54c3..96cca89 100644
--- a/web/js/nms-info-box.js
+++ b/web/js/nms-info-box.js
@@ -601,7 +601,7 @@ var switchPortsPanel = function () {
}
var img = document.createElement("img");
var i = "totals";
- img.src = '/render/?target=cactiStyle(group(aliasByMetric(perSecond(sum(snmp.' + this.sw + '.*.ifHCInOctets))),aliasByMetric(perSecond(sum(snmp.' + this.sw + '.*.ifHCOutOctets)))),"binary")' + nmsInfoBox._graphDefaults(this.sw + " totals");
+ img.src = '/render/?target=cactiStyle(group(aliasByMetric(perSecond(sum(snmp.' + this.sw + '.ports.*.ifHCInOctets))),aliasByMetric(perSecond(sum(snmp.' + this.sw + '.ports.*.ifHCOutOctets)))),"binary")' + nmsInfoBox._graphDefaults(this.sw + " totals");
img.classList.add("graph");
var expanderButton = document.createElement("a");
expanderButton.innerHTML = "Toggle all";
@@ -682,7 +682,7 @@ var switchPortsPanel = function () {
if (snmpJson[obj].ifHCInOctets != 0
|| snmpJson[obj].ifHCOutOctets != 0) {
var img = document.createElement("img");
- img.src = '/render/?target=cactiStyle(aliasByMetric(perSecond(snmp.' + this.sw + '.' + obj + '.{ifHCOutOctets,ifHCInOctets})),"binary")&target=cactiStyle(aliasByMetric(secondYAxis(perSecond(snmp.' + this.sw + '.' + obj + '.{ifInDiscards,ifInErrors,ifOutDiscards,ifOutErrors}))),"binary")' + nmsInfoBox._graphDefaults();
+ img.src = '/render/?target=cactiStyle(aliasByMetric(perSecond(snmp.' + this.sw + '.ports.' + obj + '.{ifHCOutOctets,ifHCInOctets})),"binary")&target=cactiStyle(aliasByMetric(secondYAxis(perSecond(snmp.' + this.sw + '.ports.' + obj + '.{ifInDiscards,ifInErrors,ifOutDiscards,ifOutErrors}))),"binary")' + nmsInfoBox._graphDefaults();
img.classList.add("graph");
panelBodyObj.appendChild(img);
}
@@ -1059,7 +1059,7 @@ var switchSummaryPanel = function() {
}
var table = nmsInfoBox._makeTable(contentCleaned);
var latency = document.createElement("img");
- latency.src = '/render/?target=alias(ping.' + this.sw + '.ipv4,"Latency (ms)")&target=alias(secondYAxis(perSecond(sum(snmp.' + this.sw + '.*.{ifInDiscards,ifInErrors}))),"Input errors and discards")&target=alias(secondYAxis(perSecond(sum(snmp.' + this.sw + '.*.{ifOutDiscards,ifOutErrors}))),"Output errors and discards")' + nmsInfoBox._graphDefaults("Click to cycle");
+ latency.src = '/render/?target=alias(ping.' + this.sw + '.ipv4,"Latency (ms)")&target=alias(secondYAxis(perSecond(sum(snmp.' + this.sw + '.ports.*.{ifInDiscards,ifInErrors}))),"Input errors and discards")&target=alias(secondYAxis(perSecond(sum(snmp.' + this.sw + '.ports.*.{ifOutDiscards,ifOutErrors}))),"Output errors and discards")' + nmsInfoBox._graphDefaults("Click to cycle");
latency.classList.add("graph");
latency.setAttribute("onclick","nmsInfoBox._graphZoom();");
diff --git a/web/js/nms.js b/web/js/nms.js
index 6089173..30fb8ff 100644
--- a/web/js/nms.js
+++ b/web/js/nms.js
@@ -628,7 +628,7 @@ function nmsUpdateNavbarGraph() {
if (window.innerWidth > 2300)
w += 400;
- img.src = "/render/?target=movingAverage(averageSeries(ping.*.ipv4),%225min%22)&target=secondYAxis(averageSeries(perSecond(snmp.*.*.{ifHCInOctets,ifHCOutOctets})))&bgcolor=%23ffffff00&width=" + w + "&height=20&format=svg&from=-60min&until=now&graphOnly=true&somerandomthing=" + Math.floor(new Date().getTime() / 10000);
+ img.src = "/render/?target=movingAverage(averageSeries(ping.*.ipv4),%225min%22)&target=secondYAxis(averageSeries(perSecond(snmp.*.ports.*.{ifHCInOctets,ifHCOutOctets})))&bgcolor=%23ffffff00&width=" + w + "&height=20&format=svg&from=-60min&until=now&graphOnly=true&somerandomthing=" + Math.floor(new Date().getTime() / 10000);
}
/*
* Test if the entire path specified in the arrary "ar" exists under the