diff options
| author | Etienne Champetier <champetier.etienne@gmail.com> | 2017-12-08 19:03:36 -0800 |
|---|---|---|
| committer | Etienne Champetier <champetier.etienne@gmail.com> | 2017-12-08 21:22:16 -0800 |
| commit | fba739d32d53806e4dbac33b56a18748c2d3c4f0 (patch) | |
| tree | c701f66b10df92bae471ee18e5635b846aa39eba /utils/prometheus-node-exporter-lua | |
| parent | 32e1baeddda2a568962c1858bae7c964b165ff31 (diff) | |
prometheus-node-exporter-lua: put wifi collector in 2 separate packages
this allow to remove libubus-lua/libiwinfo-lua dependency from main package
this also allow to have different scrape_interval
Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>
split stations
Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>
Diffstat (limited to 'utils/prometheus-node-exporter-lua')
3 files changed, 71 insertions, 20 deletions
diff --git a/utils/prometheus-node-exporter-lua/Makefile b/utils/prometheus-node-exporter-lua/Makefile index 2f8e4ef15..84cdd8605 100644 --- a/utils/prometheus-node-exporter-lua/Makefile +++ b/utils/prometheus-node-exporter-lua/Makefile @@ -12,15 +12,18 @@ PKG_LICENSE:=Apache-2.0 include $(INCLUDE_DIR)/package.mk -define Package/prometheus-node-exporter-lua +define Package/prometheus-node-exporter-lua/Default SECTION:=utils CATEGORY:=Utilities - TITLE:=Provides system statistics as Prometheus scraping endpoint - DEPENDS:=+luasocket +libiwinfo-lua +libubus-lua +lua - URL:=https://github.com/rbo/openwrt_exporter + TITLE:=Prometheus node exporter PKGARCH:=all endef +define Package/prometheus-node-exporter-lua + $(call Package/prometheus-node-exporter-lua/Default) + DEPENDS:=+luasocket +lua +endef + define Package/prometheus-node-exporter-lua/conffiles /etc/config/prometheus-node-exporter-lua endef @@ -31,6 +34,18 @@ define Package/prometheus-node-exporter-lua/description This service is a lightweight rewrite in LUA of the offical Prometheus node_exporter. endef +define Package/prometheus-node-exporter-lua-wifi + $(call Package/prometheus-node-exporter-lua/Default) + TITLE+= (wifi collector) + DEPENDS:=prometheus-node-exporter-lua +libiwinfo-lua +libubus-lua +endef + +define Package/prometheus-node-exporter-lua-wifi_stations + $(call Package/prometheus-node-exporter-lua/Default) + TITLE+= (wifi_stations collector) + DEPENDS:=prometheus-node-exporter-lua +libiwinfo-lua +libubus-lua +endef + Build/Compile= define Package/prometheus-node-exporter-lua/install @@ -41,7 +56,27 @@ define Package/prometheus-node-exporter-lua/install $(INSTALL_DIR) $(1)/usr/bin $(INSTALL_BIN) ./files/usr/bin/prometheus-node-exporter-lua $(1)/usr/bin/prometheus-node-exporter-lua $(INSTALL_DIR) $(1)/usr/lib/lua/prometheus-collectors - $(INSTALL_BIN) ./files/usr/lib/lua/prometheus-collectors/* $(1)/usr/lib/lua/prometheus-collectors/ + $(INSTALL_BIN) ./files/usr/lib/lua/prometheus-collectors/cpu.lua $(1)/usr/lib/lua/prometheus-collectors/ + $(INSTALL_BIN) ./files/usr/lib/lua/prometheus-collectors/filefd.lua $(1)/usr/lib/lua/prometheus-collectors/ + $(INSTALL_BIN) ./files/usr/lib/lua/prometheus-collectors/loadavg.lua $(1)/usr/lib/lua/prometheus-collectors/ + $(INSTALL_BIN) ./files/usr/lib/lua/prometheus-collectors/meminfo.lua $(1)/usr/lib/lua/prometheus-collectors/ + $(INSTALL_BIN) ./files/usr/lib/lua/prometheus-collectors/nat_traffic.lua $(1)/usr/lib/lua/prometheus-collectors/ + $(INSTALL_BIN) ./files/usr/lib/lua/prometheus-collectors/netstat.lua $(1)/usr/lib/lua/prometheus-collectors/ + $(INSTALL_BIN) ./files/usr/lib/lua/prometheus-collectors/netdev.lua $(1)/usr/lib/lua/prometheus-collectors/ + $(INSTALL_BIN) ./files/usr/lib/lua/prometheus-collectors/time.lua $(1)/usr/lib/lua/prometheus-collectors/ + $(INSTALL_BIN) ./files/usr/lib/lua/prometheus-collectors/uname.lua $(1)/usr/lib/lua/prometheus-collectors/ +endef + +define Package/prometheus-node-exporter-lua-wifi/install + $(INSTALL_DIR) $(1)/usr/lib/lua/prometheus-collectors + $(INSTALL_BIN) ./files/usr/lib/lua/prometheus-collectors/wifi.lua $(1)/usr/lib/lua/prometheus-collectors/ +endef + +define Package/prometheus-node-exporter-lua-wifi_stations/install + $(INSTALL_DIR) $(1)/usr/lib/lua/prometheus-collectors + $(INSTALL_BIN) ./files/usr/lib/lua/prometheus-collectors/wifi_stations.lua $(1)/usr/lib/lua/prometheus-collectors/ endef $(eval $(call BuildPackage,prometheus-node-exporter-lua)) +$(eval $(call BuildPackage,prometheus-node-exporter-lua-wifi)) +$(eval $(call BuildPackage,prometheus-node-exporter-lua-wifi_stations)) diff --git a/utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/wifi.lua b/utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/wifi.lua index a57b81a70..975b7dd5f 100644 --- a/utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/wifi.lua +++ b/utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/wifi.lua @@ -7,10 +7,6 @@ local function scrape() local metric_wifi_network_noise = metric("wifi_network_noise","gauge") local metric_wifi_network_signal = metric("wifi_network_signal","gauge") - local metric_wifi_station_signal = metric("wifi_station_signal","gauge") - local metric_wifi_station_tx_packets = metric("wifi_station_tx_packets","gauge") - local metric_wifi_station_rx_packets = metric("wifi_station_rx_packets","gauge") - local u = ubus.connect() local status = u:call("network.wireless", "status", {}) @@ -40,17 +36,6 @@ local function scrape() metric_wifi_network_noise(labels, iw.noise(ifname) or 0) metric_wifi_network_bitrate(labels, iw.bitrate(ifname) or 0) metric_wifi_network_signal(labels, iw.signal(ifname) or -255) - - local assoclist = iw.assoclist(ifname) - for mac, station in pairs(assoclist) do - local labels = { - ifname = ifname, - mac = mac, - } - metric_wifi_station_signal(labels, station.signal) - metric_wifi_station_tx_packets(labels, station.tx_packets) - metric_wifi_station_rx_packets(labels, station.rx_packets) - end end end end diff --git a/utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/wifi_stations.lua b/utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/wifi_stations.lua new file mode 100644 index 000000000..06c79a8bd --- /dev/null +++ b/utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/wifi_stations.lua @@ -0,0 +1,31 @@ +local ubus = require "ubus" +local iwinfo = require "iwinfo" + +local function scrape() + local metric_wifi_station_signal = metric("wifi_station_signal","gauge") + local metric_wifi_station_tx_packets = metric("wifi_station_tx_packets","gauge") + local metric_wifi_station_rx_packets = metric("wifi_station_rx_packets","gauge") + + local u = ubus.connect() + local status = u:call("network.wireless", "status", {}) + + for dev, dev_table in pairs(status) do + for _, intf in ipairs(dev_table['interfaces']) do + local ifname = intf['ifname'] + local iw = iwinfo[iwinfo.type(ifname)] + + local assoclist = iw.assoclist(ifname) + for mac, station in pairs(assoclist) do + local labels = { + ifname = ifname, + mac = mac, + } + metric_wifi_station_signal(labels, station.signal) + metric_wifi_station_tx_packets(labels, station.tx_packets) + metric_wifi_station_rx_packets(labels, station.rx_packets) + end + end + end +end + +return { scrape = scrape } |
