mirror of https://github.com/OpenIPC/firmware.git
40 lines
1.1 KiB
Lua
40 lines
1.1 KiB
Lua
|
|
local netdevsubstat = {
|
|
"receive_bytes_total",
|
|
"receive_packets_total",
|
|
"receive_errs_total",
|
|
"receive_drop_total",
|
|
"receive_fifo_total",
|
|
"receive_frame_total",
|
|
"receive_compressed_total",
|
|
"receive_multicast_total",
|
|
"transmit_bytes_total",
|
|
"transmit_packets_total",
|
|
"transmit_errs_total",
|
|
"transmit_drop_total",
|
|
"transmit_fifo_total",
|
|
"transmit_colls_total",
|
|
"transmit_carrier_total",
|
|
"transmit_compressed_total"
|
|
}
|
|
|
|
local pattern = "([^%s:]+):%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)"
|
|
|
|
local function scrape()
|
|
local nds_table = {}
|
|
for line in io.lines("/proc/net/dev") do
|
|
local t = {string.match(line, pattern)}
|
|
if #t == 17 then
|
|
nds_table[t[1]] = t
|
|
end
|
|
end
|
|
for i, ndss in ipairs(netdevsubstat) do
|
|
netdev_metric = metric("node_network_" .. ndss, "counter")
|
|
for dev, nds_dev in pairs(nds_table) do
|
|
netdev_metric({device=dev}, nds_dev[i+1])
|
|
end
|
|
end
|
|
end
|
|
|
|
return { scrape = scrape }
|