prometheus-node-exporter-lua: make it modular
[feed/packages.git] / utils / prometheus-node-exporter-lua / files / usr / lib / lua / prometheus-collectors / netdev.lua
1 local function scrape()
2 local netdevstat = line_split(get_contents("/proc/net/dev"))
3 local netdevsubstat = {"receive_bytes", "receive_packets", "receive_errs",
4 "receive_drop", "receive_fifo", "receive_frame", "receive_compressed",
5 "receive_multicast", "transmit_bytes", "transmit_packets",
6 "transmit_errs", "transmit_drop", "transmit_fifo", "transmit_colls",
7 "transmit_carrier", "transmit_compressed"}
8 for i, line in ipairs(netdevstat) do
9 netdevstat[i] = string.match(netdevstat[i], "%S.*")
10 end
11 local nds_table = {}
12 local devs = {}
13 for i, nds in ipairs(netdevstat) do
14 local dev, stat_s = string.match(netdevstat[i], "([^:]+): (.*)")
15 if dev then
16 nds_table[dev] = space_split(stat_s)
17 table.insert(devs, dev)
18 end
19 end
20 for i, ndss in ipairs(netdevsubstat) do
21 netdev_metric = metric("node_network_" .. ndss, "gauge")
22 for ii, d in ipairs(devs) do
23 netdev_metric({device=d}, nds_table[d][i])
24 end
25 end
26 end
27
28 return { scrape = scrape }