Prometheus Exporter for TP-Link Omada Controller SDN.
There's a default dashboard in this repo, which would be a good starting point for visualising your metrics. The dashboard is also available on Grafana.com.
I highly recommend you create a new user in the Omada SDN that has the Viewer
role and use that to authenticate instead of your primary admin user.
docker run -d \
-p 9202:9202 \
-e OMADA_HOST='https://192.168.1.20' \
-e OMADA_USER='exporter' \
-e OMADA_PASS='mypassword' \
-e OMADA_SITE='Default' \
chhaley/omada_exporter
There's also a GHCR mirror available if you'd prefer to not use Docker Hub. ghcr.io/charlie-haley/omada_exporter
helm repo add charlie-haley http://charts.charliehaley.dev
helm repo update
helm install omada-exporter charlie-haley/omada-exporter \
--set omada.host=https://192.1.1.20 \
--set omada.username=exporter \
--set omada.password=mypassword \
--set omada.site=Default \
-n monitoring
If you want to use the ServiceMonitor (which is enabled by default) you'll need to have prometheus-operator deployed to your cluster, see values to disable it if you'd like use ingress instead.
You can find the chart repo here, if you'd like to contribute.
You can download the latest binary release here.
NAME:
omada-exporter - Prometheus Exporter for TP-Link Omada Controller SDN.
USAGE:
main [global options] command [command options] [arguments...]
VERSION:
development
AUTHOR:
Charlie Haley <charlie-haley@users.noreply.github.com>
COMMANDS:
version, v prints the current version.
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--host value The hostname of the Omada Controller, including protocol. [$OMADA_HOST]
--username value Username of the Omada user you'd like to use to fetch metrics. [$OMADA_USER]
--password value Password for your Omada user. [$OMADA_PASS]
--port value Port on which to expose the Prometheus metrics. (default: "9202") [$OMADA_PORT]
--site value Omada site to scrape metrics from. (default: "Default") [$OMADA_SITE]
--log-level value Application log level. (default: "error") [$LOG_LEVEL]
--timeout value Timeout when making requests to the Omada Controller. (default: 15) [$OMADA_REQUEST_TIMEOUT]
--insecure Whether to skip verifying the SSL certificate on the controller. (default: false) [$OMADA_INSECURE]
--disable-go-collector Disable Go collector metrics. (default: true) [$OMADA_DISABLE_GO_COLLECTOR]
--disable-process-collector Disable process collector metrics. (default: true) [$OMADA_DISABLE_PROCESS_COLLECTOR]
--help, -h show help (default: false)
--version, -v print the version (default: false)
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_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") |
# values.yaml
omada:
host: "https://192.1.1.20" # The hostname of the Omada Controller, including protocol.
username: "exporter" # Username of the Omada user you'd like to use to fetch metrics.
password: "mypassword" # Password for your Omada user.
site: "Default" # Site you'd like to get metrics from. (default: "Default")
insecure: false # Whether to skip verifying the SSL certificate on the controller. (default: false)
Name | Description | Labels |
---|---|---|
omada_device_uptime_seconds | Uptime of the device. | device, model, version, ip, mac, site, site_id, device_type |
omada_device_cpu_percentage | Percentage of device CPU used. | device, model, version, ip, mac, site, site_id, device_type |
omada_device_mem_percentage | Percentage of device Memory used. | device, model, version, ip, mac, site, site_id, device_type |
omada_device_need_upgrade | A boolean on whether the device needs an upgrade. | device, model, version, ip, mac, site, site_id, device_type |
omada_device_tx_rate | The tx rate of the device. | device, model, version, ip, mac, site, site_id, device_type |
omada_device_rx_rate | The rx rate of the device. | device, model, version, ip, mac, site, site_id, device_type |
omada_device_poe_remain_watts | The remaining amount of PoE power for the device in watts. | device, model, version, ip, mac, site, site_id, device_type |
omada_client_download_activity_bytes | The current download activity for the client in bytes. | client, vendor, switch_port, vlan_id, ip, mac, site, site_id, ap_name, ssid, wifi_mode |
omada_client_signal_dbm | The signal level for the wireless client in dBm. | client, vendor, ip, mac, ap_name, site, site_id, ssid, wifi_mode |
omada_port_power_watts | The current PoE usage of the port in watts. | device, device_mac, client, vendor, switch_port, name, switch_mac, switch_id, vlan_id, profile, site, site_id |
omada_port_link_status | A boolean representing the link status of the port. | device, device_mac, client, vendor, switch_port, name, switch_mac, switch_id, vlan_id, profile, site, site_id |
omada_port_link_speed_mbps | Port link speed in mbps. This is the capability of the connection, not the active throughput. | device, device_mac, client, vendor, switch_port, name, switch_mac, switch_id, vlan_id, profile, site, site_id |
omada_port_link_rx | Bytes recieved on a port. | device, device_mac, client, vendor, switch_port, name, switch_mac, switch_id, vlan_id, profile, site, site_id |
omada_port_link_tx | Bytes transmitted on a port. | device, device_mac, client, vendor, switch_port, name, switch_mac, switch_id, vlan_id, profile, site, site_id |
omada_controller_uptime_seconds | Uptime of the controller. | controller_name, model, controller_version, firmware_version, mac |
omada_controller_storage_used_bytes | Storage used on the controller. | storage_name, controller_name, model, controller_version, firmware_version, mac |
omada_controller_storage_available_bytes | Total storage available for the controller. | storage_name, controller_name, model, controller_version, firmware_version, mac |
omada_client_connected_total | Total number of connected clients. | site, site_id |