diff options
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 { |