-
- local netdevsubstat = {"receive_bytes", "receive_packets", "receive_errs",
- "receive_drop", "receive_fifo", "receive_frame", "receive_compressed",
- "receive_multicast", "transmit_bytes", "transmit_packets",
- "transmit_errs", "transmit_drop", "transmit_fifo", "transmit_colls",
- "transmit_carrier", "transmit_compressed"}
- 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, "gauge")
- for dev, nds_dev in pairs(nds_table) do
- netdev_metric({device=dev}, nds_dev[i+1])
- end
- end
- end
-
- return { scrape = scrape }
|