Tom Wilkie
5ed9b00598
chore(deps): bump github.com/unpoller/unifi/v6 to v6.3.0
...
v6.3.0 includes UMBB device support (unpoller/unifi#252 ), so the
temporary replace pointing at a fork is no longer needed.
2026-10-01 14:10:30 +01:00
Tom Wilkie
00b6f3380a
feat: export UMBB (U5G Max) cellular modem metrics
...
Mobile broadband devices such as the U5G Max report type "umbb", which
the unifi library skipped, so they never reached any output and there
was no signal history for them.
Pass UMBB devices through the input plugin (device list, site name
override, alarm device names) and export them from Prometheus, InfluxDB,
Datadog and OTel:
- radio: RSRP, RSRQ, SNR, signal bars/percent, coverage, roaming,
registration state, carrier aggregation count and total bandwidth,
plus state/mode/RAT/band/operator
- per SIM: active, display state and time in it, last carrier network
reject (type, text, age), cumulative rx/tx bytes
- the usual device uptime, system stats and uplink
go.mod temporarily replaces github.com/unpoller/unifi/v6 with a fork
carrying the UMBB type (unpoller/unifi feat/umbb); swap it for a version
bump once that is released.
2026-10-01 10:48:24 +01:00
Cody Lee and Cursor
c742df91e8
chore(deps): bump github.com/unpoller/unifi/v6 to v6.2.0
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-29 11:28:06 -05:00
Cody Lee and Cursor
45d60f7824
chore(deps): bump github.com/unpoller/unifi/v6 to v6.1.3
...
Picks up JSON-encoded login credentials so passwords containing quotes authenticate.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-29 09:09:40 -05:00
dependabot[bot]
5675702b51
build(deps): bump the all group with 2 updates
...
Bumps the all group with 2 updates: [golift.io/cnfg](https://github.com/golift/cnfg ) and [golift.io/cnfgfile](https://github.com/golift/cnfgfile ).
Updates `golift.io/cnfg` from 0.4.0 to 0.5.0
- [Release notes](https://github.com/golift/cnfg/releases )
- [Commits](https://github.com/golift/cnfg/compare/v0.4.0...v0.5.0 )
Updates `golift.io/cnfgfile` from 0.0.0-20240713024420-a5436d84eb48 to 0.1.0
- [Release notes](https://github.com/golift/cnfgfile/releases )
- [Commits](https://github.com/golift/cnfgfile/commits/v0.1.0 )
---
updated-dependencies:
- dependency-name: golift.io/cnfg
dependency-version: 0.5.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: golift.io/cnfgfile
dependency-version: 0.1.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-09-28 02:42:40 +00:00
dependabot[bot]
0f4d1be9c7
build(deps): bump the all group across 1 directory with 4 updates
...
Bumps the all group with 2 updates in the / directory: [golang.org/x/crypto](https://github.com/golang/crypto ) and [golift.io/cnfg](https://github.com/golift/cnfg ).
Updates `golang.org/x/crypto` from 0.56.0 to 0.57.0
- [Commits](https://github.com/golang/crypto/compare/v0.56.0...v0.57.0 )
Updates `golang.org/x/sync` from 0.22.0 to 0.23.0
- [Commits](https://github.com/golang/sync/compare/v0.22.0...v0.23.0 )
Updates `golang.org/x/term` from 0.45.0 to 0.46.0
- [Commits](https://github.com/golang/term/compare/v0.45.0...v0.46.0 )
Updates `golift.io/cnfg` from 0.2.5 to 0.4.0
- [Release notes](https://github.com/golift/cnfg/releases )
- [Commits](https://github.com/golift/cnfg/compare/v0.2.5...v0.4.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/crypto
dependency-version: 0.57.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: golang.org/x/sync
dependency-version: 0.23.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: golang.org/x/term
dependency-version: 0.46.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: golift.io/cnfg
dependency-version: 0.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-09-14 14:59:13 +00:00
dependabot[bot]
c2bdfd2d2b
build(deps): bump google.golang.org/grpc from 1.83.1 to 1.83.2
...
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go ) from 1.83.1 to 1.83.2.
- [Release notes](https://github.com/grpc/grpc-go/releases )
- [Commits](https://github.com/grpc/grpc-go/compare/v1.83.1...v1.83.2 )
---
updated-dependencies:
- dependency-name: google.golang.org/grpc
dependency-version: 1.83.2
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-09-09 00:23:30 +00:00
dependabot[bot]
089dda98fd
build(deps): bump the all group with 4 updates ( #1080 )
...
Bumps the all group with 4 updates: [github.com/prometheus/common](https://github.com/prometheus/common ), [github.com/unpoller/unifi/v6](https://github.com/unpoller/unifi ), [golang.org/x/crypto](https://github.com/golang/crypto ) and [github.com/prometheus/client_model](https://github.com/prometheus/client_model ).
Updates `github.com/prometheus/common` from 0.70.1 to 0.71.0
- [Release notes](https://github.com/prometheus/common/releases )
- [Changelog](https://github.com/prometheus/common/blob/main/CHANGELOG.md )
- [Commits](https://github.com/prometheus/common/compare/v0.70.1...v0.71.0 )
Updates `github.com/unpoller/unifi/v6` from 6.1.0 to 6.1.2
- [Release notes](https://github.com/unpoller/unifi/releases )
- [Commits](https://github.com/unpoller/unifi/compare/v6.1.0...v6.1.2 )
Updates `golang.org/x/crypto` from 0.55.0 to 0.56.0
- [Commits](https://github.com/golang/crypto/compare/v0.55.0...v0.56.0 )
Updates `github.com/prometheus/client_model` from 0.6.2 to 0.6.3
- [Release notes](https://github.com/prometheus/client_model/releases )
- [Commits](https://github.com/prometheus/client_model/compare/v0.6.2...v0.6.3 )
---
updated-dependencies:
- dependency-name: github.com/prometheus/common
dependency-version: 0.71.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: github.com/unpoller/unifi/v6
dependency-version: 6.1.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: all
- dependency-name: golang.org/x/crypto
dependency-version: 0.56.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: github.com/prometheus/client_model
dependency-version: 0.6.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: all
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-07 07:26:31 -04:00
Cody Lee and Cursor
e4c2934bdc
fix: poll remote multi-site controllers by internalReference
...
Remote discovery stored Integration display names, so extra sites were dropped when checkSites compared them to legacy Site.Name. Use unifi v6.1.0 InternalReference instead.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-31 13:54:21 -04:00
Prototype0645
24329e278e
feat(wan): label WAN metrics with their site and source
...
Every unpoller_wan_* series shipped with site_name="" and source="". The
exporter said so itself:
cfg.WANLoadBalanceType,
"", // site_name - will be set by caller if available
"", // source - will be set by caller if available
The caller had nothing to set them from: WANEnrichedConfiguration carried
no identity. unifi/v6.0.3 fixes that upstream — GetWANEnrichedConfiguration
now stamps SiteName and SourceName from the site it fetched, the same way
GetSiteDPI does.
This bumps to v6.0.3 and fills the labels in. Two slices needed it, not
one: the base label set and the provider label set built further down for
the isp_name/isp_city descriptors. The test caught the second, which I had
missed.
Why it matters: an instance polling several controllers emitted WAN
metrics that were indistinguishable from one another, since wan_id is the
only other distinguishing label. Attributing them downstream meant
hardcoding a mapping in the scrape config and hoping no second controller
ever gained a gateway — when one does, its metrics are silently filed
under the wrong customer. No error, no missing series, just wrong data.
Tests use the fakeReport already present in the package. They assert every
emitted metric carries both labels, and that a nil configuration still
produces nothing rather than panicking a poll.
TestExportWANIsAttributed fails on master and passes with this change.
2026-08-31 12:06:58 +02:00
dependabot[bot]
168930827b
build(deps): bump the all group across 1 directory with 6 updates
...
Bumps the all group with 3 updates in the / directory: [go.opentelemetry.io/otel](https://github.com/open-telemetry/opentelemetry-go ), [go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://github.com/open-telemetry/opentelemetry-go ) and [go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp](https://github.com/open-telemetry/opentelemetry-go ).
Updates `go.opentelemetry.io/otel` from 1.45.0 to 1.46.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.45.0...v1.46.0 )
Updates `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` from 1.45.0 to 1.46.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.45.0...v1.46.0 )
Updates `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp` from 1.45.0 to 1.46.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.45.0...v1.46.0 )
Updates `go.opentelemetry.io/otel/metric` from 1.45.0 to 1.46.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.45.0...v1.46.0 )
Updates `go.opentelemetry.io/otel/sdk` from 1.45.0 to 1.46.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.45.0...v1.46.0 )
Updates `go.opentelemetry.io/otel/sdk/metric` from 1.45.0 to 1.46.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.45.0...v1.46.0 )
---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel
dependency-version: 1.46.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc
dependency-version: 1.46.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp
dependency-version: 1.46.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: go.opentelemetry.io/otel/metric
dependency-version: 1.46.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: go.opentelemetry.io/otel/sdk
dependency-version: 1.46.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: go.opentelemetry.io/otel/sdk/metric
dependency-version: 1.46.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-08-31 09:42:09 +00:00
Prototype0645
b479d3db91
chore(deps): bump github.com/unpoller/unifi/v6 to v6.0.2
2026-08-31 08:18:56 +02:00
Cody Lee and Cursor
5e31d2f252
Add InfluxDB v3 support and fix tag/field schema collisions.
...
Introduce explicit version selection with the influxdb3-go client alongside existing v1 and v2 paths, and resolve overlapping tag/field keys required for InfluxDB 3 write validation.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-27 15:49:59 -05:00
Cody Lee
cb639e0c5c
Merge branch 'master' into feat/protect-device-metrics
2026-08-27 09:58:11 -05:00
dependabot[bot]
9a8ad81abb
build(deps): bump the all group with 2 updates
...
Bumps the all group with 2 updates: [github.com/DataDog/datadog-go/v5](https://github.com/DataDog/datadog-go ) and [github.com/stretchr/testify](https://github.com/stretchr/testify ).
Updates `github.com/DataDog/datadog-go/v5` from 5.9.0 to 5.9.1
- [Release notes](https://github.com/DataDog/datadog-go/releases )
- [Changelog](https://github.com/DataDog/datadog-go/blob/master/CHANGELOG.md )
- [Commits](https://github.com/DataDog/datadog-go/compare/v5.9.0...v5.9.1 )
Updates `github.com/stretchr/testify` from 1.12.0 to 1.12.1
- [Release notes](https://github.com/stretchr/testify/releases )
- [Commits](https://github.com/stretchr/testify/compare/v1.12.0...v1.12.1 )
---
updated-dependencies:
- dependency-name: github.com/DataDog/datadog-go/v5
dependency-version: 5.9.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: all
- dependency-name: github.com/stretchr/testify
dependency-version: 1.12.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: all
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-08-24 02:42:40 +00:00
Cody Lee
65ad210f20
feat: add UniFi Protect device metrics ( closes #1015 )
...
Collects Protect device data (sensors, cameras, lights, bridges, link
stations, NVR) via the official Integration API and exports it through
Prometheus, InfluxDB, and DataDog. Opt-in via save_protect_devices,
gated by protect_api_key.
Bumps github.com/unpoller/unifi to v6, which added the Protect API
client (breaking change: FlexInt/FlexBool/FlexFloat replace nullable
pointers).
2026-08-19 15:14:43 -05:00
Cody Lee and Claude Opus 5
d5dfc771d5
feat: add opt-in UNAS Pro support ( closes #785 )
...
Adds a new `unas` input plugin that polls UNAS Pro storage consoles and
exports console health, storage pools, disks and shares to Prometheus,
InfluxDB and DataDog.
UNAS is a separate plugin rather than a device type inside inputunifi
because a storage-only console has no Network application: it cannot
answer /status, has no sites, and shares none of the UniFi device schema.
The plugin is opt-in and inert until an operator names a console. Opt-in
is expressed as "no devices configured" rather than a `disable` flag,
because a bool named `disable` zero-values to false and so cannot make a
plugin default-off. Initialize returns silently on an empty device list
and, unlike inputunifi, nothing synthesizes a default URL.
Two behaviours are worth calling out for reviewers:
- Metrics returns (metrics, nil) whenever any console was collected.
poller.collectMetrics uses `if err != nil {} else if metric != nil`,
so returning both would discard every healthy console because one
failed. Only a total failure returns an error.
- Re-auth fires on total failure, not on a 401. A mid-session 401 from
GetData surfaces as ErrInvalidStatusCode, not ErrAuthenticationFailed,
so there is no sentinel to match on. Session expiry fails all four
endpoints at once, which is exactly the total-failure case.
Prometheus metrics use the `unifi_unas_` prefix, which diverges from the
`unas_` prefix used by the reference implementation; dashboards built
against that will need query edits.
Requires unifi/v5 v5.31.0 for the UNAS client and structs.
Credit to alexgreenbank/unaspoller for mapping the endpoints.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-19 07:52:37 -05:00
dependabot[bot]
bcb8cc8677
build(deps): bump golang.org/x/crypto in the all group
...
Bumps the all group with 1 update: [golang.org/x/crypto](https://github.com/golang/crypto ).
Updates `golang.org/x/crypto` from 0.54.0 to 0.55.0
- [Commits](https://github.com/golang/crypto/compare/v0.54.0...v0.55.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/crypto
dependency-version: 0.55.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-08-17 02:42:43 +00:00
dependabot[bot]
52c8a3ffc3
build(deps): bump the all group with 6 updates
...
Bumps the all group with 6 updates:
| Package | From | To |
| --- | --- | --- |
| [go.opentelemetry.io/otel](https://github.com/open-telemetry/opentelemetry-go ) | `1.44.0` | `1.45.0` |
| [go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://github.com/open-telemetry/opentelemetry-go ) | `1.44.0` | `1.45.0` |
| [go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp](https://github.com/open-telemetry/opentelemetry-go ) | `1.44.0` | `1.45.0` |
| [go.opentelemetry.io/otel/metric](https://github.com/open-telemetry/opentelemetry-go ) | `1.44.0` | `1.45.0` |
| [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go ) | `1.44.0` | `1.45.0` |
| [go.opentelemetry.io/otel/sdk/metric](https://github.com/open-telemetry/opentelemetry-go ) | `1.44.0` | `1.45.0` |
Updates `go.opentelemetry.io/otel` from 1.44.0 to 1.45.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.44.0...v1.45.0 )
Updates `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` from 1.44.0 to 1.45.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.44.0...v1.45.0 )
Updates `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp` from 1.44.0 to 1.45.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.44.0...v1.45.0 )
Updates `go.opentelemetry.io/otel/metric` from 1.44.0 to 1.45.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.44.0...v1.45.0 )
Updates `go.opentelemetry.io/otel/sdk` from 1.44.0 to 1.45.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.44.0...v1.45.0 )
Updates `go.opentelemetry.io/otel/sdk/metric` from 1.44.0 to 1.45.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.44.0...v1.45.0 )
---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel
dependency-version: 1.45.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc
dependency-version: 1.45.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp
dependency-version: 1.45.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: go.opentelemetry.io/otel/metric
dependency-version: 1.45.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: go.opentelemetry.io/otel/sdk
dependency-version: 1.45.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: go.opentelemetry.io/otel/sdk/metric
dependency-version: 1.45.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-08-10 02:42:57 +00:00
Jim Strang
5dcb06a8ce
chore(deps): upgrade unifi to v5.30.0
2026-08-07 07:31:26 -04:00
dependabot[bot]
449aaabfba
build(deps): bump the all group with 2 updates
...
Bumps the all group with 2 updates: [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang ) and [github.com/prometheus/common](https://github.com/prometheus/common ).
Updates `github.com/prometheus/client_golang` from 1.23.2 to 1.24.1
- [Release notes](https://github.com/prometheus/client_golang/releases )
- [Changelog](https://github.com/prometheus/client_golang/blob/v1.24.1/CHANGELOG.md )
- [Commits](https://github.com/prometheus/client_golang/compare/v1.23.2...v1.24.1 )
Updates `github.com/prometheus/common` from 0.70.0 to 0.70.1
- [Release notes](https://github.com/prometheus/common/releases )
- [Changelog](https://github.com/prometheus/common/blob/main/CHANGELOG.md )
- [Commits](https://github.com/prometheus/common/compare/v0.70.0...v0.70.1 )
---
updated-dependencies:
- dependency-name: github.com/prometheus/client_golang
dependency-version: 1.24.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: github.com/prometheus/common
dependency-version: 0.70.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: all
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-27 02:42:31 +00:00
dependabot[bot]
6ab2f06f89
build(deps): bump google.golang.org/grpc from 1.81.1 to 1.82.1
...
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go ) from 1.81.1 to 1.82.1.
- [Release notes](https://github.com/grpc/grpc-go/releases )
- [Commits](https://github.com/grpc/grpc-go/compare/v1.81.1...v1.82.1 )
---
updated-dependencies:
- dependency-name: google.golang.org/grpc
dependency-version: 1.82.1
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-25 08:45:56 -05:00
dependabot[bot]
de47ac9e58
build(deps): bump github.com/unpoller/unifi/v5 in the all group
...
Bumps the all group with 1 update: [github.com/unpoller/unifi/v5](https://github.com/unpoller/unifi ).
Updates `github.com/unpoller/unifi/v5` from 5.28.2-0.20260710223336-0de412a69b2f to 5.29.0
- [Release notes](https://github.com/unpoller/unifi/releases )
- [Commits](https://github.com/unpoller/unifi/commits/v5.29.0 )
---
updated-dependencies:
- dependency-name: github.com/unpoller/unifi/v5
dependency-version: 5.29.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-20 18:15:05 -05:00
dependabot[bot]
4908495c48
build(deps): bump the all group with 4 updates
...
Bumps the all group with 4 updates: [github.com/prometheus/common](https://github.com/prometheus/common ), [golang.org/x/crypto](https://github.com/golang/crypto ), [golang.org/x/sync](https://github.com/golang/sync ) and [golang.org/x/term](https://github.com/golang/term ).
Updates `github.com/prometheus/common` from 0.69.0 to 0.70.0
- [Release notes](https://github.com/prometheus/common/releases )
- [Changelog](https://github.com/prometheus/common/blob/main/CHANGELOG.md )
- [Commits](https://github.com/prometheus/common/compare/v0.69.0...v0.70.0 )
Updates `golang.org/x/crypto` from 0.53.0 to 0.54.0
- [Commits](https://github.com/golang/crypto/compare/v0.53.0...v0.54.0 )
Updates `golang.org/x/sync` from 0.21.0 to 0.22.0
- [Commits](https://github.com/golang/sync/compare/v0.21.0...v0.22.0 )
Updates `golang.org/x/term` from 0.44.0 to 0.45.0
- [Commits](https://github.com/golang/term/compare/v0.44.0...v0.45.0 )
---
updated-dependencies:
- dependency-name: github.com/prometheus/common
dependency-version: 0.70.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: golang.org/x/crypto
dependency-version: 0.54.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: golang.org/x/sync
dependency-version: 0.22.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: golang.org/x/term
dependency-version: 0.45.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-13 00:31:34 -05:00
Paul Sütterlin
9aeaa0bbb7
feat: implement 1x_identity support
2026-07-12 13:17:12 -05:00
dependabot[bot]
57c6510fb7
build(deps): bump github.com/DataDog/datadog-go/v5 in the all group
...
Bumps the all group with 1 update: [github.com/DataDog/datadog-go/v5](https://github.com/DataDog/datadog-go ).
Updates `github.com/DataDog/datadog-go/v5` from 5.8.3 to 5.9.0
- [Release notes](https://github.com/DataDog/datadog-go/releases )
- [Changelog](https://github.com/DataDog/datadog-go/blob/master/CHANGELOG.md )
- [Commits](https://github.com/DataDog/datadog-go/compare/v5.8.3...v5.9.0 )
---
updated-dependencies:
- dependency-name: github.com/DataDog/datadog-go/v5
dependency-version: 5.9.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-05 22:48:12 -05:00
dependabot[bot]
81be5078e3
build(deps): bump github.com/prometheus/common in the all group ( #1028 )
2026-06-22 05:32:38 -05:00
dependabot[bot]
9fd23b66e7
build(deps): bump the all group with 3 updates
...
Bumps the all group with 3 updates: [golang.org/x/crypto](https://github.com/golang/crypto ), [golang.org/x/sync](https://github.com/golang/sync ) and [golang.org/x/term](https://github.com/golang/term ).
Updates `golang.org/x/crypto` from 0.52.0 to 0.53.0
- [Commits](https://github.com/golang/crypto/compare/v0.52.0...v0.53.0 )
Updates `golang.org/x/sync` from 0.20.0 to 0.21.0
- [Commits](https://github.com/golang/sync/compare/v0.20.0...v0.21.0 )
Updates `golang.org/x/term` from 0.43.0 to 0.44.0
- [Commits](https://github.com/golang/term/compare/v0.43.0...v0.44.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/crypto
dependency-version: 0.53.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: golang.org/x/sync
dependency-version: 0.21.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: golang.org/x/term
dependency-version: 0.44.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-06-14 22:39:04 -05:00
dependabot[bot]
107b47d529
build(deps): bump github.com/prometheus/common in the all group
...
Bumps the all group with 1 update: [github.com/prometheus/common](https://github.com/prometheus/common ).
Updates `github.com/prometheus/common` from 0.68.0 to 0.68.1
- [Release notes](https://github.com/prometheus/common/releases )
- [Changelog](https://github.com/prometheus/common/blob/main/CHANGELOG.md )
- [Commits](https://github.com/prometheus/common/compare/v0.68.0...v0.68.1 )
---
updated-dependencies:
- dependency-name: github.com/prometheus/common
dependency-version: 0.68.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: all
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-06-08 05:36:06 -05:00
dependabot[bot]
b7f61a1c28
build(deps): bump the all group with 7 updates
...
Bumps the all group with 7 updates:
| Package | From | To |
| --- | --- | --- |
| [github.com/prometheus/common](https://github.com/prometheus/common ) | `0.67.5` | `0.68.0` |
| [go.opentelemetry.io/otel](https://github.com/open-telemetry/opentelemetry-go ) | `1.43.0` | `1.44.0` |
| [go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://github.com/open-telemetry/opentelemetry-go ) | `1.43.0` | `1.44.0` |
| [go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp](https://github.com/open-telemetry/opentelemetry-go ) | `1.43.0` | `1.44.0` |
| [go.opentelemetry.io/otel/metric](https://github.com/open-telemetry/opentelemetry-go ) | `1.43.0` | `1.44.0` |
| [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go ) | `1.43.0` | `1.44.0` |
| [go.opentelemetry.io/otel/sdk/metric](https://github.com/open-telemetry/opentelemetry-go ) | `1.43.0` | `1.44.0` |
Updates `github.com/prometheus/common` from 0.67.5 to 0.68.0
- [Release notes](https://github.com/prometheus/common/releases )
- [Changelog](https://github.com/prometheus/common/blob/main/CHANGELOG.md )
- [Commits](https://github.com/prometheus/common/compare/v0.67.5...v0.68.0 )
Updates `go.opentelemetry.io/otel` from 1.43.0 to 1.44.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.43.0...v1.44.0 )
Updates `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` from 1.43.0 to 1.44.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.43.0...v1.44.0 )
Updates `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp` from 1.43.0 to 1.44.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.43.0...v1.44.0 )
Updates `go.opentelemetry.io/otel/metric` from 1.43.0 to 1.44.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.43.0...v1.44.0 )
Updates `go.opentelemetry.io/otel/sdk` from 1.43.0 to 1.44.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.43.0...v1.44.0 )
Updates `go.opentelemetry.io/otel/sdk/metric` from 1.43.0 to 1.44.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.43.0...v1.44.0 )
---
updated-dependencies:
- dependency-name: github.com/prometheus/common
dependency-version: 0.68.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: go.opentelemetry.io/otel
dependency-version: 1.44.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc
dependency-version: 1.44.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp
dependency-version: 1.44.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: go.opentelemetry.io/otel/metric
dependency-version: 1.44.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: go.opentelemetry.io/otel/sdk
dependency-version: 1.44.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: go.opentelemetry.io/otel/sdk/metric
dependency-version: 1.44.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-06-01 04:41:16 +00:00
dependabot[bot]
9c84e12e6d
build(deps): bump golang.org/x/crypto in the all group
...
Bumps the all group with 1 update: [golang.org/x/crypto](https://github.com/golang/crypto ).
Updates `golang.org/x/crypto` from 0.51.0 to 0.52.0
- [Commits](https://github.com/golang/crypto/compare/v0.51.0...v0.52.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/crypto
dependency-version: 0.52.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-05-25 03:02:29 +00:00
dependabot[bot]
85929e8648
build(deps): bump github.com/unpoller/unifi/v5 in the all group
...
Bumps the all group with 1 update: [github.com/unpoller/unifi/v5](https://github.com/unpoller/unifi ).
Updates `github.com/unpoller/unifi/v5` from 5.28.0 to 5.28.1
- [Release notes](https://github.com/unpoller/unifi/releases )
- [Commits](https://github.com/unpoller/unifi/compare/v5.28.0...v5.28.1 )
---
updated-dependencies:
- dependency-name: github.com/unpoller/unifi/v5
dependency-version: 5.28.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: all
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-05-18 03:08:13 +00:00
Cody Lee and Claude Opus 4.7
dabfeffe66
fix(prometheus): serve scrapes from cached background poll ( #1013 )
...
Decouples Prometheus scrape cadence from upstream UniFi API calls so a
429 backoff loop on the controller side no longer stalls /metrics. The
output plugin now owns a 60s background poller (configurable) whose
result is served from an in-memory cache. Concurrent /scrape requests
for the same target are coalesced via singleflight to prevent a noisy
scraper from multiplying upstream load.
Adds two new metrics so operators can detect cache staleness and
refresh failures independently:
- unpoller_prometheus_cache_age_seconds
- unpoller_prometheus_refresh_failures_total
Background goroutine recovers from panics so a malformed input payload
no longer silently kills refreshes.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-11 17:43:44 -05:00
Cody Lee
84a14edb64
chore(deps): upgrade unifi to v5.28.0
...
Picks up the gzip decompression fix for the Site Manager remote API
(unpoller/unifi#220), which restores remote-API discovery for Official
UniFi Cloud Hosted consoles whose responses are gzip-compressed but
served without a Content-Encoding header.
Closes #997
2026-05-09 09:57:52 -05:00
Cody Lee and Claude Opus 4.7
679faceafd
chore(deps): upgrade unifi to v5.27.0 and refresh golang.org/x deps
...
Bumps github.com/unpoller/unifi/v5 from v5.26.0 to v5.27.0 along with
golang.org/x/crypto, term, sys, and text to their latest releases.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-09 09:37:07 -05:00
Cody Lee and Claude Opus 4.7
d2948b8bd0
feat: upgrade unifi to v5.26.0 and add Integration/v1 + new legacy metrics
...
Adds 21 new data types from unifi v5.26.0 across all metric output plugins
(InfluxDB, Prometheus, DataDog). Per-site Integration/v1 calls are gated on
API key configuration and only run for user-configured sites; ErrEndpointNotFound
is handled gracefully so older firmware continues to work without log spam.
Also migrates events collection (collectAlarms, collectAnomalies, collectEvents,
collectIDs, collectProtectLogs) to handle Network 10.x+ endpoint removals via
ErrEndpointNotFound, with debug-level logging to avoid per-poll noise.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-08 16:45:47 -05:00
dependabot[bot]
fff55b1359
build(deps): bump the all group with 2 updates
...
Bumps the all group with 2 updates: [golang.org/x/crypto](https://github.com/golang/crypto ) and [golang.org/x/term](https://github.com/golang/term ).
Updates `golang.org/x/crypto` from 0.49.0 to 0.50.0
- [Commits](https://github.com/golang/crypto/compare/v0.49.0...v0.50.0 )
Updates `golang.org/x/term` from 0.41.0 to 0.42.0
- [Commits](https://github.com/golang/term/compare/v0.41.0...v0.42.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/crypto
dependency-version: 0.50.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: golang.org/x/term
dependency-version: 0.42.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-04-13 02:42:32 +00:00
dependabot[bot]
00311abcb4
build(deps): bump the all group with 6 updates
...
Bumps the all group with 6 updates:
| Package | From | To |
| --- | --- | --- |
| [go.opentelemetry.io/otel](https://github.com/open-telemetry/opentelemetry-go ) | `1.42.0` | `1.43.0` |
| [go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://github.com/open-telemetry/opentelemetry-go ) | `1.42.0` | `1.43.0` |
| [go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp](https://github.com/open-telemetry/opentelemetry-go ) | `1.42.0` | `1.43.0` |
| [go.opentelemetry.io/otel/metric](https://github.com/open-telemetry/opentelemetry-go ) | `1.42.0` | `1.43.0` |
| [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go ) | `1.42.0` | `1.43.0` |
| [go.opentelemetry.io/otel/sdk/metric](https://github.com/open-telemetry/opentelemetry-go ) | `1.42.0` | `1.43.0` |
Updates `go.opentelemetry.io/otel` from 1.42.0 to 1.43.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.42.0...v1.43.0 )
Updates `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` from 1.42.0 to 1.43.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.42.0...v1.43.0 )
Updates `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp` from 1.42.0 to 1.43.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.42.0...v1.43.0 )
Updates `go.opentelemetry.io/otel/metric` from 1.42.0 to 1.43.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.42.0...v1.43.0 )
Updates `go.opentelemetry.io/otel/sdk` from 1.42.0 to 1.43.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.42.0...v1.43.0 )
Updates `go.opentelemetry.io/otel/sdk/metric` from 1.42.0 to 1.43.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.42.0...v1.43.0 )
---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel
dependency-version: 1.43.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc
dependency-version: 1.43.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp
dependency-version: 1.43.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: go.opentelemetry.io/otel/metric
dependency-version: 1.43.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: go.opentelemetry.io/otel/sdk
dependency-version: 1.43.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: go.opentelemetry.io/otel/sdk/metric
dependency-version: 1.43.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-04-06 02:42:51 +00:00
Cody Lee and Claude Sonnet 4.6
18c6e66a8e
feat: add Site Magic site-to-site VPN metrics ( closes #926 ) ( #983 )
...
* feat: add Site Magic site-to-site VPN metrics (closes #926 )
Bump github.com/unpoller/unifi/v5 to v5.25.0 which adds:
- GetMagicSiteToSiteVPN / GetMagicSiteToSiteVPNSite API methods
- MagicSiteToSiteVPN types with mesh, connection, device, and status structs
- Missing VPN health fields on Site.Health (SiteToSiteNumActive/Inactive,
SiteToSiteRxBytes/TxBytes/RxPackets/TxPackets)
Implement VPN metrics collection across all output plugins:
- Collect Site Magic VPN mesh data per-site in inputunifi pollController
- Propagate VPNMeshes through poller.Metrics / AppendMetrics
- Apply DefaultSiteNameOverride for VPN meshes in augmentMetrics /
applySiteNameOverride
- influxunifi: vpn_mesh, vpn_mesh_connection, vpn_mesh_status tables
- promunifi: vpn_mesh_*, vpn_tunnel_*, vpn_mesh_status_* gauges
- datadogunifi: unifi.vpn_mesh.*, unifi.vpn_tunnel.*, unifi.vpn_mesh_status.*
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com >
* feat(otelunifi): add Site Magic VPN metrics to OpenTelemetry output
Adds exportVPNMeshes to the otel output plugin, emitting the same
unifi_vpn_mesh_*, unifi_vpn_tunnel_*, and unifi_vpn_mesh_status_*
gauges as the other output plugins.
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com >
---------
Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com >
2026-03-23 21:08:09 -05:00
Cody Lee and Claude Sonnet 4.6
a81a6e6e16
feat: add port anomaly metrics ( closes #929 ) ( #982 )
...
Collect port anomalies from the UniFi v2 API endpoint
/proxy/network/v2/api/site/{site}/ports/port-anomalies and export
them to all output plugins (Prometheus, InfluxDB, DataDog, OpenTelemetry).
Metrics exported per port:
- port_anomaly_count – number of anomaly events
- port_anomaly_last_seen – unix timestamp of last event
Labels: site_name, source, device_mac, port_idx, anomaly_type
Bumps github.com/unpoller/unifi/v5 to v5.24.0 which adds GetPortAnomalies.
Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com >
2026-03-23 18:56:37 -05:00
Cody Lee and Claude Sonnet 4.6
643c108674
feat: add network topology metrics ( closes #931 ) ( #981 )
...
Bumps github.com/unpoller/unifi/v5 to v5.23.0 which adds
GetTopology() fetching vertices (devices/clients) and edges
(wired/wireless connections) from /proxy/network/v2/api/site/{site}/topology.
Changes across the stack:
- poller.Metrics: add Topologies []any field + AppendMetrics support
- inputunifi: collect topology per-site (non-fatal on older controllers),
pass through augmentMetrics with site name override support
- promunifi: new topology.go with summary, connection-type, link-quality,
and band-distribution gauges
- influxunifi: new topology.go with topology_summary and topology_edge
measurements
- datadogunifi: new topology.go with equivalent Datadog gauges
- otelunifi: new topology.go with OpenTelemetry gauge observations
Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com >
2026-03-23 18:44:51 -05:00
dependabot[bot]
f3d4e21e0e
build(deps): bump google.golang.org/grpc from 1.79.2 to 1.79.3 ( #980 )
...
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go ) from 1.79.2 to 1.79.3.
- [Release notes](https://github.com/grpc/grpc-go/releases )
- [Commits](https://github.com/grpc/grpc-go/compare/v1.79.2...v1.79.3 )
---
updated-dependencies:
- dependency-name: google.golang.org/grpc
dependency-version: 1.79.3
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-23 18:38:57 -05:00
Cody Lee and Claude Sonnet 4.6
6b33b6b97b
feat: firewall policy metrics across all output plugins ( closes #928 ) ( #979 )
...
* feat(promunifi): add firewall policy metrics (closes #928 )
Bump unifi client to v5.22.0 and wire up firewall policy data end-to-end:
- poller.Metrics: add FirewallPolicies []any slice
- inputunifi: collect GetFirewallPolicies() per poll cycle; apply
DefaultSiteNameOverride; augment into poller.Metrics
- promunifi: export per-rule (rule_enabled, rule_index) and per-site
aggregate metrics (rules_total, rules_enabled, rules_disabled,
rules_by_action, rules_predefined, rules_custom, rules_logging_enabled)
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com >
* feat: export firewall policies to influx, datadog, and otel outputs
Extends firewall policy support (PR #979 ) to all remaining output plugins:
- influxunifi: batchFirewallPolicy() writes measurement "firewall_policy"
with tags (rule_name, action, protocol, ip_version, source/dest zone,
site_name, source) and fields (enabled, index, predefined, logging)
- datadogunifi: batchFirewallPolicy() emits the same data as Datadog gauges
under the "firewall_policy.*" namespace
- otelunifi: exportFirewallPolicies() emits per-rule gauges
(unifi_firewall_rule_enabled, unifi_firewall_rule_index) and per-site
aggregates (rules_total, rules_enabled, rules_disabled, rules_by_action,
rules_predefined, rules_custom, rules_logging_enabled)
Also rebases onto master to pick up the otelunifi plugin (PR #978 ).
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com >
---------
Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com >
2026-03-23 18:26:27 -05:00
Cody Lee and Claude Sonnet 4.6
4c34180047
feat(clients): add MIMO spatial stream metrics for WiFi clients ( #977 )
...
* feat(clients): add MIMO spatial stream metrics for WiFi clients
Add tx_nss, rx_nss (spatial stream count) and tx_mcs, rx_mcs (MCS
index) metrics for WiFi clients, sourced from UniFi controller API
fields. These fields are only populated for wireless clients.
- promunifi: adds unifi_client_radio_transmit_spatial_streams,
unifi_client_radio_receive_spatial_streams,
unifi_client_radio_transmit_mcs_index, and
unifi_client_radio_receive_mcs_index gauges
- influxunifi: adds tx_nss, rx_nss, tx_mcs, rx_mcs fields to the
clients measurement
- go.mod: replace directive to use local unifi library with new fields
Closes #535
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com >
* fix: use published unifi commit for MIMO fields instead of local replace
Remove the local path replace directive for github.com/unpoller/unifi/v5
and pin to the published pseudo-version at commit f363f61cdbe3a863db5fb3176ef1c0fc282c5674
which contains the RxMcs, RxNSS, TxMcs, TxNSS MIMO fields.
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com >
---------
Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com >
2026-03-23 17:56:16 -05:00
dependabot[bot]
38c74f19c4
build(deps): bump the all group with 2 updates ( #967 )
...
Bumps the all group with 2 updates: [golang.org/x/crypto](https://github.com/golang/crypto ) and [golang.org/x/term](https://github.com/golang/term ).
Updates `golang.org/x/crypto` from 0.48.0 to 0.49.0
- [Commits](https://github.com/golang/crypto/compare/v0.48.0...v0.49.0 )
Updates `golang.org/x/term` from 0.40.0 to 0.41.0
- [Commits](https://github.com/golang/term/compare/v0.40.0...v0.41.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/crypto
dependency-version: 0.49.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: golang.org/x/term
dependency-version: 0.41.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-22 15:00:32 -05:00
dependabot[bot]
f94d10d223
build(deps): bump the all group with 3 updates ( #960 )
...
Bumps the all group with 3 updates: [golang.org/x/crypto](https://github.com/golang/crypto ), [golang.org/x/term](https://github.com/golang/term ) and [golift.io/cnfg](https://github.com/golift/cnfg ).
Updates `golang.org/x/crypto` from 0.47.0 to 0.48.0
- [Commits](https://github.com/golang/crypto/compare/v0.47.0...v0.48.0 )
Updates `golang.org/x/term` from 0.39.0 to 0.40.0
- [Commits](https://github.com/golang/term/compare/v0.39.0...v0.40.0 )
Updates `golift.io/cnfg` from 0.2.3 to 0.2.5
- [Release notes](https://github.com/golift/cnfg/releases )
- [Commits](https://github.com/golift/cnfg/compare/v0.2.3...v0.2.5 )
---
updated-dependencies:
- dependency-name: golang.org/x/crypto
dependency-version: 0.48.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: golang.org/x/term
dependency-version: 0.40.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: golift.io/cnfg
dependency-version: 0.2.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: all
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-07 14:41:50 -06:00
Brian Gates
074595c0a9
Fix remote API (Fabric/API key): 429 handling, NVR filter, updateWeb nil panic ( #958 )
2026-02-18 06:34:04 -05:00
dependabot[bot]
4bf5c1e6b5
build(deps): bump the all group with 2 updates ( #955 )
...
Bumps the all group with 2 updates: [golang.org/x/crypto](https://github.com/golang/crypto ) and [golang.org/x/term](https://github.com/golang/term ).
Updates `golang.org/x/crypto` from 0.47.0 to 0.48.0
- [Commits](https://github.com/golang/crypto/compare/v0.47.0...v0.48.0 )
Updates `golang.org/x/term` from 0.39.0 to 0.40.0
- [Commits](https://github.com/golang/term/compare/v0.39.0...v0.40.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/crypto
dependency-version: 0.48.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
- dependency-name: golang.org/x/term
dependency-version: 0.40.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-17 18:20:37 -06:00
dependabot[bot]
eae3741120
build(deps): bump the all group with 2 updates ( #950 )
...
Bumps the all group with 2 updates: [github.com/DataDog/datadog-go/v5](https://github.com/DataDog/datadog-go ) and [github.com/unpoller/unifi/v5](https://github.com/unpoller/unifi ).
Updates `github.com/DataDog/datadog-go/v5` from 5.8.2 to 5.8.3
- [Release notes](https://github.com/DataDog/datadog-go/releases )
- [Changelog](https://github.com/DataDog/datadog-go/blob/master/CHANGELOG.md )
- [Commits](https://github.com/DataDog/datadog-go/compare/v5.8.2...v5.8.3 )
Updates `github.com/unpoller/unifi/v5` from 5.17.0 to 5.18.0
- [Release notes](https://github.com/unpoller/unifi/releases )
- [Commits](https://github.com/unpoller/unifi/compare/v5.17.0...v5.18.0 )
---
updated-dependencies:
- dependency-name: github.com/DataDog/datadog-go/v5
dependency-version: 5.8.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: all
- dependency-name: github.com/unpoller/unifi/v5
dependency-version: 5.18.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-09 08:56:37 -06:00
Brian Gates and Cursor
b4fa16b2fd
fix(influxunifi): use CelsiusSafe() for temp fields to fix InfluxDB type conflict ( #944 ) ( #945 )
...
* fix(influxunifi): use CelsiusSafe() for temp fields to fix InfluxDB type conflict
Write temp_* fields as float64 instead of int64 so InfluxDB does not
report 'field type conflict' when the measurement already has float.
Requires github.com/unpoller/unifi/v5 with CelsiusSafe() (unpoller/unifi#195).
Fixes #944 .
Co-authored-by: Cursor <cursoragent@cursor.com >
* deps: unifi v5.17.0; nil guards and 429 retry (unpoller#943)
- Bump github.com/unpoller/unifi/v5 to v5.17.0 (CelsiusSafe, ErrNilUnifi, RateLimitError)
- inputunifi: guard pollController for nil c.Unifi; controllerID(c) in formatSites/Clients/Devices
- inputunifi: getUnifi retry with backoff on 429 (up to 5 attempts, Retry-After or exponential backoff)
Co-authored-by: Cursor <cursoragent@cursor.com >
* test(influxunifi): expect temp_* as float after CelsiusSafe() (fix #944 )
Co-authored-by: Cursor <cursoragent@cursor.com >
---------
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-02-03 20:12:26 -06:00