combine more counters, fix cpu/mem graphs, fix udmp type

This commit is contained in:
davidnewhall2 2019-12-02 20:18:55 -08:00
parent 09dbed72f8
commit d565ee9c32
5 changed files with 26 additions and 30 deletions

View File

@ -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.

View File

@ -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)

View File

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

View File

@ -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)

View File

@ -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)