The VergeOS dashboard provides real-time health and analytics, but enterprise monitoring strategies typically require a centralized, time-series store that can aggregate metrics across multiple systems, retain data beyond the 45-day in-UI window, and trigger sophisticated alerting rules. The vergeos-exporter bridges this gap by exposing VergeOS metrics in Prometheus format — the de facto standard for cloud-native monitoring.
With the exporter running, you gain long-term trend analysis, cross-system correlation, and integration with existing alerting pipelines — all without modifying the VergeOS system itself.
The vergeos-exporter is an open-source tool maintained by Verge in the verge-io/vergeos-exporter GitHub repository. It connects to the VergeOS REST API, collects infrastructure metrics, and exposes them on an HTTP endpoint that Prometheus scrapes at a configurable interval.
The exporter collects three categories of metrics:
vSAN Tier Metrics
Capacity, usage, and allocation per tier. Transaction and repair counts.
Drive state monitoring (online, offline, repairing, initializing, verifying,
noredundant, outofspace). Drive temperature and health data. Read/write
operations and IOPS.
Cluster Metrics
Node count per cluster. RAM, CPU, and disk utilization. Synchronization
status and health.
Node Metrics
Per-node CPU and memory usage. Network throughput and latency. Service
status per node.
A complete metric reference is available in the metrics.md file in the exporter repository.
The vergeos-exporter follows the standard Prometheus pull model. Prometheus initiates the connection by scraping the /metrics endpoint on the exporter at a configured interval (typically 15–60 seconds). This approach means:
No inbound firewall rules are required on the VergeOS system itself
The exporter can run on any host with network access to the VergeOS API
Multiple Prometheus instances can scrape the same exporter for HA
The exporter is AlertManager-compatible — Prometheus alerting rules work natively with the exposed metrics
The repository includes a ready-made Docker Compose example under examples/docker-compose/ that bundles the exporter, Prometheus, and Grafana into a single stack — ideal for quick evaluation or lab environments.
# Simplified docker-compose.yml structure
services:
vergeos-exporter:
image: vergeos-exporter:latest
ports:
- "9888:9888"
environment:
- VERGE_URL=https://your-vergeos-host
- VERGE_USERNAME=prometheus-exporter
- VERGE_PASSWORD=YourStrongPassword
prometheus:
image: prom/prometheus:latest
ports:
- "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
grafana:
image: grafana/grafana:latest
ports:
- "3000:3000"
The Docker Compose example automatically retrieves the correct platform-specific binary for your architecture.
Add the exporter as a scrape target in your prometheus.yml:
scrape_configs:
- job_name: "vergeos"
scrape_interval: 30s
scrape_timeout: 30s
static_configs:
- targets: ["exporter-host:9888"]
labels:
environment: "production"
cluster: "site-a"
For monitoring multiple VergeOS environments, deploy one exporter per environment and add each as a separate target (or use Prometheus relabeling for dynamic discovery).
The vergeos-exporter ships with a pre-configured Grafana dashboard (examples/grafana-dashboard.json) that provides comprehensive visualization out of the box.
If the endpoint returns metrics, Prometheus will scrape them automatically on its next interval. Check the Prometheus Targets page (http://prometheus:9090/targets) to confirm the vergeos job shows a status of UP.
summary: "Drive {{ $labels.drive }} is offline on node {{ $labels.node }}"
AlertManager can route these alerts to email, Slack, PagerDuty, OpsGenie, or any webhook endpoint — integrating VergeOS monitoring into your existing incident management workflow.