diff --git a/pkg/datadogunifi/uxg.go b/pkg/datadogunifi/uxg.go index c79f5e05..fab41d3f 100644 --- a/pkg/datadogunifi/uxg.go +++ b/pkg/datadogunifi/uxg.go @@ -26,10 +26,14 @@ func (u *DatadogUnifi) batchUXG(r report, s *unifi.UXG) { // nolint: funlen "ip": s.IP, "license_state": s.LicenseState, }) + var gw *unifi.Gw = nil + if s.Stat != nil { + gw = s.Stat.Gw + } data := CombineFloat64( u.batchUDMstorage(s.Storage), u.batchUDMtemps(s.Temperatures), - u.batchUSGstats(s.SpeedtestStatus, s.Stat.Gw, s.Uplink), + u.batchUSGstats(s.SpeedtestStatus, gw, s.Uplink), u.batchSysStats(s.SysStats, s.SystemStats), map[string]float64{ "bytes": s.Bytes.Val, diff --git a/pkg/influxunifi/uxg.go b/pkg/influxunifi/uxg.go index a0aaf94d..894747ce 100644 --- a/pkg/influxunifi/uxg.go +++ b/pkg/influxunifi/uxg.go @@ -24,10 +24,14 @@ func (u *InfluxUnifi) batchUXG(r report, s *unifi.UXG) { // nolint: funlen "serial": s.Serial, "type": s.Type, } + var gw *unifi.Gw = nil + if s.Stat != nil { + gw = s.Stat.Gw + } fields := Combine( u.batchUDMstorage(s.Storage), u.batchUDMtemps(s.Temperatures), - u.batchUSGstats(s.SpeedtestStatus, s.Stat.Gw, s.Uplink), + u.batchUSGstats(s.SpeedtestStatus, gw, s.Uplink), u.batchSysStats(s.SysStats, s.SystemStats), map[string]any{ "source": s.SourceName, diff --git a/pkg/promunifi/uxg.go b/pkg/promunifi/uxg.go index 904cd2d4..d5a9b576 100644 --- a/pkg/promunifi/uxg.go +++ b/pkg/promunifi/uxg.go @@ -9,6 +9,14 @@ func (u *promUnifi) exportUXG(r report, d *unifi.UXG) { if !d.Adopted.Val || d.Locating.Val { return } + var gw *unifi.Gw = nil + if d.Stat != nil { + gw = d.Stat.Gw + } + var sw *unifi.Sw = nil + if d.Stat != nil { + sw = d.Stat.Sw + } labels := []string{d.Type, d.SiteName, d.Name, d.SourceName} infoLabels := []string{d.Version, d.Model, d.Serial, d.Mac, d.IP, d.ID} @@ -17,11 +25,11 @@ func (u *promUnifi) exportUXG(r report, d *unifi.UXG) { u.exportSYSstats(r, labels, d.SysStats, d.SystemStats) u.exportSTAcount(r, labels, d.UserNumSta, d.GuestNumSta, d.NumDesktop, d.NumMobile, d.NumHandheld) // Switch Data - u.exportUSWstats(r, labels, d.Stat.Sw) + u.exportUSWstats(r, labels, sw) u.exportPRTtable(r, labels, d.PortTable) // Gateway Data u.exportWANPorts(r, labels, d.Wan1, d.Wan2) - u.exportUSGstats(r, labels, d.Stat.Gw, d.SpeedtestStatus, d.Uplink) + u.exportUSGstats(r, labels, gw, d.SpeedtestStatus, d.Uplink) // Dream Machine System Data. r.send([]*metric{ {u.Device.Info, gauge, 1.0, append(labels, infoLabels...)},