summaryrefslogtreecommitdiff
path: root/files/common/openwrt/sensors_prometheus-node-exporter.lua
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2021-10-21 00:47:37 +0200
committerChristian Pointner <equinox@spreadspace.org>2021-10-21 00:47:37 +0200
commit2b45db2de49208b0d78b04ba2eaa1bd2f5b45e8a (patch)
treee73ec4ecd66dc275c320bc1ba2aa922b53b4e312 /files/common/openwrt/sensors_prometheus-node-exporter.lua
parentprometheus: install textfile collector for chrony (diff)
fix typo
Diffstat (limited to 'files/common/openwrt/sensors_prometheus-node-exporter.lua')
-rw-r--r--files/common/openwrt/sensors_prometheus-node-exporter.lua27
1 files changed, 27 insertions, 0 deletions
diff --git a/files/common/openwrt/sensors_prometheus-node-exporter.lua b/files/common/openwrt/sensors_prometheus-node-exporter.lua
new file mode 100644
index 00000000..1d32fa0d
--- /dev/null
+++ b/files/common/openwrt/sensors_prometheus-node-exporter.lua
@@ -0,0 +1,27 @@
+local sensors = require "sensors"
+
+local config, _ = sensors.read_config('/etc/sensors.json')
+sensors.setup(config)
+local units = {
+ temperature = "celsius",
+ humidity = "percent",
+ pressure = "pascals",
+ gpio = "status",
+}
+
+local function scrape()
+ local readings, err = sensors.read(config)
+ if not readings then return end
+
+ for name, values in pairs(readings) do
+ labels = { name = name, kind = values._kind_ }
+ for t, v in pairs(values) do
+ local unit = units[t]
+ if unit ~= nil then
+ metric("sensors_" .. t .. "_" .. unit, "gauge", labels, v)
+ end
+ end
+ end
+end
+
+return { scrape = scrape }