mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-31 02:03:20 -04:00 
			
		
		
		
	plugin/autopath: per server metrics (#1730)
Implement per server metrics in autopath; also don't export the metric. Updated readme as well.
This commit is contained in:
		
				
					committed by
					
						 Chris O'Haver
						Chris O'Haver
					
				
			
			
				
	
			
			
			
						parent
						
							d3f2d4a291
						
					
				
				
					commit
					5c3e436d71
				
			| @@ -29,7 +29,9 @@ If a plugin implements the `AutoPather` interface then it can be used. | ||||
|  | ||||
| If monitoring is enabled (via the *prometheus* directive) then the following metric is exported: | ||||
|  | ||||
| * `coredns_autopath_success_count_total{}` - counter of successfully autopath-ed queries. | ||||
| * `coredns_autopath_success_count_total{server}` - counter of successfully autopath-ed queries. | ||||
|  | ||||
| The `server` label is explained in the *metrics* plugin documentation. | ||||
|  | ||||
| ## Examples | ||||
|  | ||||
|   | ||||
| @@ -35,6 +35,7 @@ import ( | ||||
| 	"context" | ||||
|  | ||||
| 	"github.com/coredns/coredns/plugin" | ||||
| 	"github.com/coredns/coredns/plugin/metrics" | ||||
| 	"github.com/coredns/coredns/plugin/pkg/dnsutil" | ||||
| 	"github.com/coredns/coredns/plugin/pkg/nonwriter" | ||||
| 	"github.com/coredns/coredns/request" | ||||
| @@ -132,7 +133,7 @@ func (a *AutoPath) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Ms | ||||
|  | ||||
| 		// Write whatever non-nxdomain answer we've found. | ||||
| 		w.WriteMsg(msg) | ||||
| 		AutoPathCount.WithLabelValues().Add(1) | ||||
| 		autoPathCount.WithLabelValues(metrics.WithServer(ctx)).Add(1) | ||||
| 		return rcode, err | ||||
|  | ||||
| 	} | ||||
|   | ||||
| @@ -8,14 +8,13 @@ import ( | ||||
| 	"github.com/prometheus/client_golang/prometheus" | ||||
| ) | ||||
|  | ||||
| // Metrics for autopath. | ||||
| var ( | ||||
| 	AutoPathCount = prometheus.NewCounterVec(prometheus.CounterOpts{ | ||||
| 	autoPathCount = prometheus.NewCounterVec(prometheus.CounterOpts{ | ||||
| 		Namespace: plugin.Namespace, | ||||
| 		Subsystem: "autopath", | ||||
| 		Name:      "success_count_total", | ||||
| 		Help:      "Counter of requests that did autopath.", | ||||
| 	}, []string{}) | ||||
| 	}, []string{"server"}) | ||||
| ) | ||||
|  | ||||
| var once sync.Once | ||||
|   | ||||
| @@ -26,7 +26,7 @@ func setup(c *caddy.Controller) error { | ||||
| 	} | ||||
|  | ||||
| 	c.OnStartup(func() error { | ||||
| 		once.Do(func() { metrics.MustRegister(c, AutoPathCount) }) | ||||
| 		once.Do(func() { metrics.MustRegister(c, autoPathCount) }) | ||||
| 		return nil | ||||
| 	}) | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user