The Verdigris Prometheus Pusher is a lightweight Python script that polls the Verdigris energy monitoring API and pushes metrics to any Prometheus-compatible remote_write endpoint — including Prometheus, Grafana Cloud, Mimir, and Thanos. No Docker or web server required.
Available metrics
Metric | Labels | Description |
|
| Energy consumption at the building level |
|
| Energy consumption at the breaker level |
|
| Energy consumption at the circuit level |
Data intervals are configurable: 1m, 15m (default), 1h, or 1d.
How it works
The Pusher runs on your infrastructure as a Python script (Python 3.10+)
It authenticates with the Verdigris API using OAuth 2.0 (client ID + secret)
It polls energy data for your configured buildings, breakers, and/or circuits at a configurable interval (default: every 15 minutes)
It writes metrics directly to your
remote_writeendpoint using the Prometheus remote write protocol
Requirements
Python 3.10+ and pip
Verdigris OAuth 2.0 credentials (client ID and secret)
A Prometheus-compatible
remote_writeendpointBuilding IDs for the sites you want to monitor (breaker and circuit IDs are optional for more granular data)
Configuration
All configuration is via environment variables:
Variable | Required | Default | Description |
| Yes | — | OAuth 2.0 client ID |
| Yes | — | OAuth 2.0 client secret |
| Yes | — | Comma-separated building IDs |
| No | — | Comma-separated breaker IDs |
| No | — | Comma-separated circuit IDs |
| Yes | — | Prometheus remote_write endpoint URL |
| No | — | Basic auth username (e.g. Grafana Cloud) |
| No | — | Basic auth password / API key |
| No | 900 | Seconds between collection cycles |
| No | 15m | Verdigris API interval (1m, 15m, 1h, 1d) |
Deployment options
Long-running process: Run
python main.py— it polls continuously at the configured intervalsystemd service: Install as a systemd unit for automatic startup and restart on failure
Cron job: Set
POLL_INTERVAL_SECONDS=0for one-shot mode and schedule via cron
Grafana Cloud example
Set your remote write URL and credentials:
REMOTE_WRITE_URL=https://influx-prod-us-central1.grafana.net/api/prom/push REMOTE_WRITE_USERNAME=123456 REMOTE_WRITE_PASSWORD=glc_abc123...
Get started
The source code and full setup instructions are available. Contact your Verdigris solutions engineer for OAuth credentials and building IDs, or reach out at solutions@verdigris.co.
