Commit 99047aee authored by Miek Gieben's avatar Miek Gieben Committed by GitHub

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)
			}
		})
	})
~~~
parent c655589f
...@@ -35,20 +35,23 @@ func New(addr string) *Metrics { ...@@ -35,20 +35,23 @@ func New(addr string) *Metrics {
zoneMap: make(map[string]bool), zoneMap: make(map[string]bool),
} }
// Add the default collectors // Add the default collectors
met.Reg.MustRegister(prometheus.NewGoCollector()) met.MustRegister(prometheus.NewGoCollector())
met.Reg.MustRegister(prometheus.NewProcessCollector(os.Getpid(), "")) met.MustRegister(prometheus.NewProcessCollector(os.Getpid(), ""))
// Add all of our collectors // Add all of our collectors
met.Reg.MustRegister(vars.RequestCount) met.MustRegister(vars.RequestCount)
met.Reg.MustRegister(vars.RequestDuration) met.MustRegister(vars.RequestDuration)
met.Reg.MustRegister(vars.RequestSize) met.MustRegister(vars.RequestSize)
met.Reg.MustRegister(vars.RequestDo) met.MustRegister(vars.RequestDo)
met.Reg.MustRegister(vars.RequestType) met.MustRegister(vars.RequestType)
met.Reg.MustRegister(vars.ResponseSize) met.MustRegister(vars.ResponseSize)
met.Reg.MustRegister(vars.ResponseRcode) met.MustRegister(vars.ResponseRcode)
return met return met
} }
// MustRegister wraps m.Reg.MustRegister.
func (m *Metrics) MustRegister(c prometheus.Collector) { m.Reg.MustRegister(c) }
// AddZone adds zone z to m. // AddZone adds zone z to m.
func (m *Metrics) AddZone(z string) { func (m *Metrics) AddZone(z string) {
m.zoneMu.Lock() m.zoneMu.Lock()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment