cleanup
This commit is contained in:
parent
61b43f2696
commit
70aae28723
|
|
@ -38,6 +38,7 @@ type UnifiCollectorCnfg struct {
|
|||
type unifiCollector struct {
|
||||
Config UnifiCollectorCnfg
|
||||
Client *uclient
|
||||
Device *unifiDevice
|
||||
UAP *uap
|
||||
USG *usg
|
||||
USW *usw
|
||||
|
|
@ -70,14 +71,17 @@ func NewUnifiCollector(opts UnifiCollectorCnfg) prometheus.Collector {
|
|||
if opts.CollectFn == nil {
|
||||
panic("nil collector function")
|
||||
}
|
||||
|
||||
if opts.Namespace += "_"; opts.Namespace == "_" {
|
||||
opts.Namespace = ""
|
||||
}
|
||||
return &unifiCollector{
|
||||
Config: opts,
|
||||
Client: descClient(opts.Namespace),
|
||||
UAP: descUAP(opts.Namespace),
|
||||
USG: descUSG(opts.Namespace),
|
||||
USW: descUSW(opts.Namespace),
|
||||
Site: descSite(opts.Namespace),
|
||||
Client: descClient(opts.Namespace + "client_"),
|
||||
Device: descDevice(opts.Namespace + "device_"), // stats for all device types.
|
||||
UAP: descUAP(opts.Namespace + "device_"),
|
||||
USG: descUSG(opts.Namespace + "device_"),
|
||||
USW: descUSW(opts.Namespace + "device_"),
|
||||
Site: descSite(opts.Namespace + "site_"),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -97,6 +101,7 @@ func (u *unifiCollector) Describe(ch chan<- *prometheus.Desc) {
|
|||
}
|
||||
|
||||
describe(u.Client)
|
||||
describe(u.Device)
|
||||
describe(u.UAP)
|
||||
describe(u.USG)
|
||||
describe(u.USW)
|
||||
|
|
|
|||
|
|
@ -5,16 +5,6 @@ import (
|
|||
"golift.io/unifi"
|
||||
)
|
||||
|
||||
// Each site has five subsystems.
|
||||
// Some of them share data, but generally each one has its own data set.
|
||||
const (
|
||||
subsystemLAN = "lan"
|
||||
subsystemVPN = "vpn"
|
||||
subsystemWWW = "www"
|
||||
subsystemWLAN = "wlan"
|
||||
subsystemWAN = "wan"
|
||||
)
|
||||
|
||||
type site struct {
|
||||
NumUser *prometheus.Desc
|
||||
NumGuest *prometheus.Desc
|
||||
|
|
@ -44,11 +34,7 @@ type site struct {
|
|||
}
|
||||
|
||||
func descSite(ns string) *site {
|
||||
if ns += "_site_"; ns == "_site_" {
|
||||
ns = "site_"
|
||||
}
|
||||
labels := []string{"subsystem", "status", "name", "desc", "site_name"}
|
||||
|
||||
return &site{
|
||||
NumUser: prometheus.NewDesc(ns+"users", "Number of Users", labels, nil),
|
||||
NumGuest: prometheus.NewDesc(ns+"guests", "Number of Guests", labels, nil),
|
||||
|
|
@ -95,13 +81,58 @@ func (u *unifiCollector) exportSite(r *Report, s *unifi.Site) {
|
|||
labels := []string{s.Name, s.Desc, s.SiteName}
|
||||
for _, h := range s.Health {
|
||||
l := append([]string{h.Subsystem, h.Status}, labels...)
|
||||
|
||||
if h.Subsystem != subsystemVPN {
|
||||
switch h.Subsystem {
|
||||
case "www":
|
||||
r.send([]*metricExports{
|
||||
{u.Site.TxBytesR, prometheus.GaugeValue, h.TxBytesR, l},
|
||||
{u.Site.RxBytesR, prometheus.GaugeValue, h.RxBytesR, l},
|
||||
{u.Site.Uptime, prometheus.GaugeValue, h.Latency, l},
|
||||
{u.Site.Latency, prometheus.GaugeValue, h.Latency.Val / 1000, l},
|
||||
{u.Site.XputUp, prometheus.GaugeValue, h.XputUp, l},
|
||||
{u.Site.XputDown, prometheus.GaugeValue, h.XputDown, l},
|
||||
{u.Site.SpeedtestPing, prometheus.GaugeValue, h.SpeedtestPing, l},
|
||||
{u.Site.Drops, prometheus.CounterValue, h.Drops, l},
|
||||
})
|
||||
} else {
|
||||
|
||||
case "wlan":
|
||||
r.send([]*metricExports{
|
||||
{u.Site.TxBytesR, prometheus.GaugeValue, h.TxBytesR, l},
|
||||
{u.Site.RxBytesR, prometheus.GaugeValue, h.RxBytesR, l},
|
||||
{u.Site.NumAdopted, prometheus.GaugeValue, h.NumAdopted, l},
|
||||
{u.Site.NumDisconnected, prometheus.GaugeValue, h.NumDisconnected, l},
|
||||
{u.Site.NumPending, prometheus.GaugeValue, h.NumPending, l},
|
||||
{u.Site.NumUser, prometheus.GaugeValue, h.NumUser, l},
|
||||
{u.Site.NumGuest, prometheus.GaugeValue, h.NumGuest, l},
|
||||
{u.Site.NumIot, prometheus.GaugeValue, h.NumIot, l},
|
||||
{u.Site.NumAp, prometheus.GaugeValue, h.NumAp, l},
|
||||
{u.Site.NumDisabled, prometheus.GaugeValue, h.NumDisabled, l},
|
||||
})
|
||||
|
||||
case "wan":
|
||||
r.send([]*metricExports{
|
||||
{u.Site.TxBytesR, prometheus.GaugeValue, h.TxBytesR, l},
|
||||
{u.Site.RxBytesR, prometheus.GaugeValue, h.RxBytesR, l},
|
||||
{u.Site.NumAdopted, prometheus.GaugeValue, h.NumAdopted, l},
|
||||
{u.Site.NumDisconnected, prometheus.GaugeValue, h.NumDisconnected, l},
|
||||
{u.Site.NumPending, prometheus.GaugeValue, h.NumPending, l},
|
||||
{u.Site.NumGw, prometheus.GaugeValue, h.NumGw, l},
|
||||
{u.Site.NumSta, prometheus.GaugeValue, h.NumSta, l},
|
||||
})
|
||||
|
||||
case "lan":
|
||||
r.send([]*metricExports{
|
||||
{u.Site.TxBytesR, prometheus.GaugeValue, h.TxBytesR, l},
|
||||
{u.Site.RxBytesR, prometheus.GaugeValue, h.RxBytesR, l},
|
||||
{u.Site.NumAdopted, prometheus.GaugeValue, h.NumAdopted, l},
|
||||
{u.Site.NumDisconnected, prometheus.GaugeValue, h.NumDisconnected, l},
|
||||
{u.Site.NumPending, prometheus.GaugeValue, h.NumPending, l},
|
||||
{u.Site.NumUser, prometheus.GaugeValue, h.NumUser, l},
|
||||
{u.Site.NumGuest, prometheus.GaugeValue, h.NumGuest, l},
|
||||
{u.Site.NumIot, prometheus.GaugeValue, h.NumIot, l},
|
||||
{u.Site.NumSw, prometheus.GaugeValue, h.NumSw, l},
|
||||
})
|
||||
|
||||
case "vpn":
|
||||
r.send([]*metricExports{
|
||||
{u.Site.RemoteUserNumActive, prometheus.GaugeValue, h.RemoteUserNumActive, l},
|
||||
{u.Site.RemoteUserNumInactive, prometheus.GaugeValue, h.RemoteUserNumInactive, l},
|
||||
|
|
@ -111,52 +142,5 @@ func (u *unifiCollector) exportSite(r *Report, s *unifi.Site) {
|
|||
{u.Site.RemoteUserTxPackets, prometheus.CounterValue, h.RemoteUserTxPackets, l},
|
||||
})
|
||||
}
|
||||
|
||||
if h.Subsystem == subsystemWWW {
|
||||
r.send([]*metricExports{
|
||||
{u.Site.Uptime, prometheus.GaugeValue, h.Latency, l},
|
||||
{u.Site.Latency, prometheus.GaugeValue, h.Latency.Val / 1000, l},
|
||||
{u.Site.XputUp, prometheus.GaugeValue, h.XputUp, l},
|
||||
{u.Site.XputDown, prometheus.GaugeValue, h.XputDown, l},
|
||||
{u.Site.SpeedtestPing, prometheus.GaugeValue, h.SpeedtestPing, l},
|
||||
{u.Site.Drops, prometheus.CounterValue, h.Drops, l},
|
||||
})
|
||||
}
|
||||
|
||||
if h.Subsystem == subsystemLAN || h.Subsystem == subsystemWLAN || h.Subsystem == subsystemWAN {
|
||||
r.send([]*metricExports{
|
||||
{u.Site.NumAdopted, prometheus.GaugeValue, h.NumAdopted, l},
|
||||
{u.Site.NumDisconnected, prometheus.GaugeValue, h.NumDisconnected, l},
|
||||
{u.Site.NumPending, prometheus.GaugeValue, h.NumPending, l},
|
||||
})
|
||||
|
||||
if h.Subsystem == subsystemLAN || h.Subsystem == subsystemWLAN {
|
||||
r.send([]*metricExports{
|
||||
{u.Site.NumUser, prometheus.GaugeValue, h.NumUser, l},
|
||||
{u.Site.NumGuest, prometheus.GaugeValue, h.NumGuest, l},
|
||||
{u.Site.NumIot, prometheus.GaugeValue, h.NumIot, l},
|
||||
})
|
||||
}
|
||||
|
||||
if h.Subsystem == subsystemWLAN {
|
||||
r.send([]*metricExports{
|
||||
{u.Site.NumAp, prometheus.GaugeValue, h.NumAp, l},
|
||||
{u.Site.NumDisabled, prometheus.GaugeValue, h.NumDisabled, l},
|
||||
})
|
||||
}
|
||||
|
||||
if h.Subsystem == subsystemWAN {
|
||||
r.send([]*metricExports{
|
||||
{u.Site.NumGw, prometheus.GaugeValue, h.NumGw, l},
|
||||
{u.Site.NumSta, prometheus.GaugeValue, h.NumSta, l},
|
||||
})
|
||||
}
|
||||
|
||||
if h.Subsystem == subsystemLAN {
|
||||
r.send([]*metricExports{
|
||||
{u.Site.NumSw, prometheus.GaugeValue, h.NumSw, l},
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,27 +6,6 @@ import (
|
|||
)
|
||||
|
||||
type uap struct {
|
||||
Uptime *prometheus.Desc
|
||||
TotalTxBytes *prometheus.Desc
|
||||
TotalRxBytes *prometheus.Desc
|
||||
TotalBytes *prometheus.Desc
|
||||
BytesD *prometheus.Desc
|
||||
TxBytesD *prometheus.Desc
|
||||
RxBytesD *prometheus.Desc
|
||||
BytesR *prometheus.Desc
|
||||
NumSta *prometheus.Desc
|
||||
UserNumSta *prometheus.Desc
|
||||
GuestNumSta *prometheus.Desc
|
||||
// System Stats
|
||||
Loadavg1 *prometheus.Desc
|
||||
Loadavg5 *prometheus.Desc
|
||||
Loadavg15 *prometheus.Desc
|
||||
MemBuffer *prometheus.Desc
|
||||
MemTotal *prometheus.Desc
|
||||
MemUsed *prometheus.Desc
|
||||
CPU *prometheus.Desc
|
||||
Mem *prometheus.Desc
|
||||
ApBytes *prometheus.Desc
|
||||
// Ap Traffic Stats
|
||||
ApWifiTxDropped *prometheus.Desc
|
||||
ApRxErrors *prometheus.Desc
|
||||
|
|
@ -104,36 +83,11 @@ type uap struct {
|
|||
}
|
||||
|
||||
func descUAP(ns string) *uap {
|
||||
if ns += "_uap_"; ns == "_uap_" {
|
||||
ns = "uap_"
|
||||
}
|
||||
labels := []string{"ip", "site_name", "mac", "model", "name", "serial", "type", "version"}
|
||||
labelA := append([]string{"stat"}, labels[2:]...)
|
||||
labelV := append([]string{"vap_name", "bssid", "radio_name", "essid", "usage"}, labels[2:]...)
|
||||
labelR := append([]string{"radio_name", "radio"}, labels[2:]...)
|
||||
|
||||
return &uap{
|
||||
Uptime: prometheus.NewDesc(ns+"uptime", "Uptime", labels, nil),
|
||||
TotalTxBytes: prometheus.NewDesc(ns+"transmit_bytes_total", "Total Transmitted Bytes", labels, nil),
|
||||
TotalRxBytes: prometheus.NewDesc(ns+"receive_bytes_total", "Total Received Bytes", labels, nil),
|
||||
TotalBytes: prometheus.NewDesc(ns+"bytes_total", "Total Bytes Transferred", labels, nil),
|
||||
BytesD: prometheus.NewDesc(ns+"d_bytes", "Total Bytes D???", 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),
|
||||
BytesR: prometheus.NewDesc(ns+"rate_bytes", "Transfer Rate", labels, nil),
|
||||
NumSta: prometheus.NewDesc(ns+"stations", "Number of Stations", labels, nil),
|
||||
UserNumSta: prometheus.NewDesc(ns+"user_stations", "Number of User Stations", labels, nil),
|
||||
GuestNumSta: prometheus.NewDesc(ns+"guest_stations", "Number of Guest Stations", labels, 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),
|
||||
MemUsed: prometheus.NewDesc(ns+"memory_used_bytes", "System Memory Used", labels, nil),
|
||||
MemTotal: prometheus.NewDesc(ns+"memory_installed_bytes", "System Installed Memory", labels, nil),
|
||||
MemBuffer: prometheus.NewDesc(ns+"memory_buffer_bytes", "System Memory Buffer", labels, nil),
|
||||
CPU: prometheus.NewDesc(ns+"cpu_utilization_percent", "System CPU % Utilized", labels, nil),
|
||||
Mem: prometheus.NewDesc(ns+"memory_utilization_percent", "System Memory % Utilized", labels, nil),
|
||||
ApBytes: prometheus.NewDesc(ns+"transferred_bytes_total", "Total Bytes Moved", labels, nil),
|
||||
|
||||
// 3x each - stat table: total, guest, user
|
||||
ApWifiTxDropped: prometheus.NewDesc(ns+"stat_wifi_transmt_dropped_total", "Wifi Transmissions Dropped", labelA, nil),
|
||||
ApRxErrors: prometheus.NewDesc(ns+"stat_receive_errors_total", "Receive Errors", labelA, nil),
|
||||
|
|
@ -149,7 +103,6 @@ func descUAP(ns string) *uap {
|
|||
ApRxBytes: prometheus.NewDesc(ns+"stat_receive_bytes_total", "Receive Bytes", labelA, nil),
|
||||
WifiTxAttempts: prometheus.NewDesc(ns+"stat_wifi_transmit_attempts_total", "Wifi Transmission Attempts", labelA, nil),
|
||||
MacFilterRejections: prometheus.NewDesc(ns+"stat_mac_filter_rejects_total", "MAC Filter Rejections", labelA, nil),
|
||||
|
||||
// N each - 1 per Virtual AP (VAP)
|
||||
VAPCcq: prometheus.NewDesc(ns+"vap_ccq", "VAP Client Connection Quality", labelV, nil),
|
||||
VAPMacFilterRejections: prometheus.NewDesc(ns+"vap_mac_filter_rejects_total", "VAP MAC Filter Rejections", labelV, nil),
|
||||
|
|
@ -189,7 +142,6 @@ func descUAP(ns string) *uap {
|
|||
VAPWifiTxLatencyMovMin: prometheus.NewDesc(ns+"vap_transmit_latency_moving_min_seconds", "VAP Latency Moving Minimum Tramsit", labelV, nil),
|
||||
VAPWifiTxLatencyMovTotal: prometheus.NewDesc(ns+"vap_transmit_latency_moving_total", "VAP Latency Moving Total Tramsit", labelV, nil),
|
||||
VAPWifiTxLatencyMovCount: prometheus.NewDesc(ns+"vap_transmit_latency_moving_count", "VAP Latency Moving Count Tramsit", labelV, nil),
|
||||
|
||||
// N each - 1 per Radio. 1-4 radios per AP usually
|
||||
RadioCurrentAntennaGain: prometheus.NewDesc(ns+"radio_current_antenna_gain", "Radio Current Antenna Gain", labelR, nil),
|
||||
RadioHt: prometheus.NewDesc(ns+"radio_ht", "Radio HT", labelR, nil),
|
||||
|
|
@ -228,28 +180,27 @@ func (u *unifiCollector) exportUAPs(r *Report) {
|
|||
|
||||
func (u *unifiCollector) exportUAP(r *Report, d *unifi.UAP) {
|
||||
labels := []string{d.IP, d.Type, d.Version, d.SiteName, d.Mac, d.Model, d.Name, d.Serial}
|
||||
|
||||
// AP data.
|
||||
r.send([]*metricExports{
|
||||
{u.UAP.Uptime, prometheus.GaugeValue, d.Uptime, labels},
|
||||
{u.UAP.TotalTxBytes, prometheus.CounterValue, d.TxBytes, labels},
|
||||
{u.UAP.TotalRxBytes, prometheus.CounterValue, d.RxBytes, labels},
|
||||
{u.UAP.TotalBytes, prometheus.CounterValue, d.Bytes, labels},
|
||||
{u.UAP.BytesD, prometheus.CounterValue, d.BytesD, labels}, // not sure if these 3 Ds are counters or gauges.
|
||||
{u.UAP.TxBytesD, prometheus.CounterValue, d.TxBytesD, labels}, // not sure if these 3 Ds are counters or gauges.
|
||||
{u.UAP.RxBytesD, prometheus.CounterValue, d.RxBytesD, labels}, // not sure if these 3 Ds are counters or gauges.
|
||||
{u.UAP.BytesR, prometheus.GaugeValue, d.BytesR, labels},
|
||||
{u.UAP.NumSta, prometheus.GaugeValue, d.NumSta, labels},
|
||||
{u.UAP.UserNumSta, prometheus.GaugeValue, d.UserNumSta, labels},
|
||||
{u.UAP.GuestNumSta, prometheus.GaugeValue, d.GuestNumSta, labels},
|
||||
{u.UAP.Loadavg1, prometheus.GaugeValue, d.SysStats.Loadavg1, labels},
|
||||
{u.UAP.Loadavg5, prometheus.GaugeValue, d.SysStats.Loadavg5, labels},
|
||||
{u.UAP.Loadavg15, prometheus.GaugeValue, d.SysStats.Loadavg15, labels},
|
||||
{u.UAP.MemUsed, prometheus.GaugeValue, d.SysStats.MemUsed, labels},
|
||||
{u.UAP.MemTotal, prometheus.GaugeValue, d.SysStats.MemTotal, labels},
|
||||
{u.UAP.MemBuffer, prometheus.GaugeValue, d.SysStats.MemBuffer, labels},
|
||||
{u.UAP.CPU, prometheus.GaugeValue, d.SystemStats.CPU, labels},
|
||||
{u.UAP.Mem, prometheus.GaugeValue, d.SystemStats.Mem, labels},
|
||||
{u.Device.Uptime, prometheus.GaugeValue, d.Uptime, labels},
|
||||
{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.BytesD, prometheus.CounterValue, d.BytesD, labels}, // not sure if these 3 Ds are counters or gauges.
|
||||
{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.NumSta, labels},
|
||||
{u.Device.UserNumSta, prometheus.GaugeValue, d.UserNumSta, labels},
|
||||
{u.Device.GuestNumSta, prometheus.GaugeValue, d.GuestNumSta, labels},
|
||||
{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.exportUAPstats(r, labels[2:], d.Stat.Ap)
|
||||
u.exportVAPtable(r, labels[2:], d.VapTable)
|
||||
|
|
@ -260,7 +211,6 @@ func (u *unifiCollector) exportUAPstats(r *Report, labels []string, ap *unifi.Ap
|
|||
labelA := append([]string{"all"}, labels...)
|
||||
labelU := append([]string{"user"}, labels...)
|
||||
labelG := append([]string{"guest"}, labels...)
|
||||
|
||||
r.send([]*metricExports{
|
||||
// all
|
||||
{u.UAP.ApWifiTxDropped, prometheus.CounterValue, ap.WifiTxDropped, labelA},
|
||||
|
|
|
|||
|
|
@ -5,6 +5,68 @@ import (
|
|||
"golift.io/unifi"
|
||||
)
|
||||
|
||||
// These are shared by all four device types: UDM, UAP, USG, USW
|
||||
type unifiDevice struct {
|
||||
Uptime *prometheus.Desc
|
||||
Temperature *prometheus.Desc // sw only
|
||||
TotalMaxPower *prometheus.Desc // sw only
|
||||
FanLevel *prometheus.Desc // sw only
|
||||
TotalTxBytes *prometheus.Desc
|
||||
TotalRxBytes *prometheus.Desc
|
||||
TotalBytes *prometheus.Desc
|
||||
BytesR *prometheus.Desc // ap only
|
||||
BytesD *prometheus.Desc // ap only
|
||||
Bytes *prometheus.Desc // ap only
|
||||
TxBytesD *prometheus.Desc // ap only
|
||||
RxBytesD *prometheus.Desc // ap only
|
||||
NumSta *prometheus.Desc
|
||||
UserNumSta *prometheus.Desc
|
||||
GuestNumSta *prometheus.Desc
|
||||
NumDesktop *prometheus.Desc // gw only
|
||||
NumMobile *prometheus.Desc // gw only
|
||||
NumHandheld *prometheus.Desc // gw only
|
||||
Loadavg1 *prometheus.Desc
|
||||
Loadavg5 *prometheus.Desc
|
||||
Loadavg15 *prometheus.Desc
|
||||
MemBuffer *prometheus.Desc
|
||||
MemTotal *prometheus.Desc
|
||||
MemUsed *prometheus.Desc
|
||||
CPU *prometheus.Desc
|
||||
Mem *prometheus.Desc
|
||||
}
|
||||
|
||||
func descDevice(ns string) *unifiDevice {
|
||||
labels := []string{"ip", "site_name", "mac", "model", "name", "serial", "type", "version"}
|
||||
return &unifiDevice{
|
||||
Uptime: prometheus.NewDesc(ns+"uptime", "Uptime", labels, nil),
|
||||
Temperature: prometheus.NewDesc(ns+"temperature_celsius", "Temperature", labels, nil),
|
||||
TotalMaxPower: prometheus.NewDesc(ns+"max_power_total", "Total Max Power", labels, nil),
|
||||
FanLevel: prometheus.NewDesc(ns+"fan_level", "Fan Level", labels, nil),
|
||||
TotalTxBytes: prometheus.NewDesc(ns+"transmit_bytes_total", "Total Transmitted Bytes", labels, nil),
|
||||
TotalRxBytes: prometheus.NewDesc(ns+"receive_bytes_total", "Total Received Bytes", labels, nil),
|
||||
TotalBytes: prometheus.NewDesc(ns+"bytes_total", "Total Bytes Transferred", labels, nil),
|
||||
BytesR: prometheus.NewDesc(ns+"rate_bytes", "Transfer Rate", labels, nil),
|
||||
BytesD: prometheus.NewDesc(ns+"d_bytes", "Total Bytes D???", labels, nil),
|
||||
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", labels, nil),
|
||||
UserNumSta: prometheus.NewDesc(ns+"user_stations", "Number of User Stations", labels, nil),
|
||||
GuestNumSta: prometheus.NewDesc(ns+"guest_stations", "Number of Guest Stations", labels, 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),
|
||||
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),
|
||||
MemUsed: prometheus.NewDesc(ns+"memory_used_bytes", "System Memory Used", labels, nil),
|
||||
MemTotal: prometheus.NewDesc(ns+"memory_installed_bytes", "System Installed Memory", labels, nil),
|
||||
MemBuffer: prometheus.NewDesc(ns+"memory_buffer_bytes", "System Memory Buffer", labels, nil),
|
||||
CPU: prometheus.NewDesc(ns+"cpu_utilization_percent", "System CPU % Utilized", labels, nil),
|
||||
Mem: prometheus.NewDesc(ns+"memory_utilization_percent", "System Memory % Utilized", labels, nil),
|
||||
}
|
||||
}
|
||||
|
||||
func (u *unifiCollector) exportUDMs(r *Report) {
|
||||
if r.Metrics == nil || r.Metrics.Devices == nil || len(r.Metrics.Devices.UDMs) < 1 {
|
||||
return
|
||||
|
|
@ -23,30 +85,31 @@ func (u *unifiCollector) exportUDM(r *Report, d *unifi.UDM) {
|
|||
labels := []string{d.IP, d.Type, d.Version, d.SiteName, d.Mac, d.Model, d.Name, d.Serial}
|
||||
// Gateway System Data.
|
||||
r.send([]*metricExports{
|
||||
{u.USG.Uptime, prometheus.GaugeValue, d.Uptime, labels},
|
||||
{u.USG.TotalTxBytes, prometheus.CounterValue, d.TxBytes, labels},
|
||||
{u.USG.TotalRxBytes, prometheus.CounterValue, d.RxBytes, labels},
|
||||
{u.USG.TotalBytes, prometheus.CounterValue, d.Bytes, labels},
|
||||
{u.USG.NumSta, prometheus.GaugeValue, d.NumSta, labels},
|
||||
{u.USG.UserNumSta, prometheus.GaugeValue, d.UserNumSta, labels},
|
||||
{u.USG.GuestNumSta, prometheus.GaugeValue, d.GuestNumSta, labels},
|
||||
{u.USG.NumDesktop, prometheus.GaugeValue, d.NumDesktop, labels},
|
||||
{u.USG.NumMobile, prometheus.GaugeValue, d.NumMobile, labels},
|
||||
{u.USG.NumHandheld, prometheus.GaugeValue, d.NumHandheld, labels},
|
||||
{u.USG.Loadavg1, prometheus.GaugeValue, d.SysStats.Loadavg1, labels},
|
||||
{u.USG.Loadavg5, prometheus.GaugeValue, d.SysStats.Loadavg5, labels},
|
||||
{u.USG.Loadavg15, prometheus.GaugeValue, d.SysStats.Loadavg15, labels},
|
||||
{u.USG.MemUsed, prometheus.GaugeValue, d.SysStats.MemUsed, labels},
|
||||
{u.USG.MemTotal, prometheus.GaugeValue, d.SysStats.MemTotal, labels},
|
||||
{u.USG.MemBuffer, prometheus.GaugeValue, d.SysStats.MemBuffer, labels},
|
||||
{u.USG.CPU, prometheus.GaugeValue, d.SystemStats.CPU, labels},
|
||||
{u.USG.Mem, prometheus.GaugeValue, d.SystemStats.Mem, labels},
|
||||
{u.Device.Uptime, prometheus.GaugeValue, d.Uptime, labels},
|
||||
{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.NumSta, labels},
|
||||
{u.Device.UserNumSta, prometheus.GaugeValue, d.UserNumSta, labels},
|
||||
{u.Device.GuestNumSta, prometheus.GaugeValue, d.GuestNumSta, labels},
|
||||
{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.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.exportUSWstats(r, d.Stat.Sw, labels)
|
||||
u.exportUSGstats(r, d.Stat.Gw, d.SpeedtestStatus, labels)
|
||||
u.exportWANPorts(r, labels, d.Wan1, d.Wan2)
|
||||
u.exportPortTable(r, d.PortTable, labels[4:])
|
||||
if d.Stat.Ap != nil && d.VapTable != nil {
|
||||
// UDM Pro does not have these. UDM non-Pro does.
|
||||
u.exportUAPstats(r, labels[2:], d.Stat.Ap)
|
||||
u.exportVAPtable(r, labels[2:], *d.VapTable)
|
||||
u.exportRadtable(r, labels[2:], *d.RadioTable, *d.RadioTableStats)
|
||||
|
|
|
|||
|
|
@ -6,26 +6,6 @@ import (
|
|||
)
|
||||
|
||||
type usg struct {
|
||||
Uptime *prometheus.Desc
|
||||
TotalMaxPower *prometheus.Desc
|
||||
FanLevel *prometheus.Desc
|
||||
TotalTxBytes *prometheus.Desc
|
||||
TotalRxBytes *prometheus.Desc
|
||||
TotalBytes *prometheus.Desc
|
||||
NumSta *prometheus.Desc
|
||||
UserNumSta *prometheus.Desc
|
||||
GuestNumSta *prometheus.Desc
|
||||
NumDesktop *prometheus.Desc
|
||||
NumMobile *prometheus.Desc
|
||||
NumHandheld *prometheus.Desc
|
||||
Loadavg1 *prometheus.Desc
|
||||
Loadavg5 *prometheus.Desc
|
||||
Loadavg15 *prometheus.Desc
|
||||
MemBuffer *prometheus.Desc
|
||||
MemTotal *prometheus.Desc
|
||||
MemUsed *prometheus.Desc
|
||||
CPU *prometheus.Desc
|
||||
Mem *prometheus.Desc
|
||||
WanRxPackets *prometheus.Desc
|
||||
WanRxBytes *prometheus.Desc
|
||||
WanRxDropped *prometheus.Desc
|
||||
|
|
@ -54,31 +34,9 @@ type usg struct {
|
|||
}
|
||||
|
||||
func descUSG(ns string) *usg {
|
||||
if ns += "_usg_"; ns == "_usg_" {
|
||||
ns = "usg_"
|
||||
}
|
||||
labels := []string{"ip", "type", "version", "site_name", "mac", "model", "name", "serial"}
|
||||
labelWan := append([]string{"port"}, labels...)
|
||||
|
||||
return &usg{
|
||||
Uptime: prometheus.NewDesc(ns+"uptime_seconds", "Uptime", labels, nil),
|
||||
TotalTxBytes: prometheus.NewDesc(ns+"transmit_bytes_total", "Total Transmitted Bytes", labels, nil),
|
||||
TotalRxBytes: prometheus.NewDesc(ns+"receive_bytes_total", "Total Received Bytes", labels, nil),
|
||||
TotalBytes: prometheus.NewDesc(ns+"transferred_bytes_total", "Total Bytes Transferred", labels, nil),
|
||||
NumSta: prometheus.NewDesc(ns+"stations", "Number of Stations", labels, nil),
|
||||
UserNumSta: prometheus.NewDesc(ns+"user_stations", "Number of User Stations", labels, nil),
|
||||
GuestNumSta: prometheus.NewDesc(ns+"guest_stations", "Number of Guest Stations", labels, 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),
|
||||
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),
|
||||
MemUsed: prometheus.NewDesc(ns+"memory_used_bytes", "System Memory Used", labels, nil),
|
||||
MemTotal: prometheus.NewDesc(ns+"memory_installed_bytes", "System Installed Memory", labels, nil),
|
||||
MemBuffer: prometheus.NewDesc(ns+"memory_buffer_bytes", "System Memory Buffer", labels, nil),
|
||||
CPU: prometheus.NewDesc(ns+"cpu_utilization_percent", "System CPU % Utilized", labels, nil),
|
||||
Mem: prometheus.NewDesc(ns+"memory_utilization_percent", "System Memory % Utilized", labels, nil),
|
||||
WanRxPackets: prometheus.NewDesc(ns+"wan_receive_packets_total", "WAN Receive Packets Total", labelWan, nil),
|
||||
WanRxBytes: prometheus.NewDesc(ns+"wan_receive_bytes_total", "WAN Receive Bytes Total", labelWan, nil),
|
||||
WanRxDropped: prometheus.NewDesc(ns+"wan_receive_dropped_total", "WAN Receive Dropped Total", labelWan, nil),
|
||||
|
|
@ -124,24 +82,24 @@ func (u *unifiCollector) exportUSG(r *Report, d *unifi.USG) {
|
|||
labels := []string{d.IP, d.Type, d.Version, d.SiteName, d.Mac, d.Model, d.Name, d.Serial}
|
||||
// Gateway System Data.
|
||||
r.send([]*metricExports{
|
||||
{u.USG.Uptime, prometheus.GaugeValue, d.Uptime, labels},
|
||||
{u.USG.TotalTxBytes, prometheus.CounterValue, d.TxBytes, labels},
|
||||
{u.USG.TotalRxBytes, prometheus.CounterValue, d.RxBytes, labels},
|
||||
{u.USG.TotalBytes, prometheus.CounterValue, d.Bytes, labels},
|
||||
{u.USG.NumSta, prometheus.GaugeValue, d.NumSta, labels},
|
||||
{u.USG.UserNumSta, prometheus.GaugeValue, d.UserNumSta, labels},
|
||||
{u.USG.GuestNumSta, prometheus.GaugeValue, d.GuestNumSta, labels},
|
||||
{u.USG.NumDesktop, prometheus.GaugeValue, d.NumDesktop, labels},
|
||||
{u.USG.NumMobile, prometheus.GaugeValue, d.NumMobile, labels},
|
||||
{u.USG.NumHandheld, prometheus.GaugeValue, d.NumHandheld, labels},
|
||||
{u.USG.Loadavg1, prometheus.GaugeValue, d.SysStats.Loadavg1, labels},
|
||||
{u.USG.Loadavg5, prometheus.GaugeValue, d.SysStats.Loadavg5, labels},
|
||||
{u.USG.Loadavg15, prometheus.GaugeValue, d.SysStats.Loadavg15, labels},
|
||||
{u.USG.MemUsed, prometheus.GaugeValue, d.SysStats.MemUsed, labels},
|
||||
{u.USG.MemTotal, prometheus.GaugeValue, d.SysStats.MemTotal, labels},
|
||||
{u.USG.MemBuffer, prometheus.GaugeValue, d.SysStats.MemBuffer, labels},
|
||||
{u.USG.CPU, prometheus.GaugeValue, d.SystemStats.CPU, labels},
|
||||
{u.USG.Mem, prometheus.GaugeValue, d.SystemStats.Mem, labels},
|
||||
{u.Device.Uptime, prometheus.GaugeValue, d.Uptime, labels},
|
||||
{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.NumSta, labels},
|
||||
{u.Device.UserNumSta, prometheus.GaugeValue, d.UserNumSta, labels},
|
||||
{u.Device.GuestNumSta, prometheus.GaugeValue, d.GuestNumSta, labels},
|
||||
{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.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.exportWANPorts(r, labels, d.Wan1, d.Wan2)
|
||||
u.exportUSGstats(r, d.Stat.Gw, d.SpeedtestStatus, labels)
|
||||
|
|
|
|||
|
|
@ -6,25 +6,6 @@ import (
|
|||
)
|
||||
|
||||
type usw struct {
|
||||
Uptime *prometheus.Desc
|
||||
Temperature *prometheus.Desc
|
||||
TotalMaxPower *prometheus.Desc
|
||||
FanLevel *prometheus.Desc
|
||||
TotalTxBytes *prometheus.Desc
|
||||
TotalRxBytes *prometheus.Desc
|
||||
TotalBytes *prometheus.Desc
|
||||
NumSta *prometheus.Desc
|
||||
UserNumSta *prometheus.Desc
|
||||
GuestNumSta *prometheus.Desc
|
||||
// System Stats
|
||||
Loadavg1 *prometheus.Desc
|
||||
Loadavg5 *prometheus.Desc
|
||||
Loadavg15 *prometheus.Desc
|
||||
MemBuffer *prometheus.Desc
|
||||
MemTotal *prometheus.Desc
|
||||
MemUsed *prometheus.Desc
|
||||
CPU *prometheus.Desc
|
||||
Mem *prometheus.Desc
|
||||
// Switch "total" traffic stats
|
||||
SwRxPackets *prometheus.Desc
|
||||
SwRxBytes *prometheus.Desc
|
||||
|
|
@ -65,36 +46,12 @@ type usw struct {
|
|||
}
|
||||
|
||||
func descUSW(ns string) *usw {
|
||||
if ns += "_usw_"; ns == "_usw_" {
|
||||
ns = "usw_"
|
||||
}
|
||||
pns := ns + "port_"
|
||||
// The first five labels for switch are shared with (the same as) switch ports.
|
||||
labels := []string{"ip", "type", "version", "site_name", "mac", "model", "name", "serial"}
|
||||
// Copy labels, and replace first four with different names.
|
||||
labelP := append([]string{"port_num", "port_name", "port_mac", "port_ip"}, labels[4:]...)
|
||||
|
||||
return &usw{
|
||||
// switch data
|
||||
Uptime: prometheus.NewDesc(ns+"uptime_seconds", "Uptime", labels, nil),
|
||||
Temperature: prometheus.NewDesc(ns+"temperature_celsius", "Temperature", labels, nil),
|
||||
TotalMaxPower: prometheus.NewDesc(ns+"max_power_total", "Total Max Power", labels, nil),
|
||||
FanLevel: prometheus.NewDesc(ns+"fan_level", "Fan Level", labels, nil),
|
||||
TotalTxBytes: prometheus.NewDesc(ns+"bytes_tx_total", "Total Transmitted Bytes", labels, nil),
|
||||
TotalRxBytes: prometheus.NewDesc(ns+"bytes_rx_total", "Total Received Bytes", labels, nil),
|
||||
TotalBytes: prometheus.NewDesc(ns+"bytes_total", "Total Bytes Transferred", labels, nil),
|
||||
NumSta: prometheus.NewDesc(ns+"stations", "Number of Stations", labels, nil),
|
||||
UserNumSta: prometheus.NewDesc(ns+"user_stations", "Number of User Stations", labels, nil),
|
||||
GuestNumSta: prometheus.NewDesc(ns+"guest_stations", "Number of Guest Stations", labels, 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),
|
||||
MemUsed: prometheus.NewDesc(ns+"memory_used_bytes", "System Memory Used", labels, nil),
|
||||
MemTotal: prometheus.NewDesc(ns+"memory_installed_bytes", "System Installed Memory", labels, nil),
|
||||
MemBuffer: prometheus.NewDesc(ns+"memory_buffer_bytes", "System Memory Buffer", labels, nil),
|
||||
CPU: prometheus.NewDesc(ns+"cpu_utilization_percent", "System CPU % Utilized", labels, nil),
|
||||
Mem: prometheus.NewDesc(ns+"memory_utilization_percent", "System Memory % Utilized", labels, nil),
|
||||
|
||||
SwRxPackets: prometheus.NewDesc(ns+"switch_receive_packets_total", "Switch Packets Received Total", labels, nil),
|
||||
SwRxBytes: prometheus.NewDesc(ns+"switch_receive_bytes_total", "Switch Bytes Received Total", labels, nil),
|
||||
SwRxErrors: prometheus.NewDesc(ns+"switch_receive_errors_total", "Switch Errors Received Total", labels, nil),
|
||||
|
|
@ -111,7 +68,6 @@ func descUSW(ns string) *usw {
|
|||
SwTxMulticast: prometheus.NewDesc(ns+"switch_transmit_multicast_total", "Switch Multicast Transmit Total", labels, nil),
|
||||
SwTxBroadcast: prometheus.NewDesc(ns+"switch_transmit_broadcast_total", "Switch Broadcast Transmit Total", labels, nil),
|
||||
SwBytes: prometheus.NewDesc(ns+"switch_bytes_total", "Switch Bytes Transferred Total", labels, nil),
|
||||
|
||||
// per-port data
|
||||
PoeCurrent: prometheus.NewDesc(pns+"poe_amperes", "POE Current", labelP, nil),
|
||||
PoePower: prometheus.NewDesc(pns+"poe_watts", "POE Power", labelP, nil),
|
||||
|
|
@ -150,32 +106,31 @@ func (u *unifiCollector) exportUSWs(r *Report) {
|
|||
|
||||
func (u *unifiCollector) exportUSW(r *Report, d *unifi.USW) {
|
||||
labels := []string{d.IP, d.Type, d.Version, d.SiteName, d.Mac, d.Model, d.Name, d.Serial}
|
||||
|
||||
if d.HasTemperature.Val {
|
||||
r.send([]*metricExports{{u.USW.Temperature, prometheus.GaugeValue, d.GeneralTemperature, labels}})
|
||||
r.send([]*metricExports{{u.Device.Temperature, prometheus.GaugeValue, d.GeneralTemperature, labels}})
|
||||
}
|
||||
if d.HasFan.Val {
|
||||
r.send([]*metricExports{{u.USW.FanLevel, prometheus.GaugeValue, d.FanLevel, labels}})
|
||||
r.send([]*metricExports{{u.Device.FanLevel, prometheus.GaugeValue, d.FanLevel, labels}})
|
||||
}
|
||||
|
||||
// Switch data.
|
||||
r.send([]*metricExports{
|
||||
{u.USW.Uptime, prometheus.GaugeValue, d.Uptime, labels},
|
||||
{u.USW.TotalMaxPower, prometheus.GaugeValue, d.TotalMaxPower, labels},
|
||||
{u.USW.TotalTxBytes, prometheus.CounterValue, d.TxBytes, labels},
|
||||
{u.USW.TotalRxBytes, prometheus.CounterValue, d.RxBytes, labels},
|
||||
{u.USW.TotalBytes, prometheus.CounterValue, d.Bytes, labels},
|
||||
{u.USW.NumSta, prometheus.GaugeValue, d.NumSta, labels},
|
||||
{u.USW.UserNumSta, prometheus.GaugeValue, d.UserNumSta, labels},
|
||||
{u.USW.GuestNumSta, prometheus.GaugeValue, d.GuestNumSta, labels},
|
||||
{u.USW.Loadavg1, prometheus.GaugeValue, d.SysStats.Loadavg1, labels},
|
||||
{u.USW.Loadavg5, prometheus.GaugeValue, d.SysStats.Loadavg5, labels},
|
||||
{u.USW.Loadavg15, prometheus.GaugeValue, d.SysStats.Loadavg15, labels},
|
||||
{u.USW.MemUsed, prometheus.GaugeValue, d.SysStats.MemUsed, labels},
|
||||
{u.USW.MemTotal, prometheus.GaugeValue, d.SysStats.MemTotal, labels},
|
||||
{u.USW.MemBuffer, prometheus.GaugeValue, d.SysStats.MemBuffer, labels},
|
||||
{u.USW.CPU, prometheus.GaugeValue, d.SystemStats.CPU, labels},
|
||||
{u.USW.Mem, prometheus.GaugeValue, d.SystemStats.Mem, labels},
|
||||
{u.Device.Uptime, prometheus.GaugeValue, d.Uptime, labels},
|
||||
{u.Device.TotalMaxPower, prometheus.GaugeValue, d.TotalMaxPower, labels},
|
||||
{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.NumSta, labels},
|
||||
{u.Device.UserNumSta, prometheus.GaugeValue, d.UserNumSta, labels},
|
||||
{u.Device.GuestNumSta, prometheus.GaugeValue, d.GuestNumSta, labels},
|
||||
{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.exportPortTable(r, d.PortTable, labels[4:])
|
||||
u.exportUSWstats(r, d.Stat.Sw, labels)
|
||||
|
|
@ -217,6 +172,7 @@ func (u *unifiCollector) exportPortTable(r *Report, pt []unifi.Port, labels []st
|
|||
{u.USW.PoeVoltage, prometheus.GaugeValue, p.PoeVoltage, l},
|
||||
})
|
||||
}
|
||||
|
||||
r.send([]*metricExports{
|
||||
{u.USW.RxBroadcast, prometheus.CounterValue, p.RxBroadcast, l},
|
||||
{u.USW.RxBytes, prometheus.CounterValue, p.RxBytes, l},
|
||||
|
|
|
|||
Loading…
Reference in New Issue