adds device uplink stats for issue #585

This commit is contained in:
Cody Lee 2025-01-02 12:41:34 -06:00
parent 7a4ba7e4a2
commit 4da299ff46
No known key found for this signature in database
8 changed files with 59 additions and 29 deletions

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

@ -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},