usbmuxd: Update to latest git
[feed/packages.git] / utils / prometheus-node-exporter-lua / files / usr / lib / lua / prometheus-collectors / wifi_stations.lua
1 local ubus = require "ubus"
2 local iwinfo = require "iwinfo"
3
4 local function scrape()
5 local metric_wifi_station_signal = metric("wifi_station_signal_dbm","gauge")
6 local metric_wifi_station_tx_packets = metric("wifi_station_tx_packets_total","gauge")
7 local metric_wifi_station_rx_packets = metric("wifi_station_rx_packets_total","gauge")
8
9 local u = ubus.connect()
10 local status = u:call("network.wireless", "status", {})
11
12 for dev, dev_table in pairs(status) do
13 for _, intf in ipairs(dev_table['interfaces']) do
14 local ifname = intf['ifname']
15 local iw = iwinfo[iwinfo.type(ifname)]
16
17 local assoclist = iw.assoclist(ifname)
18 for mac, station in pairs(assoclist) do
19 local labels = {
20 ifname = ifname,
21 mac = mac,
22 }
23 metric_wifi_station_signal(labels, station.signal)
24 metric_wifi_station_tx_packets(labels, station.tx_packets)
25 metric_wifi_station_rx_packets(labels, station.rx_packets)
26 end
27 end
28 end
29 end
30
31 return { scrape = scrape }