prometheus-node-exporter-lua: fixup uci_dhcp_host

Handle cases where 'mac' is missing (nil), a single string,
or an array (table).

Additionally, add support for the 'duid' field.

Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>
This commit is contained in:
Etienne Champetier
2026-05-24 18:49:15 -04:00
parent bd2d5bfec4
commit c8760b4ecf
2 changed files with 11 additions and 3 deletions
+1 -1
View File
@@ -4,7 +4,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=prometheus-node-exporter-lua
PKG_VERSION:=2026.05.07
PKG_VERSION:=2026.05.08
PKG_RELEASE:=1
PKG_MAINTAINER:=Etienne CHAMPETIER <champetier.etienne@gmail.com>
@@ -5,8 +5,16 @@ local function scrape()
local metric_uci_host = metric("uci_dhcp_host", "gauge")
curs:foreach("dhcp", "host", function(s)
if s[".type"] == "host" then
labels = {name=s["name"], mac=string.upper(s["mac"]), dns=s["dns"], ip=s["ip"]}
local labels = {name=s["name"], dns=s["dns"], ip=s["ip"], duid=s["duid"]}
if s["mac"] == nil then
metric_uci_host(labels, 1)
return
end
local macs = type(s["mac"]) == "table" and s["mac"] or {s["mac"]}
for _, mac in ipairs(macs) do
labels["mac"] = string.upper(mac)
metric_uci_host(labels, 1)
end
end)