From d565ee9c325baa7eb02b8c67a5ff6569322e87b7 Mon Sep 17 00:00:00 2001 From: davidnewhall2 Date: Mon, 2 Dec 2019 20:18:55 -0800 Subject: [PATCH] combine more counters, fix cpu/mem graphs, fix udmp type --- pkg/poller/unifi.go | 5 ++++- pkg/promunifi/uap.go | 8 ++++---- pkg/promunifi/udm.go | 19 +++++++------------ pkg/promunifi/usg.go | 16 +++++++--------- pkg/promunifi/usw.go | 8 ++++---- 5 files changed, 26 insertions(+), 30 deletions(-) diff --git a/pkg/poller/unifi.go b/pkg/poller/unifi.go index 73708243..ebd01f79 100644 --- a/pkg/poller/unifi.go +++ b/pkg/poller/unifi.go @@ -101,7 +101,10 @@ func (u *UnifiPoller) AugmentMetrics(metrics *metrics.Metrics) { for _, r := range metrics.USWs { devices[r.Mac] = r.Name } - for _, r := range metrics.UDMs { + for i, r := range metrics.UDMs { + if r.Model == "UDMPRO" { + metrics.UDMs[i].Type = "udmp" + } devices[r.Mac] = r.Name } // These come blank, so set them here. diff --git a/pkg/promunifi/uap.go b/pkg/promunifi/uap.go index 40fe4891..1faf9203 100644 --- a/pkg/promunifi/uap.go +++ b/pkg/promunifi/uap.go @@ -172,16 +172,16 @@ func (u *promUnifi) exportUAP(r report, d *unifi.UAP) { {u.Device.TxBytesD, prometheus.CounterValue, d.TxBytesD, labels}, // not sure if these 3 Ds are counters or gauges. {u.Device.RxBytesD, prometheus.CounterValue, d.RxBytesD, labels}, // not sure if these 3 Ds are counters or gauges. {u.Device.BytesR, prometheus.GaugeValue, d.BytesR, labels}, - {u.Device.NumSta, prometheus.GaugeValue, d.UserNumSta, append(labels, "user")}, - {u.Device.NumSta, prometheus.GaugeValue, d.GuestNumSta, append(labels, "guest")}, + {u.Device.Counter, prometheus.GaugeValue, d.UserNumSta, append(labels, "user")}, + {u.Device.Counter, prometheus.GaugeValue, d.GuestNumSta, append(labels, "guest")}, {u.Device.Loadavg1, prometheus.GaugeValue, d.SysStats.Loadavg1, labels}, {u.Device.Loadavg5, prometheus.GaugeValue, d.SysStats.Loadavg5, labels}, {u.Device.Loadavg15, prometheus.GaugeValue, d.SysStats.Loadavg15, labels}, {u.Device.MemUsed, prometheus.GaugeValue, d.SysStats.MemUsed, labels}, {u.Device.MemTotal, prometheus.GaugeValue, d.SysStats.MemTotal, labels}, {u.Device.MemBuffer, prometheus.GaugeValue, d.SysStats.MemBuffer, labels}, - {u.Device.CPU, prometheus.GaugeValue, d.SystemStats.CPU, labels}, - {u.Device.Mem, prometheus.GaugeValue, d.SystemStats.Mem, labels}, + {u.Device.CPU, prometheus.GaugeValue, d.SystemStats.CPU.Val / 100.0, labels}, + {u.Device.Mem, prometheus.GaugeValue, d.SystemStats.Mem.Val / 100.0, labels}, }) u.exportUAPstats(r, labels, d.Stat.Ap) diff --git a/pkg/promunifi/udm.go b/pkg/promunifi/udm.go index 83202df1..d1fdb761 100644 --- a/pkg/promunifi/udm.go +++ b/pkg/promunifi/udm.go @@ -19,7 +19,7 @@ type unifiDevice struct { Bytes *prometheus.Desc // ap only TxBytesD *prometheus.Desc // ap only RxBytesD *prometheus.Desc // ap only - NumSta *prometheus.Desc + Counter *prometheus.Desc NumDesktop *prometheus.Desc // gw only NumMobile *prometheus.Desc // gw only NumHandheld *prometheus.Desc // gw only @@ -49,10 +49,7 @@ func descDevice(ns string) *unifiDevice { Bytes: prometheus.NewDesc(ns+"transferred_bytes_total", "Bytes Transferred", labels, nil), TxBytesD: prometheus.NewDesc(ns+"d_tranmsit_bytes", "Transmit Bytes D???", labels, nil), RxBytesD: prometheus.NewDesc(ns+"d_receive_bytes", "Receive Bytes D???", labels, nil), - NumSta: prometheus.NewDesc(ns+"stations", "Number of Stations", append(labels, "station_type"), nil), - NumDesktop: prometheus.NewDesc(ns+"desktops", "Number of Desktops", labels, nil), - NumMobile: prometheus.NewDesc(ns+"mobile", "Number of Mobiles", labels, nil), - NumHandheld: prometheus.NewDesc(ns+"handheld", "Number of Handhelds", labels, nil), + Counter: prometheus.NewDesc(ns+"stations", "Number of Stations", append(labels, "station_type"), nil), Loadavg1: prometheus.NewDesc(ns+"load_average_1", "System Load Average 1 Minute", labels, nil), Loadavg5: prometheus.NewDesc(ns+"load_average_5", "System Load Average 5 Minutes", labels, nil), Loadavg15: prometheus.NewDesc(ns+"load_average_15", "System Load Average 15 Minutes", labels, nil), @@ -68,19 +65,17 @@ func descDevice(ns string) *unifiDevice { func (u *promUnifi) exportUDM(r report, d *unifi.UDM) { labels := []string{d.Type, d.SiteName, d.Name} infoLabels := []string{d.Version, d.Model, d.Serial, d.Mac, d.IP, d.ID, d.Bytes.Txt} - labelsGuest := append(labels, "guest") - labelsUser := append(labels, "user") // Dream Machine System Data. r.send([]*metric{ {u.Device.Info, prometheus.GaugeValue, d.Uptime, append(labels, infoLabels...)}, {u.Device.TotalTxBytes, prometheus.CounterValue, d.TxBytes, labels}, {u.Device.TotalRxBytes, prometheus.CounterValue, d.RxBytes, labels}, {u.Device.TotalBytes, prometheus.CounterValue, d.Bytes, labels}, - {u.Device.NumSta, prometheus.GaugeValue, d.UserNumSta, labelsUser}, - {u.Device.NumSta, prometheus.GaugeValue, d.GuestNumSta, labelsGuest}, - {u.Device.NumDesktop, prometheus.GaugeValue, d.NumDesktop, labels}, - {u.Device.NumMobile, prometheus.GaugeValue, d.NumMobile, labels}, - {u.Device.NumHandheld, prometheus.GaugeValue, d.NumHandheld, labels}, + {u.Device.Counter, prometheus.GaugeValue, d.UserNumSta, append(labels, "user")}, + {u.Device.Counter, prometheus.GaugeValue, d.GuestNumSta, append(labels, "guest")}, + {u.Device.Counter, prometheus.GaugeValue, d.NumDesktop, append(labels, "desktop")}, + {u.Device.Counter, prometheus.GaugeValue, d.NumMobile, append(labels, "mobile")}, + {u.Device.Counter, prometheus.GaugeValue, d.NumHandheld, append(labels, "handheld")}, {u.Device.Loadavg1, prometheus.GaugeValue, d.SysStats.Loadavg1, labels}, {u.Device.Loadavg5, prometheus.GaugeValue, d.SysStats.Loadavg5, labels}, {u.Device.Loadavg15, prometheus.GaugeValue, d.SysStats.Loadavg15, labels}, diff --git a/pkg/promunifi/usg.go b/pkg/promunifi/usg.go index 08282f37..2682e94a 100644 --- a/pkg/promunifi/usg.go +++ b/pkg/promunifi/usg.go @@ -71,27 +71,25 @@ func descUSG(ns string) *usg { func (u *promUnifi) exportUSG(r report, d *unifi.USG) { labels := []string{d.Type, d.SiteName, d.Name} infoLabels := []string{d.Version, d.Model, d.Serial, d.Mac, d.IP, d.ID, d.Bytes.Txt} - labelsUser := append(labels, "user") - labelsGuest := append(labels, "guest") // Gateway System Data. r.send([]*metric{ {u.Device.Info, prometheus.GaugeValue, d.Uptime, append(labels, infoLabels...)}, {u.Device.TotalTxBytes, prometheus.CounterValue, d.TxBytes, labels}, {u.Device.TotalRxBytes, prometheus.CounterValue, d.RxBytes, labels}, {u.Device.TotalBytes, prometheus.CounterValue, d.Bytes, labels}, - {u.Device.NumSta, prometheus.GaugeValue, d.UserNumSta, labelsUser}, - {u.Device.NumSta, prometheus.GaugeValue, d.GuestNumSta, labelsGuest}, - {u.Device.NumDesktop, prometheus.GaugeValue, d.NumDesktop, labels}, - {u.Device.NumMobile, prometheus.GaugeValue, d.NumMobile, labels}, - {u.Device.NumHandheld, prometheus.GaugeValue, d.NumHandheld, labels}, + {u.Device.Counter, prometheus.GaugeValue, d.UserNumSta, append(labels, "user")}, + {u.Device.Counter, prometheus.GaugeValue, d.GuestNumSta, append(labels, "guest")}, + {u.Device.Counter, prometheus.GaugeValue, d.NumDesktop, append(labels, "desktop")}, + {u.Device.Counter, prometheus.GaugeValue, d.NumMobile, append(labels, "mobile")}, + {u.Device.Counter, prometheus.GaugeValue, d.NumHandheld, append(labels, "handheld")}, {u.Device.Loadavg1, prometheus.GaugeValue, d.SysStats.Loadavg1, labels}, {u.Device.Loadavg5, prometheus.GaugeValue, d.SysStats.Loadavg5, labels}, {u.Device.Loadavg15, prometheus.GaugeValue, d.SysStats.Loadavg15, labels}, {u.Device.MemUsed, prometheus.GaugeValue, d.SysStats.MemUsed, labels}, {u.Device.MemTotal, prometheus.GaugeValue, d.SysStats.MemTotal, labels}, {u.Device.MemBuffer, prometheus.GaugeValue, d.SysStats.MemBuffer, labels}, - {u.Device.CPU, prometheus.GaugeValue, d.SystemStats.CPU, labels}, - {u.Device.Mem, prometheus.GaugeValue, d.SystemStats.Mem, labels}, + {u.Device.CPU, prometheus.GaugeValue, d.SystemStats.CPU.Val / 100.0, labels}, + {u.Device.Mem, prometheus.GaugeValue, d.SystemStats.Mem.Val / 100.0, labels}, }) u.exportWANPorts(r, labels, d.Wan1, d.Wan2) u.exportUSGstats(r, labels, d.Stat.Gw, d.SpeedtestStatus, d.Uplink) diff --git a/pkg/promunifi/usw.go b/pkg/promunifi/usw.go index c8d32581..cd5508c0 100644 --- a/pkg/promunifi/usw.go +++ b/pkg/promunifi/usw.go @@ -108,16 +108,16 @@ func (u *promUnifi) exportUSW(r report, d *unifi.USW) { {u.Device.TotalTxBytes, prometheus.CounterValue, d.TxBytes, labels}, {u.Device.TotalRxBytes, prometheus.CounterValue, d.RxBytes, labels}, {u.Device.TotalBytes, prometheus.CounterValue, d.Bytes, labels}, - {u.Device.NumSta, prometheus.GaugeValue, d.UserNumSta, labelsUser}, - {u.Device.NumSta, prometheus.GaugeValue, d.GuestNumSta, labelsGuest}, + {u.Device.Counter, prometheus.GaugeValue, d.UserNumSta, labelsUser}, + {u.Device.Counter, prometheus.GaugeValue, d.GuestNumSta, labelsGuest}, {u.Device.Loadavg1, prometheus.GaugeValue, d.SysStats.Loadavg1, labels}, {u.Device.Loadavg5, prometheus.GaugeValue, d.SysStats.Loadavg5, labels}, {u.Device.Loadavg15, prometheus.GaugeValue, d.SysStats.Loadavg15, labels}, {u.Device.MemUsed, prometheus.GaugeValue, d.SysStats.MemUsed, labels}, {u.Device.MemTotal, prometheus.GaugeValue, d.SysStats.MemTotal, labels}, {u.Device.MemBuffer, prometheus.GaugeValue, d.SysStats.MemBuffer, labels}, - {u.Device.CPU, prometheus.GaugeValue, d.SystemStats.CPU, labels}, - {u.Device.Mem, prometheus.GaugeValue, d.SystemStats.Mem, labels}, + {u.Device.CPU, prometheus.GaugeValue, d.SystemStats.CPU.Val / 100.0, labels}, + {u.Device.Mem, prometheus.GaugeValue, d.SystemStats.Mem.Val / 100.0, labels}, }) u.exportPortTable(r, labels, d.PortTable) u.exportUSWstats(r, labels, d.Stat.Sw)