diff options
author | Kristian Lyngstol <kly@kly.no> | 2016-11-10 20:46:22 +0100 |
---|---|---|
committer | Kristian Lyngstol <kly@kly.no> | 2016-11-10 20:46:22 +0100 |
commit | a4684336edfc510e8e5b7a7752cd5c531ab6c26f (patch) | |
tree | 02e7c06cfb30f357dd91c89c9670119f326dd113 | |
parent | 200cf04d24927349c25c77363ffe4782df17fcbf (diff) |
Push all numerical snmp-data to graphite
Fixes #126
-rwxr-xr-x | collectors/snmpfetchng.pl | 13 | ||||
-rwxr-xr-x | templating/templating.py | 2 | ||||
-rw-r--r-- | web/js/nms-info-box.js | 6 | ||||
-rw-r--r-- | web/js/nms.js | 2 |
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 |