Info
License: Free — part of the universal collection tier.
UniFi Controller¶
The unifi probe monitors a Ubiquiti UniFi Controller via its REST API (cookie
session authentication, stdlib HTTP), reporting device inventory, per-device
CPU and memory utilization, AP client counts and satisfaction scores, WAN
throughput and connected-client totals.
Quick start¶
# probes.d/10-unifi.yaml — each file under probes.d/ is a YAML array of probes
- name: unifi
type: unifi
params:
endpoint: https://localhost:8443
username: readonly
password: ${secret:unifi.password} # OS secret store; inline plaintext is auto-sealed on install
Parameters¶
| Parameter | Must set | Default | Description |
|---|---|---|---|
endpoint |
In practice | https://localhost:8443 |
Base URL of the controller |
username |
Yes | - | Controller local user |
password |
Yes | - | Controller local user's password. A secret: reference it with ${secret:…}, ${env:…} or ${file:…} rather than writing it in the file |
site |
No | default |
Controller site to watch |
verify_tls |
No | true |
Verify the controller certificate; false accepts a self-signed one |
interval |
No | 60 |
Seconds between collections |
timeout |
No | 15 |
Request timeout in seconds |
Metrics¶
| Metric | Unit | Description |
|---|---|---|
senhub.unifi.up |
1 | 1 when the controller answered login and stat endpoints |
unifi.device.count |
{device} | Known devices by type (uap/usw/ugw), tagged with device_type |
unifi.devices.adopted |
{device} | Adopted devices by type |
unifi.client.count |
# | Connected clients, wired and wireless |
unifi.device.cpu |
1 | CPU utilization ratio per device, tagged with device_name / device_type |
unifi.device.memory |
1 | Memory utilization ratio per device |
unifi.ap.satisfaction |
1 | AP user experience satisfaction score (0–100 normalized to 0–1), per AP |
unifi.ap.clients |
# | Clients associated to this access point, tagged with device_name |
unifi.network.io |
bytes | WAN byte rate reported by the controller, tagged with direction |
Operational notes¶
-
unifi.devices.adoptedis what the controller reports as adopted. A device whose adoption failed (state 10) still counts there; read it together withunifi.devices.disconnected, which counts every device that is not connected. A disconnected access point reports no client count and no satisfaction. -
Create a read-only local user in the UniFi Controller under Settings → Admins. The "Read Only" role is sufficient.
- For UniFi OS (UDM/UDR), use
https://<controller>/proxy/networkas the endpoint, not the legacy:8443port. verify_tls: falseshould only be used for home lab controllers with self-signed certificates. In production, install a valid certificate.
Metric reference¶
Every metric this probe can emit. Metric is the OpenTelemetry name the
OTLP, Prometheus and Zabbix outputs derive theirs from. Name is what a
Nagios check and the API metrics= filter match.
PRTG channel is the label PRTG shows, placeholders filled from the
series' tags.
| Metric | Name | PRTG channel | Unit | Description |
|---|---|---|---|---|
senhub.unifi.up |
senhub.unifi.up |
UniFi Controller Up | # | 1 when the controller answered login and the stat endpoints this cycle, 0 otherwise |
unifi.device.count |
unifi.devices.total |
UniFi {device_type} Devices | # | Number of devices of this type known to the controller |
unifi.devices.adopted |
unifi.devices.adopted |
UniFi {device_type} Adopted | # | Number of devices of this type the controller marks adopted; a device whose adoption failed still counts, so read it with unifi.devices.disconnected |
unifi.devices.disconnected |
unifi.devices.disconnected |
UniFi {device_type} Disconnected | # | Number of devices of this type not in the connected state |
unifi.client.count |
unifi.clients.total |
UniFi Clients | # | Total connected clients (wired + wireless) |
unifi.clients.wifi |
unifi.clients.wifi |
UniFi WiFi Clients | # | Connected wireless clients |
unifi.network.io |
unifi.network.io |
UniFi WAN IO | bytes | WAN byte rate reported by the controller, discriminated by direction (transmit/receive) |
unifi.device.cpu |
unifi.device.cpu |
UniFi {device_name} CPU | % | Per-device CPU utilization percentage |
unifi.device.memory |
unifi.device.memory |
UniFi {device_name} Memory | % | Per-device memory utilization percentage |
unifi.ap.clients |
unifi.ap.clients |
UniFi AP {device_name} Clients | # | Clients associated to this access point |
unifi.ap.satisfaction |
unifi.ap.satisfaction |
UniFi AP {device_name} Satisfaction | # | Access point experience score as a 0..1 ratio |