diff options
Diffstat (limited to 'files/common/openwrt/sensors_prometheus-node-exporter.lua')
-rw-r--r-- | files/common/openwrt/sensors_prometheus-node-exporter.lua | 27 |
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 } |