prometheus-node-exporter-lua: expose node_os_info

the original node_exporter exposes a node_os_info metric with a set of
data about the system [1] which is then used by several dashboards.

openwrt.lua already exposes OS info, but using the node_openwrt_info
metric requires changes to existing dashboards, and would require more
complex lookups when there are non-OpenWrt hosts in the overview too.

as we've already called ubus and fetched the data, we can expose it in
two formats easily.

[1] https://github.com/prometheus/node_exporter/blob/d6d0e710bb7daf07a2743fde060f0d5f32c565f3/collector/os_release.go#L190-L192

Signed-off-by: Evgeni Golov <evgeni@golov.de>
This commit is contained in:
Evgeni Golov
2026-04-26 15:22:00 +02:00
committed by Etienne Champetier
parent c8760b4ecf
commit 7d9cc2e95a
2 changed files with 11 additions and 2 deletions
@@ -12,13 +12,22 @@ local labels = {
target = b.release.target
}
local os_info = {
id = string.lower(b.release.distribution),
name = b.release.distribution,
pretty_name = b.release.distribution .. " " .. b.release.version,
version = b.release.version,
version_id = b.release.version,
build_id = b.release.revision,
}
local b = nil
local u = nil
local ubus = nil
local function scrape()
metric("node_openwrt_info", "gauge", labels, 1)
metric("node_os_info", "gauge", os_info, 1)
end
return { scrape = scrape }