mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-10 20:42:26 +00:00
Report non-resource URLs in max-in-flight correctly
This potentially has high cardinality, however we can rate limit based on queries to these endpoints as well.
This commit is contained in:
parent
d3be1ac92e
commit
022a5463dc
@ -22,7 +22,6 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"k8s.io/apimachinery/pkg/api/errors"
|
|
||||||
"k8s.io/apimachinery/pkg/util/sets"
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
"k8s.io/apiserver/pkg/authentication/user"
|
"k8s.io/apiserver/pkg/authentication/user"
|
||||||
"k8s.io/apiserver/pkg/endpoints/metrics"
|
"k8s.io/apiserver/pkg/endpoints/metrics"
|
||||||
@ -113,7 +112,11 @@ func WithMaxInFlightLimit(
|
|||||||
if requestInfo.Namespace != "" {
|
if requestInfo.Namespace != "" {
|
||||||
scope = "namespace"
|
scope = "namespace"
|
||||||
}
|
}
|
||||||
metrics.MonitorRequest(r, strings.ToUpper(requestInfo.Verb), requestInfo.Resource, requestInfo.Subresource, "", scope, errors.StatusTooManyRequests, 0, time.Now())
|
if requestInfo.IsResourceRequest {
|
||||||
|
metrics.MonitorRequest(r, strings.ToUpper(requestInfo.Verb), requestInfo.Resource, requestInfo.Subresource, "", scope, http.StatusTooManyRequests, 0, time.Now())
|
||||||
|
} else {
|
||||||
|
metrics.MonitorRequest(r, strings.ToUpper(requestInfo.Verb), "", requestInfo.Path, "", scope, http.StatusTooManyRequests, 0, time.Now())
|
||||||
|
}
|
||||||
tooManyRequests(r, w)
|
tooManyRequests(r, w)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,6 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"k8s.io/apimachinery/pkg/api/errors"
|
|
||||||
"k8s.io/apimachinery/pkg/util/sets"
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
"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"
|
||||||
@ -148,7 +147,7 @@ func TestMaxInFlightNonMutating(t *testing.T) {
|
|||||||
|
|
||||||
// Do this multiple times to show that rate limit rejected requests don't block.
|
// Do this multiple times to show that rate limit rejected requests don't block.
|
||||||
for i := 0; i < 2; i++ {
|
for i := 0; i < 2; i++ {
|
||||||
if err := expectHTTPGet(server.URL, errors.StatusTooManyRequests); err != nil {
|
if err := expectHTTPGet(server.URL, http.StatusTooManyRequests); err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -213,7 +212,7 @@ func TestMaxInFlightMutating(t *testing.T) {
|
|||||||
|
|
||||||
// Do this multiple times to show that rate limit rejected requests don't block.
|
// Do this multiple times to show that rate limit rejected requests don't block.
|
||||||
for i := 0; i < 2; i++ {
|
for i := 0; i < 2; i++ {
|
||||||
if err := expectHTTPPost(server.URL+"/foo/bar/", errors.StatusTooManyRequests); err != nil {
|
if err := expectHTTPPost(server.URL+"/foo/bar/", http.StatusTooManyRequests); err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user