mirror of
				https://github.com/coredns/coredns.git
				synced 2025-11-03 18:53:13 -05:00 
			
		
		
		
	This registers the Collectors iff the metrics plugin has been loaded. Safes a bunch of code in each and every plugin's setup code.
		
			
				
	
	
		
			24 lines
		
	
	
		
			481 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			481 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package metrics
 | 
						|
 | 
						|
import (
 | 
						|
	"github.com/coredns/coredns/core/dnsserver"
 | 
						|
 | 
						|
	"github.com/mholt/caddy"
 | 
						|
	"github.com/prometheus/client_golang/prometheus"
 | 
						|
)
 | 
						|
 | 
						|
// MustRegister registers the prometheus Collectors when the metrics middleware is used.
 | 
						|
func MustRegister(c *caddy.Controller, cs ...prometheus.Collector) {
 | 
						|
	m := dnsserver.GetConfig(c).Handler("prometheus")
 | 
						|
	if m == nil {
 | 
						|
		return
 | 
						|
	}
 | 
						|
	x, ok := m.(*Metrics)
 | 
						|
	if !ok {
 | 
						|
		return
 | 
						|
	}
 | 
						|
	for _, c := range cs {
 | 
						|
		x.MustRegister(c)
 | 
						|
	}
 | 
						|
}
 |