Merge pull request #788 from unpoller/add-device-uplink-stats

adds device uplink stats for issue #585
This commit is contained in:
Cody Lee 2025-01-02 13:01:12 -06:00 committed by GitHub
commit 3007815633
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 67 additions and 29 deletions

View File

@ -366,6 +366,12 @@ gauges:
- unifi.ubb.uptime
- unifi.ubb.mem
- unifi.ubb.network
- unifi.ubb.uplink_speed
- unifi.ubb.uplink_latency
- unifi.ubb.uplink_max_speed
- unifi.ubb.uplink_uptime
- unifi.usg.uplink_max_speed
- unifi.usg.uplink_uptime
counts:
- unifi.collector.num_devices
- unifi.collector.num_errors

View File

@ -45,13 +45,17 @@ func (u *DatadogUnifi) batchUBB(r report, s *unifi.UBB) { // nolint: funlen
data := CombineFloat64(
u.batchSysStats(sysStats, systemStats),
map[string]float64{
"bytes": s.Bytes.Val,
"last_seen": s.LastSeen.Val,
"rx_bytes": s.RxBytes.Val,
"tx_bytes": s.TxBytes.Val,
"uptime": s.Uptime.Val,
"state": s.State.Val,
"user_num_sta": s.UserNumSta.Val,
"bytes": s.Bytes.Val,
"last_seen": s.LastSeen.Val,
"rx_bytes": s.RxBytes.Val,
"tx_bytes": s.TxBytes.Val,
"uptime": s.Uptime.Val,
"state": s.State.Val,
"user_num_sta": s.UserNumSta.Val,
"uplink_speed": s.Uplink.Speed.Val,
"uplink_max_speed": s.Uplink.MaxSpeed.Val,
"uplink_latency": s.Uplink.Latency.Val,
"uplink_uptime": s.Uplink.Uptime.Val,
},
)

View File

@ -64,6 +64,8 @@ func (u *DatadogUnifi) batchUSGstats(ss unifi.SpeedtestStatus, gw *unifi.Gw, ul
return map[string]float64{
"uplink_latency": ul.Latency.Val,
"uplink_speed": ul.Speed.Val,
"uplink_max_speed": ul.MaxSpeed.Val,
"uplink_uptime": ul.Uptime.Val,
"speedtest_status_latency": ss.Latency.Val,
"speedtest_status_runtime": ss.Runtime.Val,
"speedtest_status_rundate": ss.Rundate.Val,

View File

@ -40,6 +40,10 @@ func (u *DatadogUnifi) batchUSW(r report, s *unifi.USW) {
"state": s.State.Val,
"user_num_sta": s.UserNumSta.Val,
"upgradeable": boolToFloat64(s.Upgradeable.Val),
"uplink_speed": s.Uplink.Speed.Val,
"uplink_max_speed": s.Uplink.MaxSpeed.Val,
"uplink_latency": s.Uplink.Latency.Val,
"uplink_uptime": s.Uplink.Uptime.Val,
})
r.addCount(uswT)

View File

@ -43,17 +43,21 @@ func (u *DatadogUnifi) batchUXG(r report, s *unifi.UXG) { // nolint: funlen
u.batchUSGstats(s.SpeedtestStatus, gw, s.Uplink),
u.batchSysStats(s.SysStats, s.SystemStats),
map[string]float64{
"bytes": s.Bytes.Val,
"last_seen": s.LastSeen.Val,
"guest_num_sta": s.GuestNumSta.Val,
"rx_bytes": s.RxBytes.Val,
"tx_bytes": s.TxBytes.Val,
"uptime": s.Uptime.Val,
"state": s.State.Val,
"user_num_sta": s.UserNumSta.Val,
"num_desktop": s.NumDesktop.Val,
"num_handheld": s.NumHandheld.Val,
"num_mobile": s.NumMobile.Val,
"bytes": s.Bytes.Val,
"last_seen": s.LastSeen.Val,
"guest_num_sta": s.GuestNumSta.Val,
"rx_bytes": s.RxBytes.Val,
"tx_bytes": s.TxBytes.Val,
"uptime": s.Uptime.Val,
"state": s.State.Val,
"user_num_sta": s.UserNumSta.Val,
"num_desktop": s.NumDesktop.Val,
"num_handheld": s.NumHandheld.Val,
"num_mobile": s.NumMobile.Val,
"uplink_speed": s.Uplink.Speed.Val,
"uplink_max_speed": s.Uplink.MaxSpeed.Val,
"uplink_latency": s.Uplink.Latency.Val,
"uplink_uptime": s.Uplink.Uptime.Val,
},
)

View File

@ -615,9 +615,11 @@ points:
tx_bytes: float
upgradeable: bool
uplink_latency: float
uplink_max_speed: float
uplink_name: string
uplink_speed: float
uplink_type: string
uplink_uptime: float
uptime: float
user-num_sta: float
version: string

View File

@ -43,17 +43,21 @@ func (u *InfluxUnifi) batchUBB(r report, s *unifi.UBB) { // nolint: funlen
fields := Combine(
u.batchSysStats(sysStats, systemStats),
map[string]any{
"source": s.SourceName,
"ip": s.IP,
"bytes": s.Bytes.Val,
"last_seen": s.LastSeen.Val,
"license_state": s.LicenseState,
"rx_bytes": s.RxBytes.Val,
"tx_bytes": s.TxBytes.Val,
"uptime": s.Uptime.Val,
"state": s.State.Val,
"user-num_sta": s.UserNumSta.Val,
"version": s.Version,
"source": s.SourceName,
"ip": s.IP,
"bytes": s.Bytes.Val,
"last_seen": s.LastSeen.Val,
"license_state": s.LicenseState,
"rx_bytes": s.RxBytes.Val,
"tx_bytes": s.TxBytes.Val,
"uptime": s.Uptime.Val,
"state": s.State.Val,
"user-num_sta": s.UserNumSta.Val,
"version": s.Version,
"uplink_speed": s.Uplink.Speed.Val,
"uplink_max_speed": s.Uplink.MaxSpeed.Val,
"uplink_latency": s.Uplink.Latency.Val,
"uplink_uptime": s.Uplink.Uptime.Val,
},
)

View File

@ -63,6 +63,8 @@ func (u *InfluxUnifi) batchUSGstats(ss unifi.SpeedtestStatus, gw *unifi.Gw, ul u
"uplink_name": ul.Name,
"uplink_latency": ul.Latency.Val,
"uplink_speed": ul.Speed.Val,
"uplink_max_speed": ul.MaxSpeed.Val,
"uplink_uptime": ul.Uptime.Val,
"uplink_type": ul.Type,
"speedtest-status_latency": ss.Latency.Val,
"speedtest-status_runtime": ss.Runtime.Val,

View File

@ -40,6 +40,10 @@ func (u *InfluxUnifi) batchUSW(r report, s *unifi.USW) {
"state": s.State.Val,
"user-num_sta": s.UserNumSta.Val,
"upgradeable": s.Upgradable.Val,
"uplink_speed": s.Uplink.Speed.Val,
"uplink_max_speed": s.Uplink.MaxSpeed.Val,
"uplink_latency": s.Uplink.Latency.Val,
"uplink_uptime": s.Uplink.Uptime.Val,
})
r.addCount(uswT)

View File

@ -32,6 +32,8 @@ type usg struct {
Latency *prometheus.Desc
UplinkLatency *prometheus.Desc
UplinkSpeed *prometheus.Desc
UplinkMaxSpeed *prometheus.Desc
UplinkUptime *prometheus.Desc
Runtime *prometheus.Desc
Rundate *prometheus.Desc
XputDownload *prometheus.Desc
@ -65,6 +67,8 @@ func descUSG(ns string) *usg {
LanTxBytes: prometheus.NewDesc(ns+"lan_transmit_bytes_total", "LAN Transmit Bytes Total", labels, nil),
UplinkLatency: prometheus.NewDesc(ns+"uplink_latency_seconds", "Uplink Latency", labels, nil),
UplinkSpeed: prometheus.NewDesc(ns+"uplink_speed_mbps", "Uplink Speed", labels, nil),
UplinkMaxSpeed: prometheus.NewDesc(ns+"uplink_max_speed_mbps", "Uplink Max Speed", labels, nil),
UplinkUptime: prometheus.NewDesc(ns+"uplink_uptime_seconds", "Uplink Uptime", labels, nil),
Latency: prometheus.NewDesc(ns+"speedtest_latency_seconds", "Speedtest Latency", labels, nil),
Runtime: prometheus.NewDesc(ns+"speedtest_runtime_seconds", "Speedtest Run Time", labels, nil),
Rundate: prometheus.NewDesc(ns+"speedtest_rundate_seconds", "Speedtest Run Date", labels, nil),
@ -132,6 +136,8 @@ func (u *promUnifi) exportUSGstats(r report, labels []string, gw *unifi.Gw, st u
{u.USG.LanRxDropped, counter, gw.LanRxDropped, labelLan},
{u.USG.UplinkLatency, gauge, ul.Latency.Val / 1000, labelWan},
{u.USG.UplinkSpeed, gauge, ul.Speed, labelWan},
{u.USG.UplinkMaxSpeed, gauge, ul.MaxSpeed, labelWan},
{u.USG.UplinkUptime, gauge, ul.Uptime, labelWan},
// Speed Test Stats
{u.USG.Latency, gauge, st.Latency.Val / 1000, labelWan},
{u.USG.Runtime, gauge, st.Runtime, labelWan},