prometheus-node-exporter-lua: improve ubnt-manager

It is costly in transmissions to add all information to each metric.
Instead, only use the "device" as a label and add all other important
labels to the "uptime" metric.

Signed-off-by: Nick Hainke <vincent@systemli.org>
(cherry picked from commit 9f3064a11c)
This commit is contained in:
Nick Hainke 2022-04-18 08:44:55 +02:00
parent bccdd3c8d0
commit 87f14264fe
2 changed files with 17 additions and 13 deletions

View File

@ -4,7 +4,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=prometheus-node-exporter-lua PKG_NAME:=prometheus-node-exporter-lua
PKG_VERSION:=2022.04.03 PKG_VERSION:=2022.04.18
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_MAINTAINER:=Etienne CHAMPETIER <champetier.etienne@gmail.com> PKG_MAINTAINER:=Etienne CHAMPETIER <champetier.etienne@gmail.com>

View File

@ -8,9 +8,9 @@ local function get_devices()
return devices return devices
end end
local function get_metric_airos6(device_data, label) local function get_metric_airos6(device_data, label, label_full)
-- host -- host
metric("ubnt_uptime", "counter", label, device_data['host']['uptime']) metric("ubnt_uptime", "counter", label_full, device_data['host']['uptime'])
metric("ubnt_totalram", "gauge", label, device_data['host']['totalram']) metric("ubnt_totalram", "gauge", label, device_data['host']['totalram'])
metric("ubnt_freeram", "gauge", label, device_data['host']['freeram']) metric("ubnt_freeram", "gauge", label, device_data['host']['freeram'])
metric("ubnt_cpuload", "gauge", label, device_data['host']['cpuload']) metric("ubnt_cpuload", "gauge", label, device_data['host']['cpuload'])
@ -40,9 +40,9 @@ local function get_metric_airos6(device_data, label)
metric("ubnt_count", "gauge", label, device_data['wireless']['count']) metric("ubnt_count", "gauge", label, device_data['wireless']['count'])
end end
local function get_metric_airos8(device_data, label) local function get_metric_airos8(device_data, label, label_full)
-- host -- host
metric("ubnt_uptime", "counter", label, device_data['host']['uptime']) metric("ubnt_uptime", "counter", label_full, device_data['host']['uptime'])
metric("ubnt_loadavg", "gauge", label, device_data['host']['loadavg']) metric("ubnt_loadavg", "gauge", label, device_data['host']['loadavg'])
metric("ubnt_totalram", "gauge", label, device_data['host']['totalram']) metric("ubnt_totalram", "gauge", label, device_data['host']['totalram'])
metric("ubnt_freeram", "gauge", label, device_data['host']['freeram']) metric("ubnt_freeram", "gauge", label, device_data['host']['freeram'])
@ -118,19 +118,23 @@ local function get_metric(device)
local fwversion = device_data['host']['fwversion'] local fwversion = device_data['host']['fwversion']
local essid = device_data['wireless']['essid'] local essid = device_data['wireless']['essid']
local label = { local label_short = {
device = device, device = device
hostname = hostname,
devmodel = devmodel,
fwversion = fwversion,
essid = essid
} }
local label_full = {
device = device,
hostname = hostname,
devmodel = devmodel,
fwversion = fwversion,
essid = essid
}
-- v6. vs v8. -- v6. vs v8.
if fwversion:find("v8.", 1, true) then if fwversion:find("v8.", 1, true) then
get_metric_airos8(device_data, label) get_metric_airos8(device_data, label_short, label_full)
elseif fwversion:find("v6.", 1, true) then elseif fwversion:find("v6.", 1, true) then
get_metric_airos6(device_data, label) get_metric_airos6(device_data, label_short, label_full)
end end
end end