Merge pull request #105517 from tkashem/apf-metrics

apf: add new label for request_execution_seconds metric
This commit is contained in:
Kubernetes Prow Robot 2021-12-09 09:48:18 -08:00 committed by GitHub
commit cbec2a936b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -23,6 +23,7 @@ import (
"sync" "sync"
"time" "time"
apirequest "k8s.io/apiserver/pkg/endpoints/request"
compbasemetrics "k8s.io/component-base/metrics" compbasemetrics "k8s.io/component-base/metrics"
"k8s.io/component-base/metrics/legacyregistry" "k8s.io/component-base/metrics/legacyregistry"
basemetricstestutil "k8s.io/component-base/metrics/testutil" basemetricstestutil "k8s.io/component-base/metrics/testutil"
@ -287,7 +288,7 @@ var (
Buckets: requestDurationSecondsBuckets, Buckets: requestDurationSecondsBuckets,
StabilityLevel: compbasemetrics.ALPHA, StabilityLevel: compbasemetrics.ALPHA,
}, },
[]string{priorityLevel, flowSchema}, []string{priorityLevel, flowSchema, "type"},
) )
watchCountSamples = compbasemetrics.NewHistogramVec( watchCountSamples = compbasemetrics.NewHistogramVec(
&compbasemetrics.HistogramOpts{ &compbasemetrics.HistogramOpts{
@ -392,7 +393,11 @@ func ObserveWaitingDuration(ctx context.Context, priorityLevel, flowSchema, exec
// ObserveExecutionDuration observes the execution duration for flow control // ObserveExecutionDuration observes the execution duration for flow control
func ObserveExecutionDuration(ctx context.Context, priorityLevel, flowSchema string, executionTime time.Duration) { func ObserveExecutionDuration(ctx context.Context, priorityLevel, flowSchema string, executionTime time.Duration) {
apiserverRequestExecutionSeconds.WithContext(ctx).WithLabelValues(priorityLevel, flowSchema).Observe(executionTime.Seconds()) reqType := "regular"
if requestInfo, ok := apirequest.RequestInfoFrom(ctx); ok && requestInfo.Verb == "watch" {
reqType = requestInfo.Verb
}
apiserverRequestExecutionSeconds.WithContext(ctx).WithLabelValues(priorityLevel, flowSchema, reqType).Observe(executionTime.Seconds())
} }
// ObserveWatchCount notes a sampling of a watch count // ObserveWatchCount notes a sampling of a watch count