Merge pull request #11353 from kvuorine/fwknop-fixes
[feed/packages.git] / utils / prometheus-node-exporter-lua / files / usr / lib / lua / prometheus-collectors / dawn.lua
1 local ubus = require "ubus"
2
3 local function scrape()
4 local metric_dawn_ap_channel_utilization_ratio = metric("dawn_ap_channel_utilization_ratio","gauge")
5 local metric_dawn_ap_stations_total = metric("dawn_ap_stations_total","gauge")
6 local metric_dawn_station_signal_dbm = metric("dawn_station_signal_dbm","gauge")
7
8 local u = ubus.connect()
9 local network = u:call("dawn", "get_network", {})
10
11 for ssid, ssid_table in pairs(network) do
12 for ap, ap_table in pairs(ssid_table) do
13
14 if (ap_table['local'] == true) then
15
16 local ht_support = (ap_table['ht_support'] == true) and 1 or 0
17 local vht_support = (ap_table['vht_support'] == true) and 1 or 0
18
19 local labels = {
20 ssid = ssid,
21 bssid = ap,
22 freq = ap_table['freq'],
23 ht_support = ht_support,
24 vht_support = vht_support,
25 neighbor_report = ap_table['neighbor_report'],
26 }
27 metric_dawn_ap_channel_utilization_ratio(labels, ap_table['channel_utilization'] / 255)
28 metric_dawn_ap_stations_total(labels, ap_table['num_sta'])
29
30 for client, client_table in pairs(ap_table) do
31 if (type(client_table) == "table") then
32
33 local client_ht_support = (client_table['ht'] == true) and 1 or 0
34 local client_vht_support = (client_table['vht'] == true) and 1 or 0
35 local client_signal = client_table['signal'] or -255
36
37 local labels = {
38 ssid = ssid,
39 bssid = ap,
40 mac = client,
41 ht_support = client_ht_support,
42 vht_support = client_vht_support,
43 }
44 metric_dawn_station_signal_dbm(labels, client_signal)
45 end
46 end
47 end
48 end
49 end
50 end
51
52 return { scrape = scrape }