prometheus-node-exporter-lua: add snmp6 exporter

If you want statistics about IPv6 you can use snmpv6 exporter.
Currently, the "/proc/net/snmp6" is existing but all values are
just "0".

To use this plugin you have to set
  CONFIG_PROC_STRIPPED=n

I will find a way to enable the important ipv6 statistics by default.

Signed-off-by: Nick Hainke <vincent@systemli.org>
This commit is contained in:
Nick Hainke
2020-12-07 12:43:55 +01:00
parent 8310fc5a17
commit 77188d2422
2 changed files with 52 additions and 1 deletions

View File

@@ -0,0 +1,39 @@
local ubus = require "ubus"
local function get_devices() -- based on hostapd_stations.lua
local u = ubus.connect()
local status = u:call("network.device", "status", {})
local devices = {}
for dev, dev_table in pairs(status) do
table.insert(devices, dev)
end
return devices
end
local function get_metric(device)
local label = {
device = device
}
if device == "all" then
for e in io.lines("/proc/net/snmp6") do
local snmp6 = space_split(e)
metric("snmp6_" .. snmp6[1], "counter", label, tonumber(snmp6[2]))
end
else
for e in io.lines("/proc/net/dev_snmp6/" .. device) do
local snmp6 = space_split(e)
metric("snmp6_" .. snmp6[1], "counter", label, tonumber(snmp6[2]))
end
end
end
local function scrape()
get_metric("all")
for _, devicename in ipairs(get_devices()) do
get_metric(devicename)
end
end
return { scrape = scrape }