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},
|
||||
})
|
||||
}
|
||||
r.sendone(u.Client.Info, gauge, c.Uptime, labelW)
|
||||
r.send([]*metric{{u.Client.Info, gauge, c.Uptime, labelW}})
|
||||
/* needs more "looking into"
|
||||
{u.Client.DpiStatsApp, gauge, c.DpiStats.App, labels},
|
||||
{u.Client.DpiStatsCat, gauge, c.DpiStats.Cat, labels},
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@ type report interface {
|
|||
add()
|
||||
done()
|
||||
send([]*metric)
|
||||
sendone(*prometheus.Desc, prometheus.ValueType, interface{}, []string)
|
||||
metrics() *metrics.Metrics
|
||||
report(descs map[*prometheus.Desc]bool)
|
||||
export(m *metric, v float64) prometheus.Metric
|
||||
|
|
@ -34,11 +33,6 @@ func (r *Report) done() {
|
|||
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) {
|
||||
r.wg.Add(one)
|
||||
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.exportSTAcount(r, labels, d.UserNumSta, d.GuestNumSta)
|
||||
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.
|
||||
|
|
|
|||
|
|
@ -7,7 +7,8 @@ import (
|
|||
|
||||
// These are shared by all four device types: UDM, UAP, USG, USW
|
||||
type unifiDevice struct {
|
||||
Info *prometheus.Desc // uptime
|
||||
Info *prometheus.Desc
|
||||
Uptime *prometheus.Desc
|
||||
Temperature *prometheus.Desc // sw only
|
||||
TotalMaxPower *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"}
|
||||
return &unifiDevice{
|
||||
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),
|
||||
TotalMaxPower: prometheus.NewDesc(ns+"max_power_total", "Total Max Power", 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.exportUSGstats(r, labels, d.Stat.Gw, d.SpeedtestStatus, d.Uplink)
|
||||
// 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
|
||||
if d.Stat.Ap != nil && d.VapTable != nil {
|
||||
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.exportUSGstats(r, labels, d.Stat.Gw, d.SpeedtestStatus, d.Uplink)
|
||||
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
|
||||
|
|
|
|||
|
|
@ -98,16 +98,19 @@ func (u *promUnifi) exportUSW(r report, d *unifi.USW) {
|
|||
u.exportBYTstats(r, labels, d.TxBytes, d.RxBytes)
|
||||
u.exportSYSstats(r, labels, d.SysStats, d.SystemStats)
|
||||
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.
|
||||
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 {
|
||||
r.sendone(u.Device.FanLevel, gauge, d.FanLevel, labels)
|
||||
r.send([]*metric{{u.Device.FanLevel, gauge, d.FanLevel, labels}})
|
||||
}
|
||||
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