|
@ -0,0 +1,52 @@ |
|
|
|
|
|
local ubus = require "ubus" |
|
|
|
|
|
|
|
|
|
|
|
local function scrape() |
|
|
|
|
|
local metric_dawn_ap_channel_utilization_ratio = metric("dawn_ap_channel_utilization_ratio","gauge") |
|
|
|
|
|
local metric_dawn_ap_stations_total = metric("dawn_ap_stations_total","gauge") |
|
|
|
|
|
local metric_dawn_station_signal_dbm = metric("dawn_station_signal_dbm","gauge") |
|
|
|
|
|
|
|
|
|
|
|
local u = ubus.connect() |
|
|
|
|
|
local network = u:call("dawn", "get_network", {}) |
|
|
|
|
|
|
|
|
|
|
|
for ssid, ssid_table in pairs(network) do |
|
|
|
|
|
for ap, ap_table in pairs(ssid_table) do |
|
|
|
|
|
|
|
|
|
|
|
if (ap_table['local'] == true) then |
|
|
|
|
|
|
|
|
|
|
|
local ht_support = (ap_table['ht_support'] == true) and 1 or 0 |
|
|
|
|
|
local vht_support = (ap_table['vht_support'] == true) and 1 or 0 |
|
|
|
|
|
|
|
|
|
|
|
local labels = { |
|
|
|
|
|
ssid = ssid, |
|
|
|
|
|
bssid = ap, |
|
|
|
|
|
freq = ap_table['freq'], |
|
|
|
|
|
ht_support = ht_support, |
|
|
|
|
|
vht_support = vht_support, |
|
|
|
|
|
neighbor_report = ap_table['neighbor_report'], |
|
|
|
|
|
} |
|
|
|
|
|
metric_dawn_ap_channel_utilization_ratio(labels, ap_table['channel_utilization'] / 255) |
|
|
|
|
|
metric_dawn_ap_stations_total(labels, ap_table['num_sta']) |
|
|
|
|
|
|
|
|
|
|
|
for client, client_table in pairs(ap_table) do |
|
|
|
|
|
if (type(client_table) == "table") then |
|
|
|
|
|
|
|
|
|
|
|
local client_ht_support = (client_table['ht'] == true) and 1 or 0 |
|
|
|
|
|
local client_vht_support = (client_table['vht'] == true) and 1 or 0 |
|
|
|
|
|
local client_signal = client_table['signal'] or -255 |
|
|
|
|
|
|
|
|
|
|
|
local labels = { |
|
|
|
|
|
ssid = ssid, |
|
|
|
|
|
bssid = ap, |
|
|
|
|
|
mac = client, |
|
|
|
|
|
ht_support = client_ht_support, |
|
|
|
|
|
vht_support = client_vht_support, |
|
|
|
|
|
} |
|
|
|
|
|
metric_dawn_station_signal_dbm(labels, client_signal) |
|
|
|
|
|
end |
|
|
|
|
|
end |
|
|
|
|
|
end |
|
|
|
|
|
end |
|
|
|
|
|
end |
|
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
return { scrape = scrape } |