mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-06 02:34:03 +00:00
Merge pull request #103799 from jyz0309/add-metric
Create new metric which conform to our naming conventions
This commit is contained in:
commit
58617e1619
@ -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()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user