aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2017-12-27 14:14:53 +0000
committerGravatar GitHub <noreply@github.com> 2017-12-27 14:14:53 +0000
commit99047aee9bea3a957e73ef774441ff881967de21 (patch)
treea5c0b2cb55c6aef81c6d97222b086fa38834046e
parentc655589fa3b33a28306fd501d3001374af60f9cd (diff)
downloadcoredns-99047aee9bea3a957e73ef774441ff881967de21.tar.gz
coredns-99047aee9bea3a957e73ef774441ff881967de21.tar.zst
coredns-99047aee9bea3a957e73ef774441ff881967de21.zip
plugin/metrics: convience MustRegister function (#1332)
This leave most of the code intact, but we need to stop vendoring prometheus, because, again, plugins what want to use it. Not vendoring prometheus makes my forward metrics show up again. Code looks bit convoluted, but works: ~~~ c.OnStartup(func() error { once.Do(func() { m := dnsserver.GetConfig(c).Handler("prometheus") if m == nil { return } if x, ok := m.(*metrics.Metrics); ok { x.MustRegister(RequestCount) x.MustRegister(RcodeCount) x.MustRegister(RequestDuration) x.MustRegister(HealthcheckFailureCount) x.MustRegister(SocketGauge) } }) }) ~~~
-rw-r--r--plugin/metrics/metrics.go21
1 files changed, 12 insertions, 9 deletions
diff --git a/plugin/metrics/metrics.go b/plugin/metrics/metrics.go
index a2ded2235..70f82a664 100644
--- a/plugin/metrics/metrics.go
+++ b/plugin/metrics/metrics.go
@@ -35,20 +35,23 @@ func New(addr string) *Metrics {
zoneMap: make(map[string]bool),
}
// Add the default collectors
- met.Reg.MustRegister(prometheus.NewGoCollector())
- met.Reg.MustRegister(prometheus.NewProcessCollector(os.Getpid(), ""))
+ met.MustRegister(prometheus.NewGoCollector())
+ met.MustRegister(prometheus.NewProcessCollector(os.Getpid(), ""))
// Add all of our collectors
- met.Reg.MustRegister(vars.RequestCount)
- met.Reg.MustRegister(vars.RequestDuration)
- met.Reg.MustRegister(vars.RequestSize)
- met.Reg.MustRegister(vars.RequestDo)
- met.Reg.MustRegister(vars.RequestType)
- met.Reg.MustRegister(vars.ResponseSize)
- met.Reg.MustRegister(vars.ResponseRcode)
+ met.MustRegister(vars.RequestCount)
+ met.MustRegister(vars.RequestDuration)
+ met.MustRegister(vars.RequestSize)
+ met.MustRegister(vars.RequestDo)
+ met.MustRegister(vars.RequestType)
+ met.MustRegister(vars.ResponseSize)
+ met.MustRegister(vars.ResponseRcode)
return met
}
+// MustRegister wraps m.Reg.MustRegister.
+func (m *Metrics) MustRegister(c prometheus.Collector) { m.Reg.MustRegister(c) }
+
// AddZone adds zone z to m.
func (m *Metrics) AddZone(z string) {
m.zoneMu.Lock()