Add device names to clients.
This commit is contained in:
parent
ace4d5f3f9
commit
42afb96608
|
|
@ -10,12 +10,12 @@
|
|||
version = "v0.3.1"
|
||||
|
||||
[[projects]]
|
||||
digest = "1:7a6d857bd263ca56a403bfd8a4466b2cb01510e5177c7a16e3f87e084deecca7"
|
||||
digest = "1:b148ed25622a093e995956ed755bbfc0dd9907ced48946c3b04ca38fc69319e0"
|
||||
name = "github.com/golift/unifi"
|
||||
packages = ["."]
|
||||
pruneopts = "UT"
|
||||
revision = "4648720c158a153924d1717f7f74736aa42a8ecb"
|
||||
version = "v2.1.4"
|
||||
revision = "af72953b15407ea795c955ddd503c75ee25c9d47"
|
||||
version = "v2.1.5"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
|
|
|
|||
|
|
@ -66,6 +66,9 @@ func (u *UnifiPoller) CollectAndReport() error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if err := u.AugmentMetrics(metrics); err != nil {
|
||||
return err
|
||||
}
|
||||
err = u.ReportMetrics(metrics)
|
||||
u.LogError(err, "reporting metrics")
|
||||
return err
|
||||
|
|
@ -90,6 +93,29 @@ func (u *UnifiPoller) CollectMetrics() (*Metrics, error) {
|
|||
return m, err
|
||||
}
|
||||
|
||||
// AugmentMetrics is our middleware layer between collecting metrics and writing them.
|
||||
// This is where we can manipuate the returned data or make arbitrary decisions.
|
||||
// This function currently adds parent device names to client metrics.
|
||||
func (u *UnifiPoller) AugmentMetrics(metrics *Metrics) error {
|
||||
devices := make(map[string]string)
|
||||
for _, r := range metrics.UAPs {
|
||||
devices[r.Mac] = r.Name
|
||||
}
|
||||
for _, r := range metrics.USGs {
|
||||
devices[r.Mac] = r.Name
|
||||
}
|
||||
for _, r := range metrics.USWs {
|
||||
devices[r.Mac] = r.Name
|
||||
}
|
||||
// These come blank, so set them here.
|
||||
for i, c := range metrics.Clients {
|
||||
metrics.Clients[i].SwName = devices[c.SwMac]
|
||||
metrics.Clients[i].ApName = devices[c.ApMac]
|
||||
metrics.Clients[i].GwName = devices[c.GwMac]
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// ReportMetrics batches all the metrics and writes them to InfluxDB.
|
||||
// Returns an error if the write to influx fails.
|
||||
func (u *UnifiPoller) ReportMetrics(metrics *Metrics) error {
|
||||
|
|
|
|||
Loading…
Reference in New Issue