luci-app-statistics: add snmp6 collector

Add IPv6 statistics.

Signed-off-by: Nick Hainke <vincent@systemli.org>
This commit is contained in:
Nick Hainke 2020-12-11 22:29:44 +01:00 committed by Hannu Nyman
parent a7dde1a2a5
commit c7756834b7
4 changed files with 143 additions and 0 deletions

View file

@ -0,0 +1,92 @@
/* Licensed to the public under the Apache License 2.0. */
'use strict';
'require baseclass';
return baseclass.extend({
title: _('SNMP6'),
rrdargs: function(graph, host, plugin, plugin_instance, dtype) {
var traffic = {
title: "%H: IPv6 on %pi",
vlabel: "Bytes/s",
data: {
sources: {
if_octets: [ "tx", "rx" ]
},
options: {
if_octets__tx: {
title: "Bytes (TX)",
total: true,
color: "00ff00"
},
if_octets__rx: {
title: "Bytes (RX)",
flip : true,
total: true,
color: "0000ff"
}
}
}
};
var mcast_traffic = {
title: "%H: IPv6 Multicast-Traffic on %pi",
vlabel: "Bytes/s",
data: {
sources: {
if_octets_mcast: [ "tx", "rx" ]
},
options: {
if_octets_mcast__tx: {
title: "Bytes (TX)",
total: true,
color: "00ff00"
},
if_octets_mcast__rx: {
title: "Bytes (RX)",
flip : true,
total: true,
color: "0000ff"
}
}
}
};
var bcast_traffic = {
title: "%H: IPv6 Broadcast-Traffic on %pi",
vlabel: "Bytes/s",
data: {
sources: {
if_octets_bcast: [ "tx", "rx" ]
},
options: {
if_octets_bcast__tx: {
title: "Bytes (TX)",
total: true,
color: "00ff00"
},
if_octets_bcast__rx: {
title: "Bytes (RX)",
flip : true,
total: true,
color: "0000ff"
}
}
}
};
return [ traffic, mcast_traffic, bcast_traffic ]
}
});

View file

@ -0,0 +1,37 @@
'use strict';
'require baseclass';
'require form';
'require tools.widgets as widgets';
return baseclass.extend({
title: _('SNMP6 Plugin Configuration'),
description: _('The snmp6 plugin collects IPv6 statistics for selected interfaces.'),
addFormOptions: function(s) {
var o;
o = s.option(form.Flag, 'enable', _('Enable this plugin'));
o.default = '0';
o = s.option(widgets.DeviceSelect, 'Interfaces', _('Basic monitoring'));
o.multiple = true;
o.noaliases = true;
o.depends('enable', '1');
o = s.option(form.Flag, 'IgnoreSelected', _('Monitor all except specified'));
o.depends('enable', '1');
},
configSummary: function(section) {
var basic = L.toArray(section.Interfaces),
count = basic.length,
invert = section.IgnoreSelected == '1';
if (invert && count == 0)
return _('Monitoring all interfaces');
else if (invert)
return N_(count, 'Monitoring all but one interface', 'Monitoring all but %d interfaces').format(count);
else if (count)
return N_(count, 'Monitoring one interface', 'Monitoring %d interfaces').format(count);
}
});

View file

@ -188,6 +188,11 @@ config statistics 'collectd_processes'
config statistics 'collectd_sensors'
option enable '0'
config statistics 'collectd_snmp6'
option enable '0'
option Interfaces 'br-lan'
option IgnoreSelected '0'
config statistics 'collectd_splash_leases'
option enable '0'

View file

@ -0,0 +1,9 @@
{
"title": "Snmp6",
"category": "network",
"legend": [
[],
["IgnoreSelected"],
["Interfaces"]
]
}