50 lines
1.5 KiB
Markdown
50 lines
1.5 KiB
Markdown
# x1208-exporter
|
||
|
||
One-shot Prometheus textfile exporter for the Geekworm X1208 UPS HAT on Raspberry Pi 5.
|
||
|
||
Reads:
|
||
|
||
- GPIO 6 (PLD) — `1` = AC plugged in, `0` = on battery.
|
||
- I2C `0x36` (MAX17040 fuel gauge) — battery voltage and state of charge.
|
||
|
||
Writes `/var/lib/node-exporter/textfiles/x1208.prom` atomically. node-exporter's
|
||
textfile collector serves it at scrape time.
|
||
|
||
## Metrics
|
||
|
||
| Name | Type | Description |
|
||
| ------------------------------- | ----- | -------------------------------------------- |
|
||
| `rpi_ups_ac_power` | gauge | `1` = AC present, `0` = on battery |
|
||
| `rpi_ups_voltage_volts` | gauge | Battery cell voltage |
|
||
| `rpi_ups_battery_percent` | gauge | State of charge (0–100) |
|
||
| `rpi_ups_last_update_seconds` | gauge | Unix timestamp of last exporter run |
|
||
|
||
## Deploy
|
||
|
||
```bash
|
||
just deploy
|
||
```
|
||
|
||
Builds the arm64 binary, scps to `rpi`, installs systemd units, starts the timer.
|
||
|
||
## Verify
|
||
|
||
```bash
|
||
just run-once # forces one read, prints the prom file
|
||
just logs # journalctl tail
|
||
```
|
||
|
||
## How node-exporter picks it up
|
||
|
||
The `monitoring` compose stack on the Pi must mount the textfile dir and pass
|
||
the flag to node-exporter:
|
||
|
||
```yaml
|
||
node-exporter:
|
||
volumes:
|
||
- /var/lib/node-exporter/textfiles:/textfiles:ro
|
||
command:
|
||
- '--collector.textfile.directory=/textfiles'
|
||
# ...existing flags
|
||
```
|