A Prometheus exporter for Eaton UPS devices. Collects metrics from the REST API of Eaton UPS web interfaces including temperature, system info, input/output power, and battery status. Supports monitoring multiple UPSs with configurable timeouts.
| Extended Metrics | Temperature, system info (firmware versions), input/output health, energy tracking, efficiency |
| Multi-UPS Monitoring | Monitor multiple Eaton UPSs from a single exporter instance |
| Configurable Timeouts | --request-timeout and --login-timeout CLI flags for slow management cards |
| Threading Support | Optional multi-threaded scraping for faster collection across multiple UPSs |
| Grafana Dashboard | Included dashboard for out-of-the-box visualization |
| Self-Signed SSL Support | -k flag for UPSs with self-signed certificates |
| Category | Metrics |
|---|---|
| System | Device name, bootloader version, firmware version |
| Temperature | Internal UPS temperature (Celsius) |
| Input | Voltage, frequency, current, voltage min/max/nominal, health status |
| Output | Voltage, frequency, current, apparent power (VA), active power (W), power factor, load ratio, average energy, cumulated energy, efficiency, health status |
| Battery | Voltage, state of charge (%), remaining time (s), health status |
- Eaton 5P Series (recent firmwares)
- Eaton 5PX Series (firmware 3.1.8+)
docker run -d -p 9795:9795 \
-v ./config.json:/usr/src/app/etc/config.json:ro \
hlhd/prometheus-eaton-ups-exporter:latestCreate a config.json with your UPS credentials:
{
"MyUPS": {
"address": "https://10.0.0.1",
"user": "admin",
"password": "secret"
}
}prometheus_eaton_ups_exporter.py [-h] -c CONFIG [-w HOST:PORT] [-k] [-t] [-v]
[--login-timeout SECONDS] [--request-timeout SECONDS]
-c, --config CONFIG JSON config file with UPS addresses and credentials
-w, --web.listen-address Listen address (default: 0.0.0.0:9795)
-k, --insecure Allow self-signed SSL certificates
-t, --threading Multi-threaded scraping (faster for multiple UPSs)
-v, --verbose Verbose logging
--login-timeout Login timeout in seconds (default: 3, range: 2-30)
--request-timeout API request timeout in seconds (default: 10, range: 2-30)
| Setting | Default |
|---|---|
| Listen address | 0.0.0.0:9795 |
| Login timeout | 3 seconds |
| Request timeout | 10 seconds |
The exporter is deployed via a Deployment with the config mounted from a Secret:
containers:
- name: exporter
image: hlhd/prometheus-eaton-ups-exporter:latest
ports:
- containerPort: 9795
volumeMounts:
- name: config
mountPath: /usr/src/app/etc/config.json
subPath: config.json
readOnly: trueAn included Grafana dashboard provides out-of-the-box visualization of all exported metrics.
No items
- psyinfra — original exporter
- nvollmar — temperature, system info, extended metrics, Grafana dashboard
- adyekjaer — firmware 3.1.8 compatibility
Distributed under the ISC License.