diff --git a/.gitignore b/.gitignore index 913e8eb4..2c836bd0 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ /*.1.gz /*.1 /vendor +.DS_Store +*~ diff --git a/cmd/unifi-poller/main.go b/cmd/unifi-poller/main.go index cdfa86af..d5c92f40 100644 --- a/cmd/unifi-poller/main.go +++ b/cmd/unifi-poller/main.go @@ -102,10 +102,10 @@ func (c *Config) PollUnifiController(infdb influx.Client, unifi *unidev.AuthedRe } for _, asset := range append(clients, devices...) { - if pt, errr := asset.Point(); errr != nil { - log.Println("asset.Point():", errr) + if pt, errr := asset.Points(); errr != nil { + log.Println("asset.Points():", errr) } else { - bp.AddPoint(pt) + bp.AddPoints(pt) } } diff --git a/unidev/clients.go b/unidev/clients.go index 3e58af58..d156d0c8 100644 --- a/unidev/clients.go +++ b/unidev/clients.go @@ -7,8 +7,8 @@ import ( influx "github.com/influxdata/influxdb/client/v2" ) -// Point generates a client's datapoint for InfluxDB. -func (u UCL) Point() (*influx.Point, error) { +// Points generates a client's datapoints for InfluxDB. +func (u UCL) Points() (points []*influx.Point, err error) { if u.Name == "" && u.Hostname != "" { u.Name = u.Hostname } else if u.Hostname == "" && u.Name != "" { @@ -95,6 +95,6 @@ func (u UCL) Point() (*influx.Point, error) { "wired-tx_bytes-r": u.WiredTxBytesR, "wired-tx_packets": u.WiredTxPackets, } - - return influx.NewPoint("clients", tags, fields, time.Now()) + points[0], err = influx.NewPoint("clients", tags, fields, time.Now()) + return } diff --git a/unidev/uap.go b/unidev/uap.go index 9e2847c1..2e800c55 100644 --- a/unidev/uap.go +++ b/unidev/uap.go @@ -7,8 +7,8 @@ import ( influx "github.com/influxdata/influxdb/client/v2" ) -// Point generates a device's datapoint for InfluxDB. -func (u UAP) Point() (*influx.Point, error) { +// Points generates a device's datapoints for InfluxDB. +func (u UAP) Points() (points []*influx.Point, err error) { tags := map[string]string{ "id": u.ID, "mac": u.Mac, @@ -165,5 +165,6 @@ func (u UAP) Point() (*influx.Point, error) { "stat_wifi1-tx_packets": u.Stat.Wifi1TxPackets, "stat_wifi1-tx_retries": u.Stat.Wifi1TxRetries, } - return influx.NewPoint("uap", tags, fields, time.Now()) + points[0], err = influx.NewPoint("uap", tags, fields, time.Now()) + return } diff --git a/unidev/unidev.go b/unidev/unidev.go index 324ab329..5f532fe2 100644 --- a/unidev/unidev.go +++ b/unidev/unidev.go @@ -15,7 +15,7 @@ const LoginPath = "/api/login" // Asset provides a common interface to retreive metrics from a device or client. type Asset interface { // Point() means this is useful to influxdb.. - Point() (*influx.Point, error) + Points() ([]*influx.Point, error) // Add more methods to achieve more usefulness from this library. } diff --git a/unidev/usg.go b/unidev/usg.go index dbad1a6c..548635ed 100644 --- a/unidev/usg.go +++ b/unidev/usg.go @@ -7,8 +7,8 @@ import ( influx "github.com/influxdata/influxdb/client/v2" ) -// Point generates a device's datapoint for InfluxDB. -func (u USG) Point() (*influx.Point, error) { +// Points generates a device's datapoints for InfluxDB. +func (u USG) Points() (points []*influx.Point, err error) { tags := map[string]string{ "id": u.ID, "mac": u.Mac, @@ -117,5 +117,6 @@ func (u USG) Point() (*influx.Point, error) { "wan-tx_bytes": u.Stat.WanTxBytes, "wan-tx_packets": u.Stat.WanTxPackets, } - return influx.NewPoint("usg", tags, fields, time.Now()) + points[0], err = influx.NewPoint("usg", tags, fields, time.Now()) + return } diff --git a/unidev/usw.go b/unidev/usw.go index 215bbc43..c6ef9f2a 100644 --- a/unidev/usw.go +++ b/unidev/usw.go @@ -7,8 +7,8 @@ import ( influx "github.com/influxdata/influxdb/client/v2" ) -// Point generates a device's datapoint for InfluxDB. -func (u USW) Point() (*influx.Point, error) { +// Points generates a device's datapoints for InfluxDB. +func (u USW) Points() (points []*influx.Point, err error) { tags := map[string]string{ "id": u.ID, "mac": u.Mac, @@ -109,5 +109,6 @@ func (u USW) Point() (*influx.Point, error) { "stat_tx_retries": u.Stat.TxRetries, // Add the port stats too. } - return influx.NewPoint("usw", tags, fields, time.Now()) + points[0], err = influx.NewPoint("usw", tags, fields, time.Now()) + return }