From c1c24f645c872f9b85d3f5db18e8b32caec96588 Mon Sep 17 00:00:00 2001 From: Filip Grzadkowski Date: Tue, 28 Apr 2015 14:27:18 +0200 Subject: [PATCH] Add summary metrics to apiserver for easier debugging and future use in performance tests --- pkg/apiserver/apiserver.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkg/apiserver/apiserver.go b/pkg/apiserver/apiserver.go index 02a7d2147e6..8defae30ecd 100644 --- a/pkg/apiserver/apiserver.go +++ b/pkg/apiserver/apiserver.go @@ -65,11 +65,19 @@ var ( }, []string{"verb", "resource", "client"}, ) + requestLatenciesSummary = prometheus.NewSummaryVec( + prometheus.SummaryOpts{ + Name: "apiserver_request_latencies_summary", + Help: "Response latency summary in microseconds for each verb and resource.", + }, + []string{"verb", "resource"}, + ) ) func init() { prometheus.MustRegister(requestCounter) prometheus.MustRegister(requestLatencies) + prometheus.MustRegister(requestLatenciesSummary) } // monitor is a helper function for each HTTP request handler to use for @@ -77,6 +85,7 @@ func init() { func monitor(verb, resource *string, client string, httpCode *int, reqStart time.Time) { requestCounter.WithLabelValues(*verb, *resource, client, strconv.Itoa(*httpCode)).Inc() requestLatencies.WithLabelValues(*verb, *resource, client).Observe(float64((time.Since(reqStart)) / time.Microsecond)) + requestLatenciesSummary.WithLabelValues(*verb, *resource).Observe(float64((time.Since(reqStart)) / time.Microsecond)) } // monitorFilter creates a filter that reports the metrics for a given resource and action.