diff options
author | 2018-11-01 15:56:00 -0400 | |
---|---|---|
committer | 2018-11-01 19:56:00 +0000 | |
commit | 05204ef14253de13c18b8442c2b04dd03345d98b (patch) | |
tree | 1050182126f5c9288e59aeb8aa7275a47935bdea /plugin/metrics/setup.go | |
parent | f5aa6cac67d65357dfa81f39f3ef33e57a376795 (diff) | |
download | coredns-05204ef14253de13c18b8442c2b04dd03345d98b.tar.gz coredns-05204ef14253de13c18b8442c2b04dd03345d98b.tar.zst coredns-05204ef14253de13c18b8442c2b04dd03345d98b.zip |
Metrics registered on wrong prometheus registry (#2246)
* - UT on metrics verifying that all plugins of all blocs have their metrics collectors declared
* - fix error msg
* - redirect Registry of metric to the one that handle the listener
- allow duplicate of metrics collector on the same Registry (case of same plugin in 2 blocs listening metrics on the same address)
* - fix change of signature
* - ensure cleaning metrics before starting the test (metrics collectors are global vars .. and re-used by several tests)
* - I think I fixed this test. Ensure correct mn of hits and clean metrics before test.
* - fix typo in error msg - proposed at review
* - fix typo in comment
* - remove ResetMetrics functions
- change a way to test the numeric metrics : get the diff between begin and end of test
* - oops. removing debug logs
Diffstat (limited to 'plugin/metrics/setup.go')
-rw-r--r-- | plugin/metrics/setup.go | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/plugin/metrics/setup.go b/plugin/metrics/setup.go index c00f44a83..ffc0466f3 100644 --- a/plugin/metrics/setup.go +++ b/plugin/metrics/setup.go @@ -31,6 +31,13 @@ func setup(c *caddy.Controller) error { return plugin.Error("prometheus", err) } + // register the metrics to its address (ensure only one active metrics per address) + obj := uniqAddr.Set(m.Addr, m.OnStartup, m) + //propagate the real active Registry to current metrics + if om, ok := obj.(*Metrics); ok { + m.Reg = om.Reg + } + dnsserver.GetConfig(c).AddPlugin(func(next plugin.Handler) plugin.Handler { m.Next = next return m @@ -55,10 +62,6 @@ func setup(c *caddy.Controller) error { func prometheusParse(c *caddy.Controller) (*Metrics, error) { var met = New(defaultAddr) - defer func() { - uniqAddr.Set(met.Addr, met.OnStartup) - }() - i := 0 for c.Next() { if i > 0 { |