Skip to content

Repository files navigation

Prometheus Eaton UPS Exporter

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.

badge/GitHub-source-181717?logo=github badge/GitLab-source-FC6D26?logo=gitlab Last Commit Open Issues github/issues-pr/HomeLabHD/prometheus--eaton--ups--exporter Contributors

build license release updated badge/donate-FF5E5B?logo=ko-fi&logoColor=white badge/sponsor-EA4AAA?logo=githubsponsors&logoColor=white

badge/Docker-hlhd%2Fprometheus--eaton--ups--exporter-2496ED?logo=docker&logoColor=white pulls

latest updated size latest-dev updated size

Features:

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

Metrics Exported:

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

Supported Devices:

  • Eaton 5P Series (recent firmwares)
  • Eaton 5PX Series (firmware 3.1.8+)

Quick Start

docker run -d -p 9795:9795 \
  -v ./config.json:/usr/src/app/etc/config.json:ro \
  hlhd/prometheus-eaton-ups-exporter:latest

Configuration

Create a config.json with your UPS credentials:

{
  "MyUPS": {
    "address": "https://10.0.0.1",
    "user": "admin",
    "password": "secret"
  }
}

Usage

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)

Defaults

Setting Default
Listen address 0.0.0.0:9795
Login timeout 3 seconds
Request timeout 10 seconds

Kubernetes

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: true

Grafana Dashboard

An included Grafana dashboard provides out-of-the-box visualization of all exported metrics.


Image Contents

python

No items

requirements.txt

Credits

  • psyinfra — original exporter
  • nvollmar — temperature, system info, extended metrics, Grafana dashboard
  • adyekjaer — firmware 3.1.8 compatibility

License

Distributed under the ISC License.

About

Prometheus exporter for Eaton UPS devices with temperature, system info, and extended metrics.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages