Merge pull request #110516 from MikeSpreitzer/bundle-metrics-registration

Bundle metrics registration into test server creation
This commit is contained in:
Kubernetes Prow Robot 2022-06-14 09:09:46 -07:00 committed by GitHub
commit 9f0be547cd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 6 deletions

View File

@ -29,9 +29,11 @@ import (
"k8s.io/apiserver/pkg/authentication/user" "k8s.io/apiserver/pkg/authentication/user"
apifilters "k8s.io/apiserver/pkg/endpoints/filters" apifilters "k8s.io/apiserver/pkg/endpoints/filters"
apirequest "k8s.io/apiserver/pkg/endpoints/request" apirequest "k8s.io/apiserver/pkg/endpoints/request"
fcmetrics "k8s.io/apiserver/pkg/util/flowcontrol/metrics"
) )
func createMaxInflightServer(callsWg, blockWg *sync.WaitGroup, disableCallsWg *bool, disableCallsWgMutex *sync.Mutex, nonMutating, mutating int) *httptest.Server { func createMaxInflightServer(callsWg, blockWg *sync.WaitGroup, disableCallsWg *bool, disableCallsWgMutex *sync.Mutex, nonMutating, mutating int) *httptest.Server {
fcmetrics.Register()
longRunningRequestCheck := BasicLongRunningRequestCheck(sets.NewString("watch"), sets.NewString("proxy")) longRunningRequestCheck := BasicLongRunningRequestCheck(sets.NewString("watch"), sets.NewString("proxy"))
requestInfoFactory := &apirequest.RequestInfoFactory{APIPrefixes: sets.NewString("apis", "api"), GrouplessAPIPrefixes: sets.NewString("api")} requestInfoFactory := &apirequest.RequestInfoFactory{APIPrefixes: sets.NewString("apis", "api"), GrouplessAPIPrefixes: sets.NewString("api")}

View File

@ -158,6 +158,8 @@ func newApfServerWithHooks(t *testing.T, decision mockDecision, onExecute, postE
} }
func newApfServerWithFilter(t *testing.T, flowControlFilter utilflowcontrol.Interface, onExecute, postExecute func()) *httptest.Server { func newApfServerWithFilter(t *testing.T, flowControlFilter utilflowcontrol.Interface, onExecute, postExecute func()) *httptest.Server {
epmetrics.Register()
fcmetrics.Register()
apfServer := httptest.NewServer(newApfHandlerWithFilter(t, flowControlFilter, onExecute, postExecute)) apfServer := httptest.NewServer(newApfHandlerWithFilter(t, flowControlFilter, onExecute, postExecute))
return apfServer return apfServer
} }
@ -185,8 +187,6 @@ func newApfHandlerWithFilter(t *testing.T, flowControlFilter utilflowcontrol.Int
} }
func TestApfSkipLongRunningRequest(t *testing.T) { func TestApfSkipLongRunningRequest(t *testing.T) {
epmetrics.Register()
server := newApfServerWithSingleRequest(t, decisionSkipFilter) server := newApfServerWithSingleRequest(t, decisionSkipFilter)
defer server.Close() defer server.Close()
@ -202,8 +202,6 @@ func TestApfSkipLongRunningRequest(t *testing.T) {
} }
func TestApfRejectRequest(t *testing.T) { func TestApfRejectRequest(t *testing.T) {
epmetrics.Register()
server := newApfServerWithSingleRequest(t, decisionReject) server := newApfServerWithSingleRequest(t, decisionReject)
defer server.Close() defer server.Close()
@ -355,8 +353,6 @@ func TestApfExecuteMultipleRequests(t *testing.T) {
} }
func TestApfCancelWaitRequest(t *testing.T) { func TestApfCancelWaitRequest(t *testing.T) {
epmetrics.Register()
server := newApfServerWithSingleRequest(t, decisionCancelWait) server := newApfServerWithSingleRequest(t, decisionCancelWait)
defer server.Close() defer server.Close()
@ -536,6 +532,9 @@ func TestApfRejectWatchRequestsWithInitializationSignal(t *testing.T) {
} }
func TestApfWatchPanic(t *testing.T) { func TestApfWatchPanic(t *testing.T) {
epmetrics.Register()
fcmetrics.Register()
fakeFilter := newFakeWatchApfFilter(1) fakeFilter := newFakeWatchApfFilter(1)
onExecuteFunc := func() { onExecuteFunc := func() {
@ -561,6 +560,8 @@ func TestApfWatchPanic(t *testing.T) {
} }
func TestApfWatchHandlePanic(t *testing.T) { func TestApfWatchHandlePanic(t *testing.T) {
epmetrics.Register()
fcmetrics.Register()
preExecutePanicingFilter := newFakeWatchApfFilter(1) preExecutePanicingFilter := newFakeWatchApfFilter(1)
preExecutePanicingFilter.preExecutePanic = true preExecutePanicingFilter.preExecutePanic = true
@ -614,6 +615,8 @@ func TestApfWatchHandlePanic(t *testing.T) {
// Even though in production we are not using httptest.Server, this logic is shared // Even though in production we are not using httptest.Server, this logic is shared
// across these two. // across these two.
func TestContextClosesOnRequestProcessed(t *testing.T) { func TestContextClosesOnRequestProcessed(t *testing.T) {
epmetrics.Register()
fcmetrics.Register()
wg := sync.WaitGroup{} wg := sync.WaitGroup{}
wg.Add(1) wg.Add(1)
handler := func(w http.ResponseWriter, r *http.Request) { handler := func(w http.ResponseWriter, r *http.Request) {
@ -652,6 +655,8 @@ func (f *fakeFilterRequestDigest) Handle(ctx context.Context,
} }
func TestApfWithRequestDigest(t *testing.T) { func TestApfWithRequestDigest(t *testing.T) {
epmetrics.Register()
fcmetrics.Register()
longRunningFunc := func(_ *http.Request, _ *apirequest.RequestInfo) bool { return false } longRunningFunc := func(_ *http.Request, _ *apirequest.RequestInfo) bool { return false }
fakeFilter := &fakeFilterRequestDigest{} fakeFilter := &fakeFilterRequestDigest{}
@ -690,6 +695,7 @@ func TestApfWithRequestDigest(t *testing.T) {
} }
func TestPriorityAndFairnessWithPanicRecoveryAndTimeoutFilter(t *testing.T) { func TestPriorityAndFairnessWithPanicRecoveryAndTimeoutFilter(t *testing.T) {
epmetrics.Register()
fcmetrics.Register() fcmetrics.Register()
t.Run("priority level concurrency is set to 1, request handler panics, next request should not be rejected", func(t *testing.T) { t.Run("priority level concurrency is set to 1, request handler panics, next request should not be rejected", func(t *testing.T) {