mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-31 02:03:20 -04:00 
			
		
		
		
	| @@ -91,6 +91,13 @@ What metrics should we do? If any? Number of clusters? Number of endpoints and h | ||||
| This plugin report readiness to the ready plugin. This will happen after a gRPC stream has been | ||||
| established to the control plane. | ||||
|  | ||||
| ## Metrics | ||||
|  | ||||
| If monitoring is enabled (via the *prometheus* plugin) then the following metric are exported: | ||||
|  | ||||
| * `coredns_traffic_clusters_tracked{}` the number of tracked clusters. | ||||
|  | ||||
|  | ||||
| ## Examples | ||||
|  | ||||
| ~~~ | ||||
| @@ -123,7 +130,6 @@ is not implemented. | ||||
|  | ||||
| ## TODO | ||||
|  | ||||
| * metrics? | ||||
| * credentials (other than TLS) - how/what? | ||||
| * is the protocol correctly implemented? Should we not have a 10s tick, but wait for responses from | ||||
|   the control plane? | ||||
|   | ||||
| @@ -9,6 +9,7 @@ import ( | ||||
|  | ||||
| 	"github.com/coredns/coredns/core/dnsserver" | ||||
| 	"github.com/coredns/coredns/plugin" | ||||
| 	"github.com/coredns/coredns/plugin/metrics" | ||||
| 	clog "github.com/coredns/coredns/plugin/pkg/log" | ||||
| 	"github.com/coredns/coredns/plugin/pkg/parse" | ||||
| 	pkgtls "github.com/coredns/coredns/plugin/pkg/tls" | ||||
| @@ -38,6 +39,7 @@ func setup(c *caddy.Controller) error { | ||||
|  | ||||
| 	c.OnStartup(func() error { | ||||
| 		go t.c.Run() | ||||
| 		metrics.MustRegister(c, xds.ClusterGauge) | ||||
| 		return nil | ||||
| 	}) | ||||
| 	c.OnShutdown(func() error { return t.c.Stop() }) | ||||
|   | ||||
| @@ -191,6 +191,7 @@ func (c *Client) receive(stream adsStream) error { | ||||
| 				a.SetClusterLoadAssignment(cluster.GetName(), nil) | ||||
| 			} | ||||
| 			log.Debugf("Cluster discovery processed with %d resources, version %q and nonce %q", len(resp.GetResources()), c.Version(cdsURL), c.Nonce(cdsURL)) | ||||
| 			ClusterGauge.WithLabelValues().Set(float64(len(resp.GetResources()))) | ||||
| 			// set our local administration and ack the reply. Empty version would signal NACK. | ||||
| 			c.SetNonce(cdsURL, resp.GetNonce()) | ||||
| 			c.SetVersion(cdsURL, resp.GetVersionInfo()) | ||||
|   | ||||
							
								
								
									
										17
									
								
								plugin/traffic/xds/metrics.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								plugin/traffic/xds/metrics.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| package xds | ||||
|  | ||||
| import ( | ||||
| 	"github.com/coredns/coredns/plugin" | ||||
|  | ||||
| 	"github.com/prometheus/client_golang/prometheus" | ||||
| ) | ||||
|  | ||||
| var ( | ||||
| 	// ClusterGauge is the number of clusters we are currently tracking. | ||||
| 	ClusterGauge = prometheus.NewGaugeVec(prometheus.GaugeOpts{ | ||||
| 		Namespace: plugin.Namespace, | ||||
| 		Subsystem: "traffic", | ||||
| 		Name:      "clusters_tracked", | ||||
| 		Help:      "Gauge of tracked clusters.", | ||||
| 	}, []string{""}) | ||||
| ) | ||||
		Reference in New Issue
	
	Block a user