add uptime back
This commit is contained in:
parent
9a48c771eb
commit
a7259bf3f0
|
|
@ -115,7 +115,7 @@ func (u *promUnifi) exportClient(r report, c *unifi.Client) {
|
||||||
{u.Client.BytesR, gauge, c.BytesR, labelW},
|
{u.Client.BytesR, gauge, c.BytesR, labelW},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
r.sendone(u.Client.Info, gauge, c.Uptime, labelW)
|
r.send([]*metric{{u.Client.Info, gauge, c.Uptime, labelW}})
|
||||||
/* needs more "looking into"
|
/* needs more "looking into"
|
||||||
{u.Client.DpiStatsApp, gauge, c.DpiStats.App, labels},
|
{u.Client.DpiStatsApp, gauge, c.DpiStats.App, labels},
|
||||||
{u.Client.DpiStatsCat, gauge, c.DpiStats.Cat, labels},
|
{u.Client.DpiStatsCat, gauge, c.DpiStats.Cat, labels},
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,6 @@ type report interface {
|
||||||
add()
|
add()
|
||||||
done()
|
done()
|
||||||
send([]*metric)
|
send([]*metric)
|
||||||
sendone(*prometheus.Desc, prometheus.ValueType, interface{}, []string)
|
|
||||||
metrics() *metrics.Metrics
|
metrics() *metrics.Metrics
|
||||||
report(descs map[*prometheus.Desc]bool)
|
report(descs map[*prometheus.Desc]bool)
|
||||||
export(m *metric, v float64) prometheus.Metric
|
export(m *metric, v float64) prometheus.Metric
|
||||||
|
|
@ -34,11 +33,6 @@ func (r *Report) done() {
|
||||||
r.wg.Add(-one)
|
r.wg.Add(-one)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Report) sendone(desc *prometheus.Desc, valType prometheus.ValueType, val interface{}, labels []string) {
|
|
||||||
r.wg.Add(one)
|
|
||||||
r.ch <- []*metric{{desc, valType, val, labels}}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Report) send(m []*metric) {
|
func (r *Report) send(m []*metric) {
|
||||||
r.wg.Add(one)
|
r.wg.Add(one)
|
||||||
r.ch <- m
|
r.ch <- m
|
||||||
|
|
|
||||||
|
|
@ -167,7 +167,10 @@ func (u *promUnifi) exportUAP(r report, d *unifi.UAP) {
|
||||||
u.exportSYSstats(r, labels, d.SysStats, d.SystemStats)
|
u.exportSYSstats(r, labels, d.SysStats, d.SystemStats)
|
||||||
u.exportSTAcount(r, labels, d.UserNumSta, d.GuestNumSta)
|
u.exportSTAcount(r, labels, d.UserNumSta, d.GuestNumSta)
|
||||||
u.exportRADtable(r, labels, d.RadioTable, d.RadioTableStats)
|
u.exportRADtable(r, labels, d.RadioTable, d.RadioTableStats)
|
||||||
r.sendone(u.Device.Info, gauge, 1.0, append(labels, infoLabels...))
|
r.send([]*metric{
|
||||||
|
{u.Device.Info, gauge, 1.0, append(labels, infoLabels...)},
|
||||||
|
{u.Device.Uptime, gauge, d.Uptime, labels},
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// udm doesn't have these stats exposed yet, so pass 2 or 6 metrics.
|
// udm doesn't have these stats exposed yet, so pass 2 or 6 metrics.
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,8 @@ import (
|
||||||
|
|
||||||
// These are shared by all four device types: UDM, UAP, USG, USW
|
// These are shared by all four device types: UDM, UAP, USG, USW
|
||||||
type unifiDevice struct {
|
type unifiDevice struct {
|
||||||
Info *prometheus.Desc // uptime
|
Info *prometheus.Desc
|
||||||
|
Uptime *prometheus.Desc
|
||||||
Temperature *prometheus.Desc // sw only
|
Temperature *prometheus.Desc // sw only
|
||||||
TotalMaxPower *prometheus.Desc // sw only
|
TotalMaxPower *prometheus.Desc // sw only
|
||||||
FanLevel *prometheus.Desc // sw only
|
FanLevel *prometheus.Desc // sw only
|
||||||
|
|
@ -34,6 +35,7 @@ func descDevice(ns string) *unifiDevice {
|
||||||
infoLabels := []string{"version", "model", "serial", "mac", "ip", "id", "bytes", "uptime"}
|
infoLabels := []string{"version", "model", "serial", "mac", "ip", "id", "bytes", "uptime"}
|
||||||
return &unifiDevice{
|
return &unifiDevice{
|
||||||
Info: prometheus.NewDesc(ns+"info", "Device Information", append(labels, infoLabels...), nil),
|
Info: prometheus.NewDesc(ns+"info", "Device Information", append(labels, infoLabels...), nil),
|
||||||
|
Uptime: prometheus.NewDesc(ns+"uptime", "Device Uptime", labels, nil),
|
||||||
Temperature: prometheus.NewDesc(ns+"temperature_celsius", "Temperature", labels, nil),
|
Temperature: prometheus.NewDesc(ns+"temperature_celsius", "Temperature", labels, nil),
|
||||||
TotalMaxPower: prometheus.NewDesc(ns+"max_power_total", "Total Max Power", labels, nil),
|
TotalMaxPower: prometheus.NewDesc(ns+"max_power_total", "Total Max Power", labels, nil),
|
||||||
FanLevel: prometheus.NewDesc(ns+"fan_level", "Fan Level", labels, nil),
|
FanLevel: prometheus.NewDesc(ns+"fan_level", "Fan Level", labels, nil),
|
||||||
|
|
@ -71,7 +73,10 @@ func (u *promUnifi) exportUDM(r report, d *unifi.UDM) {
|
||||||
u.exportWANPorts(r, labels, d.Wan1, d.Wan2)
|
u.exportWANPorts(r, labels, d.Wan1, d.Wan2)
|
||||||
u.exportUSGstats(r, labels, d.Stat.Gw, d.SpeedtestStatus, d.Uplink)
|
u.exportUSGstats(r, labels, d.Stat.Gw, d.SpeedtestStatus, d.Uplink)
|
||||||
// Dream Machine System Data.
|
// Dream Machine System Data.
|
||||||
r.sendone(u.Device.Info, gauge, 1.0, append(labels, infoLabels...))
|
r.send([]*metric{
|
||||||
|
{u.Device.Info, gauge, 1.0, append(labels, infoLabels...)},
|
||||||
|
{u.Device.Uptime, gauge, d.Uptime, labels},
|
||||||
|
})
|
||||||
// Wireless Data - UDM (non-pro) only
|
// Wireless Data - UDM (non-pro) only
|
||||||
if d.Stat.Ap != nil && d.VapTable != nil {
|
if d.Stat.Ap != nil && d.VapTable != nil {
|
||||||
u.exportUAPstats(r, labels, d.Stat.Ap)
|
u.exportUAPstats(r, labels, d.Stat.Ap)
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,10 @@ func (u *promUnifi) exportUSG(r report, d *unifi.USG) {
|
||||||
u.exportSYSstats(r, labels, d.SysStats, d.SystemStats)
|
u.exportSYSstats(r, labels, d.SysStats, d.SystemStats)
|
||||||
u.exportUSGstats(r, labels, d.Stat.Gw, d.SpeedtestStatus, d.Uplink)
|
u.exportUSGstats(r, labels, d.Stat.Gw, d.SpeedtestStatus, d.Uplink)
|
||||||
u.exportSTAcount(r, labels, d.UserNumSta, d.GuestNumSta, d.NumDesktop, d.UserNumSta, d.GuestNumSta)
|
u.exportSTAcount(r, labels, d.UserNumSta, d.GuestNumSta, d.NumDesktop, d.UserNumSta, d.GuestNumSta)
|
||||||
r.sendone(u.Device.Info, gauge, 1.0, append(labels, infoLabels...))
|
r.send([]*metric{
|
||||||
|
{u.Device.Info, gauge, 1.0, append(labels, infoLabels...)},
|
||||||
|
{u.Device.Uptime, gauge, d.Uptime, labels},
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Gateway States
|
// Gateway States
|
||||||
|
|
|
||||||
|
|
@ -98,16 +98,19 @@ func (u *promUnifi) exportUSW(r report, d *unifi.USW) {
|
||||||
u.exportBYTstats(r, labels, d.TxBytes, d.RxBytes)
|
u.exportBYTstats(r, labels, d.TxBytes, d.RxBytes)
|
||||||
u.exportSYSstats(r, labels, d.SysStats, d.SystemStats)
|
u.exportSYSstats(r, labels, d.SysStats, d.SystemStats)
|
||||||
u.exportSTAcount(r, labels, d.UserNumSta, d.GuestNumSta)
|
u.exportSTAcount(r, labels, d.UserNumSta, d.GuestNumSta)
|
||||||
r.sendone(u.Device.Info, gauge, 1.0, append(labels, infoLabels...))
|
r.send([]*metric{
|
||||||
|
{u.Device.Info, gauge, 1.0, append(labels, infoLabels...)},
|
||||||
|
{u.Device.Uptime, gauge, d.Uptime, labels},
|
||||||
|
})
|
||||||
// Switch System Data.
|
// Switch System Data.
|
||||||
if d.HasTemperature.Val {
|
if d.HasTemperature.Val {
|
||||||
r.sendone(u.Device.Temperature, gauge, d.GeneralTemperature, labels)
|
r.send([]*metric{{u.Device.Temperature, gauge, d.GeneralTemperature, labels}})
|
||||||
}
|
}
|
||||||
if d.HasFan.Val {
|
if d.HasFan.Val {
|
||||||
r.sendone(u.Device.FanLevel, gauge, d.FanLevel, labels)
|
r.send([]*metric{{u.Device.FanLevel, gauge, d.FanLevel, labels}})
|
||||||
}
|
}
|
||||||
if d.TotalMaxPower.Txt != "" {
|
if d.TotalMaxPower.Txt != "" {
|
||||||
r.sendone(u.Device.TotalMaxPower, gauge, d.TotalMaxPower, labels)
|
r.send([]*metric{{u.Device.TotalMaxPower, gauge, d.TotalMaxPower, labels}})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue