From c8f3b79de529b85b4910157f2cafbc25349ad8de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20=C5=A0trop?= Date: Sat, 20 Mar 2021 02:59:33 +0100 Subject: fix(metrics): remove statsProvider from metrics collectors sync.Map MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: David Štrop --- plugins/metrics/plugin.go | 36 +++++++++++++++--------------------- 1 file changed, 15 insertions(+), 21 deletions(-) (limited to 'plugins') diff --git a/plugins/metrics/plugin.go b/plugins/metrics/plugin.go index fefe92bd..651a2475 100644 --- a/plugins/metrics/plugin.go +++ b/plugins/metrics/plugin.go @@ -23,11 +23,6 @@ const ( maxHeaderSize = 1024 * 1024 * 100 // 104MB ) -type statsProvider struct { - collectors []prometheus.Collector - name string -} - // Plugin to manage application metrics using Prometheus. type Plugin struct { cfg *Config @@ -74,16 +69,14 @@ func (m *Plugin) Init(cfg config.Configurer, log logger.Logger) error { // Register invocation will be later in the Serve method for k, v := range collectors { - m.collectors.Store(k, statsProvider{ - collectors: []prometheus.Collector{v}, - name: k, - }) + m.collectors.Store(k, v) } return nil } // Register new prometheus collector. -func (m *Plugin) Register(c prometheus.Collector) error { +func (m *Plugin) Register(c +) error { return m.registry.Register(c) } @@ -92,13 +85,11 @@ func (m *Plugin) Serve() chan error { errCh := make(chan error, 1) m.collectors.Range(func(key, value interface{}) bool { // key - name - // value - statsProvider struct - c := value.(statsProvider) - for _, v := range c.collectors { - if err := m.registry.Register(v); err != nil { - errCh <- err - return false - } + // value - prometheus.Collector + c := value.(prometheus.Collector) + if err := m.registry.Register(c); err != nil { + errCh <- err + return false } return true @@ -211,10 +202,13 @@ func (m *Plugin) Collects() []interface{} { // Collector returns application specific collector by name or nil if collector not found. func (m *Plugin) AddStatProvider(name endure.Named, stat StatProvider) error { - m.collectors.Store(name.Name(), statsProvider{ - collectors: stat.MetricsCollector(), - name: name.Name(), - }) + for _, c := range stat.MetricsCollector() { + err := m.registry.Register(c) + if err != nil { + return err + } + } + return nil } -- cgit v1.2.3 From fdd1585b4f9423933b380aba0d0950ce7abfcb49 Mon Sep 17 00:00:00 2001 From: Valery Piashchynski Date: Sat, 20 Mar 2021 10:02:27 +0300 Subject: - Fix CI in the PR - Fix type in the metrics plugin Register method --- plugins/metrics/plugin.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'plugins') diff --git a/plugins/metrics/plugin.go b/plugins/metrics/plugin.go index 651a2475..efcbfc50 100644 --- a/plugins/metrics/plugin.go +++ b/plugins/metrics/plugin.go @@ -75,8 +75,7 @@ func (m *Plugin) Init(cfg config.Configurer, log logger.Logger) error { } // Register new prometheus collector. -func (m *Plugin) Register(c -) error { +func (m *Plugin) Register(c prometheus.Collector) error { return m.registry.Register(c) } -- cgit v1.2.3