mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-30 17:53:21 -04:00 
			
		
		
		
	middleware/proxy: add request duration monitoring (#362)
Add a separate request duration metrics specially for proxying requests upstream. Fixes #259
This commit is contained in:
		
							
								
								
									
										32
									
								
								middleware/proxy/metrics.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								middleware/proxy/metrics.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,32 @@ | ||||
| package proxy | ||||
|  | ||||
| import ( | ||||
| 	"sync" | ||||
|  | ||||
| 	"github.com/miekg/coredns/middleware" | ||||
|  | ||||
| 	"github.com/prometheus/client_golang/prometheus" | ||||
| ) | ||||
|  | ||||
| // Metrics the proxy middleware exports. | ||||
| var ( | ||||
| 	RequestDuration = prometheus.NewHistogramVec(prometheus.HistogramOpts{ | ||||
| 		Namespace: middleware.Namespace, | ||||
| 		Subsystem: subsystem, | ||||
| 		Name:      "request_duration_milliseconds", | ||||
| 		Buckets:   append(prometheus.DefBuckets, []float64{50, 100, 200, 500, 1000, 2000, 3000, 4000, 5000, 10000}...), | ||||
| 		Help:      "Histogram of the time (in milliseconds) each request took.", | ||||
| 	}, []string{"zone"}) | ||||
| ) | ||||
|  | ||||
| // OnStartup sets up the metrics on startup. | ||||
| func OnStartup() error { | ||||
| 	metricsOnce.Do(func() { | ||||
| 		prometheus.MustRegister(RequestDuration) | ||||
| 	}) | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| var metricsOnce sync.Once | ||||
|  | ||||
| const subsystem = "proxy" | ||||
		Reference in New Issue
	
	Block a user