Merge pull request #103799 from jyz0309/add-metric

Create new metric which conform to our naming conventions

Kubernetes-commit: 58617e161933277fe362599ce380bebf08cbdacb
This commit is contained in:
Kubernetes Publisher 2021-08-18 09:20:07 -07:00
commit 82482e9a6a
1 changed files with 17 additions and 2 deletions

View File

@ -80,6 +80,14 @@ var (
}, },
[]string{"verb", "dry_run", "group", "version", "resource", "subresource", "scope", "component", "code"}, []string{"verb", "dry_run", "group", "version", "resource", "subresource", "scope", "component", "code"},
) )
longRunningRequestsGauge = compbasemetrics.NewGaugeVec(
&compbasemetrics.GaugeOpts{
Name: "apiserver_longrunning_requests",
Help: "Gauge of all active long-running apiserver requests broken out by verb, group, version, resource, scope and component. Not all requests are tracked this way.",
StabilityLevel: compbasemetrics.ALPHA,
},
[]string{"verb", "group", "version", "resource", "subresource", "scope", "component"},
)
longRunningRequestGauge = compbasemetrics.NewGaugeVec( longRunningRequestGauge = compbasemetrics.NewGaugeVec(
&compbasemetrics.GaugeOpts{ &compbasemetrics.GaugeOpts{
Name: "apiserver_longrunning_gauge", Name: "apiserver_longrunning_gauge",
@ -236,6 +244,7 @@ var (
metrics = []resettableCollector{ metrics = []resettableCollector{
deprecatedRequestGauge, deprecatedRequestGauge,
requestCounter, requestCounter,
longRunningRequestsGauge,
longRunningRequestGauge, longRunningRequestGauge,
requestLatencies, requestLatencies,
responseSizes, responseSizes,
@ -410,7 +419,7 @@ func RecordLongRunning(req *http.Request, requestInfo *request.RequestInfo, comp
if requestInfo == nil { if requestInfo == nil {
requestInfo = &request.RequestInfo{Verb: req.Method, Path: req.URL.Path} requestInfo = &request.RequestInfo{Verb: req.Method, Path: req.URL.Path}
} }
var g compbasemetrics.GaugeMetric var g, e compbasemetrics.GaugeMetric
scope := CleanScope(requestInfo) scope := CleanScope(requestInfo)
// We don't use verb from <requestInfo>, as this may be propagated from // We don't use verb from <requestInfo>, as this may be propagated from
@ -420,12 +429,18 @@ func RecordLongRunning(req *http.Request, requestInfo *request.RequestInfo, comp
reportedVerb := cleanVerb(CanonicalVerb(strings.ToUpper(req.Method), scope), "", req) reportedVerb := cleanVerb(CanonicalVerb(strings.ToUpper(req.Method), scope), "", req)
if requestInfo.IsResourceRequest { if requestInfo.IsResourceRequest {
e = longRunningRequestsGauge.WithContext(req.Context()).WithLabelValues(reportedVerb, requestInfo.APIGroup, requestInfo.APIVersion, requestInfo.Resource, requestInfo.Subresource, scope, component)
g = longRunningRequestGauge.WithContext(req.Context()).WithLabelValues(reportedVerb, requestInfo.APIGroup, requestInfo.APIVersion, requestInfo.Resource, requestInfo.Subresource, scope, component) g = longRunningRequestGauge.WithContext(req.Context()).WithLabelValues(reportedVerb, requestInfo.APIGroup, requestInfo.APIVersion, requestInfo.Resource, requestInfo.Subresource, scope, component)
} else { } else {
e = longRunningRequestsGauge.WithContext(req.Context()).WithLabelValues(reportedVerb, "", "", "", requestInfo.Path, scope, component)
g = longRunningRequestGauge.WithContext(req.Context()).WithLabelValues(reportedVerb, "", "", "", requestInfo.Path, scope, component) g = longRunningRequestGauge.WithContext(req.Context()).WithLabelValues(reportedVerb, "", "", "", requestInfo.Path, scope, component)
} }
e.Inc()
g.Inc() g.Inc()
defer g.Dec() defer func() {
e.Dec()
g.Dec()
}()
fn() fn()
} }