From 0a9385924f5082abebd22036d87e2a0c2dc7e6aa Mon Sep 17 00:00:00 2001 From: davidnewhall2 Date: Sat, 13 Jun 2020 20:47:15 -0700 Subject: [PATCH] add udm temperatures --- integrations/influxunifi/go.mod | 2 +- integrations/influxunifi/go.sum | 6 ++++++ integrations/influxunifi/udm.go | 13 ++++++++++++- integrations/influxunifi/usg.go | 4 ++-- 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/integrations/influxunifi/go.mod b/integrations/influxunifi/go.mod index 801dc9cc..77540c42 100644 --- a/integrations/influxunifi/go.mod +++ b/integrations/influxunifi/go.mod @@ -6,6 +6,6 @@ require ( github.com/influxdata/influxdb1-client v0.0.0-20200515024757-02f0bf5dbca3 github.com/pkg/errors v0.9.1 github.com/unifi-poller/poller v0.0.6 - github.com/unifi-poller/unifi v0.0.4 + github.com/unifi-poller/unifi v0.0.5-0.20200614034623-f4c1d18157c2 golift.io/cnfg v0.0.5 ) diff --git a/integrations/influxunifi/go.sum b/integrations/influxunifi/go.sum index 002a8dd4..b10f60da 100644 --- a/integrations/influxunifi/go.sum +++ b/integrations/influxunifi/go.sum @@ -127,6 +127,12 @@ github.com/unifi-poller/unifi v0.0.3 h1:6pmjW7MuEEDKKvYoxjL3EZlaLOgmhYyxJBAg4X7G github.com/unifi-poller/unifi v0.0.3/go.mod h1:DagVD/I+VMnVUHmTT4Fi76lPI+DHbuMwwtMIzanwMxM= github.com/unifi-poller/unifi v0.0.4 h1:NDTxHTdF0MAt1y1RU8J+MSqdYlO0CEIqlrktcj3y/og= github.com/unifi-poller/unifi v0.0.4/go.mod h1:bTUtctrf56aapjKH+L+98eThBaVFbQXw5iNGZI0g/+E= +github.com/unifi-poller/unifi v0.0.5-0.20200614033708-a51badfce839 h1:B3eWCYQdLLKaBTxQASv1VztTp4ZuGbDc0XHOpcgkZ74= +github.com/unifi-poller/unifi v0.0.5-0.20200614033708-a51badfce839/go.mod h1:L1kMRH2buZhB31vZnRC1im7Tk/4uD3ET4biwl2faYy8= +github.com/unifi-poller/unifi v0.0.5-0.20200614034449-3f18c1be228b h1:bpQVeurqplilZ8Rdw+w7mNMmR9v2OkENfytdUngrKHA= +github.com/unifi-poller/unifi v0.0.5-0.20200614034449-3f18c1be228b/go.mod h1:L1kMRH2buZhB31vZnRC1im7Tk/4uD3ET4biwl2faYy8= +github.com/unifi-poller/unifi v0.0.5-0.20200614034623-f4c1d18157c2 h1:iDOUe8UECHQoOyzWIarbGNVdwEth16iiUsw+1UgQ+sw= +github.com/unifi-poller/unifi v0.0.5-0.20200614034623-f4c1d18157c2/go.mod h1:L1kMRH2buZhB31vZnRC1im7Tk/4uD3ET4biwl2faYy8= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= diff --git a/integrations/influxunifi/udm.go b/integrations/influxunifi/udm.go index 5b0ea092..ddfd4aa5 100644 --- a/integrations/influxunifi/udm.go +++ b/integrations/influxunifi/udm.go @@ -32,6 +32,16 @@ func (u *InfluxUnifi) batchSysStats(s unifi.SysStats, ss unifi.SystemStats) map[ } } +func (u *InfluxUnifi) batchUDMtemps(temps []unifi.Temperature) map[string]interface{} { + output := make(map[string]interface{}) + + for _, t := range temps { + output["temp_"+t.Name+"_"+t.Type] = t.Value + } + + return output +} + // batchUDM generates Unifi Gateway datapoints for InfluxDB. // These points can be passed directly to influx. func (u *InfluxUnifi) batchUDM(r report, s *unifi.UDM) { // nolint: funlen @@ -50,7 +60,8 @@ func (u *InfluxUnifi) batchUDM(r report, s *unifi.UDM) { // nolint: funlen "type": s.Type, } fields := Combine( - u.batchUSGstat(s.SpeedtestStatus, s.Stat.Gw, s.Uplink), + u.batchUDMtemps(s.Temperatures), + u.batchUSGstats(s.SpeedtestStatus, s.Stat.Gw, s.Uplink), u.batchSysStats(s.SysStats, s.SystemStats), map[string]interface{}{ "source": s.SourceName, diff --git a/integrations/influxunifi/usg.go b/integrations/influxunifi/usg.go index 462e4d99..a2e9848e 100644 --- a/integrations/influxunifi/usg.go +++ b/integrations/influxunifi/usg.go @@ -23,7 +23,7 @@ func (u *InfluxUnifi) batchUSG(r report, s *unifi.USG) { } fields := Combine( u.batchSysStats(s.SysStats, s.SystemStats), - u.batchUSGstat(s.SpeedtestStatus, s.Stat.Gw, s.Uplink), + u.batchUSGstats(s.SpeedtestStatus, s.Stat.Gw, s.Uplink), map[string]interface{}{ "ip": s.IP, "bytes": s.Bytes.Val, @@ -48,7 +48,7 @@ func (u *InfluxUnifi) batchUSG(r report, s *unifi.USG) { u.batchUSGwans(r, tags, s.Wan1, s.Wan2) } -func (u *InfluxUnifi) batchUSGstat(ss unifi.SpeedtestStatus, gw *unifi.Gw, ul unifi.Uplink) map[string]interface{} { +func (u *InfluxUnifi) batchUSGstats(ss unifi.SpeedtestStatus, gw *unifi.Gw, ul unifi.Uplink) map[string]interface{} { if gw == nil { return map[string]interface{}{} }