outposts: make metrics compliant with Prometheus best-practices (#6398)
web/outpost: make metrics compliant with Prometheus best-practices Today, all NewHistogramVec store values in nanoseconds without changing the default histogram bucket, which are made for seconds, making them a bit useless. In addition, some metrics names are not self-explanatoryand and do not comply with Prometheus best practices. This commit tries to fix all of this "issues". NOTE: I kept old metrics in order to avoid breaking changes with existing dashboards and metrics. Signed-off-by: Alexandre NICOLAIE <xunleii@users.noreply.github.com>
This commit is contained in:
		 Alexandre NICOLAIE
					Alexandre NICOLAIE
				
			
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			 GitHub
						GitHub
					
				
			
						parent
						
							5347dd7022
						
					
				
				
					commit
					a2714ab1f1
				
			| @ -19,25 +19,37 @@ import ( | ||||
| func (ps *ProxyServer) HandlePing(rw http.ResponseWriter, r *http.Request) { | ||||
| 	before := time.Now() | ||||
| 	rw.WriteHeader(204) | ||||
| 	after := time.Since(before) | ||||
| 	elapsed := time.Since(before) | ||||
| 	metrics.Requests.With(prometheus.Labels{ | ||||
| 		"outpost_name": ps.akAPI.Outpost.Name, | ||||
| 		"method":       r.Method, | ||||
| 		"host":         web.GetHost(r), | ||||
| 		"type":         "ping", | ||||
| 	}).Observe(float64(after)) | ||||
| 	}).Observe(float64(elapsed) / float64(time.Second)) | ||||
| 	metrics.RequestsLegacy.With(prometheus.Labels{ | ||||
| 		"outpost_name": ps.akAPI.Outpost.Name, | ||||
| 		"method":       r.Method, | ||||
| 		"host":         web.GetHost(r), | ||||
| 		"type":         "ping", | ||||
| 	}).Observe(float64(elapsed)) | ||||
| } | ||||
|  | ||||
| func (ps *ProxyServer) HandleStatic(rw http.ResponseWriter, r *http.Request) { | ||||
| 	before := time.Now() | ||||
| 	web.DisableIndex(http.StripPrefix("/outpost.goauthentik.io/static/dist", staticWeb.StaticHandler)).ServeHTTP(rw, r) | ||||
| 	after := time.Since(before) | ||||
| 	elapsed := time.Since(before) | ||||
| 	metrics.Requests.With(prometheus.Labels{ | ||||
| 		"outpost_name": ps.akAPI.Outpost.Name, | ||||
| 		"method":       r.Method, | ||||
| 		"host":         web.GetHost(r), | ||||
| 		"type":         "static", | ||||
| 	}).Observe(float64(after)) | ||||
| 	}).Observe(float64(elapsed) / float64(time.Second)) | ||||
| 	metrics.RequestsLegacy.With(prometheus.Labels{ | ||||
| 		"outpost_name": ps.akAPI.Outpost.Name, | ||||
| 		"method":       r.Method, | ||||
| 		"host":         web.GetHost(r), | ||||
| 		"type":         "static", | ||||
| 	}).Observe(float64(elapsed)) | ||||
| } | ||||
|  | ||||
| func (ps *ProxyServer) lookupApp(r *http.Request) (*application.Application, string) { | ||||
|  | ||||
		Reference in New Issue
	
	Block a user