From 605ce2d0ca592ae54906de9c13a14070e5942e63 Mon Sep 17 00:00:00 2001 From: Holger Obermaier <40787752+ho-ob@users.noreply.github.com> Date: Thu, 10 Mar 2022 20:11:43 +0100 Subject: [PATCH] Refactor: Consolidate data structures --- collectors/netstatMetric.go | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/collectors/netstatMetric.go b/collectors/netstatMetric.go index 24d2c49..c60bdd0 100644 --- a/collectors/netstatMetric.go +++ b/collectors/netstatMetric.go @@ -22,7 +22,9 @@ type NetstatCollectorConfig struct { } type NetstatCollectorMetric struct { + name string index int + devtags map[string]string lastValue float64 } @@ -30,7 +32,6 @@ type NetstatCollector struct { metricCollector config NetstatCollectorConfig matches map[string]map[string]NetstatCollectorMetric - devtags map[string]map[string]string lastTimestamp time.Time } @@ -42,7 +43,6 @@ func (m *NetstatCollector) Init(config json.RawMessage) error { "source": m.name, "group": "Network", } - m.devtags = make(map[string]map[string]string) const ( fieldInterface = iota @@ -113,17 +113,18 @@ func (m *NetstatCollector) Init(config json.RawMessage) error { m.matches[dev] = make(map[string]NetstatCollectorMetric) for name, idx := range nameIndexMap { m.matches[dev][name] = NetstatCollectorMetric{ + name: name, index: idx, lastValue: 0, + devtags: map[string]string{ + "device": dev, + "type": "node", + }, } } - m.devtags[dev] = map[string]string{ - "device": dev, - "type": "node", - } } } - if len(m.devtags) == 0 { + if len(m.matches) == 0 { return errors.New("no devices to collector metrics found") } m.init = true @@ -169,7 +170,7 @@ func (m *NetstatCollector) Read(interval time.Duration, output chan lp.CCMetric) v, err := strconv.ParseFloat(f[data.index], 64) if err == nil { if m.config.SendAbsoluteValues { - if y, err := lp.New(name, m.devtags[dev], m.meta, map[string]interface{}{"value": v}, now); err == nil { + if y, err := lp.New(name, data.devtags, m.meta, map[string]interface{}{"value": v}, now); err == nil { switch { case strings.Contains(name, "byte"): y.AddMeta("unit", "bytes") @@ -187,7 +188,7 @@ func (m *NetstatCollector) Read(interval time.Duration, output chan lp.CCMetric) value = 0 } data.lastValue = v - if y, err := lp.New(name+"_bw", m.devtags[dev], m.meta, map[string]interface{}{"value": value}, now); err == nil { + if y, err := lp.New(name+"_bw", data.devtags, m.meta, map[string]interface{}{"value": value}, now); err == nil { switch { case strings.Contains(name, "byte"): y.AddMeta("unit", "bytes/sec")