include $(TOPDIR)/rules.mk
PKG_NAME:=prometheus-node-exporter-lua
-PKG_VERSION:=2020.06.26
+PKG_VERSION:=2020.07.04
PKG_RELEASE:=1
PKG_MAINTAINER:=Etienne CHAMPETIER <champetier.etienne@gmail.com>
DEPENDS:=prometheus-node-exporter-lua
endef
+define Package/prometheus-node-exporter-lua-uci_dhcp_host
+ $(call Package/prometheus-node-exporter-lua/Default)
+ TITLE+= (uci_dhcp_host collector)
+ DEPENDS:=prometheus-node-exporter-lua +libuci-lua
+endef
+
define Package/prometheus-node-exporter-lua-netstat
$(call Package/prometheus-node-exporter-lua/Default)
TITLE+= (netstat collector)
$(INSTALL_BIN) ./files/usr/lib/lua/prometheus-collectors/nat_traffic.lua $(1)/usr/lib/lua/prometheus-collectors/
endef
+define Package/prometheus-node-exporter-lua-uci_dhcp_host/install
+ $(INSTALL_DIR) $(1)/usr/lib/lua/prometheus-collectors
+ $(INSTALL_BIN) ./files/usr/lib/lua/prometheus-collectors/uci_dhcp_host.lua $(1)/usr/lib/lua/prometheus-collectors/
+endef
+
define Package/prometheus-node-exporter-lua-netstat/install
$(INSTALL_DIR) $(1)/usr/lib/lua/prometheus-collectors
$(INSTALL_BIN) ./files/usr/lib/lua/prometheus-collectors/netstat.lua $(1)/usr/lib/lua/prometheus-collectors/
$(eval $(call BuildPackage,prometheus-node-exporter-lua))
$(eval $(call BuildPackage,prometheus-node-exporter-lua-nat_traffic))
$(eval $(call BuildPackage,prometheus-node-exporter-lua-netstat))
+$(eval $(call BuildPackage,prometheus-node-exporter-lua-uci_dhcp_host))
$(eval $(call BuildPackage,prometheus-node-exporter-lua-wifi))
$(eval $(call BuildPackage,prometheus-node-exporter-lua-wifi_stations))
$(eval $(call BuildPackage,prometheus-node-exporter-lua-hostapd_stations))
--- /dev/null
+local uci=require("uci")
+
+local function scrape()
+ local curs=uci.cursor()
+ 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"]}
+ metric_uci_host(labels, 1)
+ end
+ end)
+end
+
+return { scrape = scrape }