prometheus-node-exporter-lua-hostapd_stations: fix not reporting metrics
authorBalázs Urbán <szalab9@gmail.com>
Sun, 17 Mar 2024 18:59:20 +0000 (19:59 +0100)
committerEtienne Champetier <champetier.etienne@gmail.com>
Sun, 2 Jun 2024 22:22:12 +0000 (18:22 -0400)
- fix incorrect interface name mapping in hostapd_stations exporter

Signed-off-by: Balázs Urbán <szalab9@gmail.com>
Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>
utils/prometheus-node-exporter-lua/Makefile
utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/hostapd_stations.lua

index 43ba4c6e9c5e4e34035eb80ac0fdc48a58d2d6a6..6c0d1a949e009c8e0ade7fa8127965ab4527416e 100644 (file)
@@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=prometheus-node-exporter-lua
 PKG_VERSION:=2024.06.02
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_MAINTAINER:=Etienne CHAMPETIER <champetier.etienne@gmail.com>
 PKG_LICENSE:=Apache-2.0
index 2b97c70523cbdc89974b900dbffaa58a8fff0cf0..86b406c8a074a3bc20b3ea813e9a29bd0f5bf88d 100644 (file)
@@ -31,12 +31,10 @@ local function get_wifi_interface_labels()
 
   for _, dev_table in pairs(status) do
     for _, intf in ipairs(dev_table['interfaces']) do
-      local cfg = intf['config']
-
-      if is_ubus_interface(ubus_interfaces, cfg['ifname']) then
+      if is_ubus_interface(ubus_interfaces, intf['ifname']) then
 
         -- Migrate this to ubus interface once it exposes all interesting labels
-        local handle = io.popen("hostapd_cli -i " .. cfg['ifname'] .." status")
+        local handle = io.popen("hostapd_cli -i " .. intf['ifname'] .." status")
         local hostapd_status = handle:read("*a")
         handle:close()
 
@@ -50,7 +48,7 @@ local function get_wifi_interface_labels()
             hostapd["channel"] = 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
+            if value == intf['ifname'] then
               bss_idx = tonumber(string.match(name, "bss%[(%d)%]"))
             end
           elseif bss_idx >= 0 then
@@ -63,10 +61,10 @@ local function get_wifi_interface_labels()
         end
 
         local labels = {
-          vif = cfg['ifname'],
+          vif = intf['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
+          encryption = intf['config']['encryption'], -- In a mixed scenario it would be good to know if A or B was used
           frequency = hostapd['freq'],
           channel = hostapd['channel'],
         }