PCP PMDA for Ubiquiti UniFi network infrastructure monitoring
Project description
pcp-pmda-unifi
A Performance Co-Pilot PMDA that exports Ubiquiti UniFi network infrastructure metrics — switch ports, devices, gateways, APs, clients, and more — through the standard PCP toolchain.
Why
PCP already monitors your hosts. This PMDA extends that to your network
infrastructure so you can correlate switch port saturation with application
latency, track PoE power budgets, and spot flapping clients — all from
pmrep, pmlogger, or Grafana via pmproxy.
What You Get
- Per-port switch counters — bytes, packets, errors, drops, PoE power
- Device inventory — model, firmware, uptime, temperature, adoption state
- Gateway metrics — WAN traffic, latency, CPU, memory
- AP radio stats — channel, client count, retries, satisfaction
- Client tracking — hostname, IP, signal, connected port (cardinality-capped)
- Site aggregates — station counts, WAN/LAN/WLAN traffic totals
- Controller health — poll duration, error counts, software version
- DPI categories — optional per-category traffic breakdowns
- Topology graphs —
unifi2dotcompanion tool exports DOT/JSON network maps
Quick Start
# Install PCP (if not already present)
sudo dnf install pcp python3-pcp # RHEL/Fedora
sudo apt install pcp python3-pcp # Debian/Ubuntu
# Install the PMDA
pip install pcp-pmda-unifi
sudo pcp-pmda-unifi-setup install
# Run the interactive installer
cd /var/lib/pcp/pmdas/unifi
sudo ./Install
# Verify
pminfo -f unifi.switch.port.rx_bytes
pmrep -t 5 unifi.switch.port.rx_bytes unifi.switch.port.tx_bytes
Documentation
Full documentation is published via GitHub Pages at
tallpsmith.github.io/pmunifi —
built automatically from the docs/ directory on every push to main using
MkDocs Material.
- Getting Started — install and verify in 5 minutes
- Configuration — config file reference
- Metrics Reference — every metric with type and semantics
- Grafana Dashboards — pre-built dashboards for pmproxy
- Architecture — design decisions and internals
- Troubleshooting — common problems and fixes
Grafana Dashboards
Four pre-built dashboards ship in dashboards/ for use with
pmproxy as a Grafana datasource. See the Grafana guide.
License
GPL-2.0-or-later — same as PCP itself.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pcp_pmda_unifi-0.1.0rc1.tar.gz.
File metadata
- Download URL: pcp_pmda_unifi-0.1.0rc1.tar.gz
- Upload date:
- Size: 37.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9fb720c28f7d0bd856454769036576393fa26daed87b0f1e112dd04b553aa088
|
|
| MD5 |
2ea2d0b02aaaa6799a94ba90bd1c6bb8
|
|
| BLAKE2b-256 |
49a885f273916ad559fa4da84c8294154f6800ba976b4c36dab95808efc3c79a
|
Provenance
The following attestation bundles were made for pcp_pmda_unifi-0.1.0rc1.tar.gz:
Publisher:
release.yml on tallpsmith/pmunifi
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pcp_pmda_unifi-0.1.0rc1.tar.gz -
Subject digest:
9fb720c28f7d0bd856454769036576393fa26daed87b0f1e112dd04b553aa088 - Sigstore transparency entry: 1112195252
- Sigstore integration time:
-
Permalink:
tallpsmith/pmunifi@d5f304e55eef0bf05e0f350221cf8fdb27cb3182 -
Branch / Tag:
refs/tags/v0.1.0-rc1 - Owner: https://github.com/tallpsmith
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d5f304e55eef0bf05e0f350221cf8fdb27cb3182 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pcp_pmda_unifi-0.1.0rc1-py3-none-any.whl.
File metadata
- Download URL: pcp_pmda_unifi-0.1.0rc1-py3-none-any.whl
- Upload date:
- Size: 38.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ab5145661730a1c01d0d82298e0bd67fada647d565012f8c23d5eb016b9c179
|
|
| MD5 |
cb08751d2d2be0a8eac17ac3ffb4b07d
|
|
| BLAKE2b-256 |
ba61ac1042bae783319d0d6f6b6c31c47226c878f509aebce899b84e18b267f1
|
Provenance
The following attestation bundles were made for pcp_pmda_unifi-0.1.0rc1-py3-none-any.whl:
Publisher:
release.yml on tallpsmith/pmunifi
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pcp_pmda_unifi-0.1.0rc1-py3-none-any.whl -
Subject digest:
0ab5145661730a1c01d0d82298e0bd67fada647d565012f8c23d5eb016b9c179 - Sigstore transparency entry: 1112195291
- Sigstore integration time:
-
Permalink:
tallpsmith/pmunifi@d5f304e55eef0bf05e0f350221cf8fdb27cb3182 -
Branch / Tag:
refs/tags/v0.1.0-rc1 - Owner: https://github.com/tallpsmith
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d5f304e55eef0bf05e0f350221cf8fdb27cb3182 -
Trigger Event:
release
-
Statement type: