Prometheus Exporter for TP-Link Omada Controller SDN.
5.8K
---
omada_exporter is a Prometheus exporter for the TP-Link Omada SDN Controller.
It provides real-time metrics for clients, devices, WAN/VPN traffic, and more—via both Web API v2 and OpenAPI.
“rcooler/omada_exporter is a maintained fork of chhaley/omada_exporter (charlie-haley/omada_exporter) with additional metrics and Open API support.”
More info on GitHub
siteId and siteName to client labels./healthz and /readyz endpoints.NetworkClient.vid, preventing JSON unmarshal failures for values like 999.omada_client_upload_activity_bytes API is buggy and does not return correct values.Use:
rate(omada_client_traffic_up_bytes[3m])
rate(omada_client_traffic_down_bytes[3m])
---
---
---
Settings -> Platform Integration.
Assign admin role for full API access.Account section at Global level.
Assign viewer role for read-only access.docker run -d \
--name omada_exporter \
-p 9202:9202 \
-e OMADA_HOST="https://192.168.1.20:443" \
-e OMADA_USER="exporter" \
-e OMADA_PASS="mypassword" \
-e OMADA_SITE="Default" \
-e OMADA_CLIENT_ID="" \
-e OMADA_SECRET_ID="" \
rcooler/omada_exporter:latest
services:
omada_exporter:
image: rcooler/omada_exporter:latest
container_name: omada_exporter
ports:
- "9202:9202"
environment:
OMADA_HOST: "https://192.168.1.20:443"
OMADA_USER: "exporter"
OMADA_PASS: "mypassword"
OMADA_SITE: "Default"
OMADA_CLIENT_ID: ""
OMADA_SECRET_ID: ""
OMADA_MQTT_ENABLED: "true"
OMADA_MQTT_BROKER: "tcp://homeassistant.local:1883"
OMADA_MQTT_USER: "omada_exporter"
OMADA_MQTT_PASS: "mqtt-password"
OMADA_MQTT_CLIENT_ID: "omada_exporter"
OMADA_MQTT_TOPIC_PREFIX: "omada_exporter"
OMADA_MQTT_DISCOVERY_PREFIX: "homeassistant"
OMADA_MQTT_INTERVAL: "60"
OMADA_MQTT_RETAIN: "true"
OMADA_MQTT_EXPIRE_AFTER: "180"
restart: unless-stopped
Add the following job to your prometheus.yml configuration:
- job_name: 'Omada'
scrape_interval: 30s
scrape_timeout: 30s
static_configs:
- targets: ['omada_exporter:9202']
Make sure
omadaresolves to your container or host runningomada_exporter.
| Variable | Purpose |
|---|---|
| OMADA_HOST | The hostname of the Omada Controller, including protocol. |
| OMADA_USER | Username of the Omada user you'd like to use to fetch metrics. |
| OMADA_PASS | Password for your Omada user. |
| OMADA_SITE | Site you'd like to get metrics from. (default: "Default") |
| OMADA_PORT | Port on which to expose the Prometheus metrics. (default: 9202) |
| OMADA_INSECURE | Whether to skip verifying the SSL certificate on the controller. (default: false) |
| OMADA_REQUEST_TIMEOUT | Timeout when making requests to the Omada Controller. (default: 15) |
| OMADA_INCLUDE_PORT_ACTIVITY_LABEL | Include the port_activity_label label on port metrics. (default: true) |
| OMADA_TRACK_PORT_METRICS | Export per-port metrics. (default: true) |
| OMADA_TRACK_CLIENT_METRICS | Export per-client metrics. (default: true) |
| OMADA_DISABLE_GO_COLLECTOR | Disable Go collector metrics. (default: true) |
| OMADA_DISABLE_PROCESS_COLLECTOR | Disable process collector metrics. (default: true) |
| LOG_LEVEL | Application log level. (default: "error") |
| OMADA_CLIENT_ID | Optional Client ID for Open API authentication (WAN & VPN metrics) |
| OMADA_SECRET_ID | Optional Secret ID for Open API authentication (WAN & VPN metrics) |
Last tested on OC200, firmware 6.2.0.12 (ER8411, SG3428X-M2, SG3210XHP-M2, SG2210MP, EAP772-Outdoor, EAP650-Outdoor, EAP225-Outdoor, EAP725-Wall)
OpenApi docs: https://use1-omada-northbound.tplinkcloud.com/doc.html
Content type
Image
Digest
sha256:dc220d2f4…
Size
8.8 MB
Last updated
12 days ago
docker pull rcooler/omada_exporter