summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--utils/prometheus-node-exporter-lua/Makefile2
-rw-r--r--utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/hostapd_stations.lua20
2 files changed, 14 insertions, 8 deletions
diff --git a/utils/prometheus-node-exporter-lua/Makefile b/utils/prometheus-node-exporter-lua/Makefile
index 6d757a2ee..fb3fa682f 100644
--- a/utils/prometheus-node-exporter-lua/Makefile
+++ b/utils/prometheus-node-exporter-lua/Makefile
@@ -4,7 +4,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=prometheus-node-exporter-lua
-PKG_VERSION:=2021.07.04
+PKG_VERSION:=2021.07.24
PKG_RELEASE:=1
PKG_MAINTAINER:=Etienne CHAMPETIER <champetier.etienne@gmail.com>
diff --git a/utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/hostapd_stations.lua b/utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/hostapd_stations.lua
index a3e6c331a..a176b02e8 100644
--- a/utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/hostapd_stations.lua
+++ b/utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/hostapd_stations.lua
@@ -16,23 +16,29 @@ local function get_wifi_interface_labels()
handle:close()
local hostapd = {}
+ local bss_idx = -1
for line in hostapd_status:gmatch("[^\r\n]+") do
local name, value = string.match(line, "(.+)=(.+)")
- if name == "phy" then
- hostapd["vif"] = value
elseif name == "freq" then
hostapd["freq"] = value
elseif name == "channel" then
hostapd["channel"] = value
- elseif name == "bssid[0]" then
- hostapd["bssid"] = value
- elseif name == "ssid[0]" then
- hostapd["ssid"] = value
+ -- hostapd gives us all bss on the relevant phy, find the one we're interested in
+ elseif string.match(name, "bss%[%d%]") then
+ if value == cfg['ifname'] then
+ bss_idx = tonumber(string.match(name, "bss%[(%d)%]"))
+ end
+ elseif bss_idx >= 0 then
+ if name == "bssid[" .. bss_idx .. "]" then
+ hostapd["bssid"] = value
+ elseif name == "ssid[" .. bss_idx .. "]" then
+ hostapd["ssid"] = value
+ end
end
end
local labels = {
- vif = hostapd['vif'],
+ vif = cfg['ifname'],
ssid = hostapd['ssid'],
bssid = hostapd['bssid'],
encryption = cfg['encryption'], -- In a mixed scenario it would be good to know if A or B was used