Fix requests scope classification

create (POST) custom resources should be scope:resource
This commit is contained in:
Artur Żyliński 2022-05-12 14:27:51 +02:00
parent 076168b84d
commit 690c912369
2 changed files with 17 additions and 4 deletions

View File

@ -577,7 +577,7 @@ func InstrumentHandlerFunc(verb, group, version, resource, subresource, scope, c
// CleanScope returns the scope of the request. // CleanScope returns the scope of the request.
func CleanScope(requestInfo *request.RequestInfo) string { func CleanScope(requestInfo *request.RequestInfo) string {
if requestInfo.Name != "" { if requestInfo.Name != "" || requestInfo.Verb == "create" {
return "resource" return "resource"
} }
if requestInfo.Namespace != "" { if requestInfo.Namespace != "" {

View File

@ -177,6 +177,15 @@ func TestCleanScope(t *testing.T) {
}, },
expectedScope: "resource", expectedScope: "resource",
}, },
{
name: "POST resource scope",
requestInfo: &request.RequestInfo{
Verb: "create",
Namespace: "my-namespace",
IsResourceRequest: false,
},
expectedScope: "resource",
},
{ {
name: "namespace scope", name: "namespace scope",
requestInfo: &request.RequestInfo{ requestInfo: &request.RequestInfo{
@ -293,6 +302,7 @@ func TestRecordDroppedRequests(t *testing.T) {
}, },
}, },
requestInfo: &request.RequestInfo{ requestInfo: &request.RequestInfo{
Verb: "list",
APIGroup: "", APIGroup: "",
APIVersion: "v1", APIVersion: "v1",
Resource: "pods", Resource: "pods",
@ -317,6 +327,7 @@ func TestRecordDroppedRequests(t *testing.T) {
}, },
}, },
requestInfo: &request.RequestInfo{ requestInfo: &request.RequestInfo{
Verb: "create",
APIGroup: "", APIGroup: "",
APIVersion: "v1", APIVersion: "v1",
Resource: "pods", Resource: "pods",
@ -329,7 +340,7 @@ func TestRecordDroppedRequests(t *testing.T) {
apiserver_dropped_requests_total{request_kind="mutating"} 1 apiserver_dropped_requests_total{request_kind="mutating"} 1
# HELP apiserver_request_total [STABLE] Counter of apiserver requests broken out for each verb, dry run value, group, version, resource, scope, component, and HTTP response code. # HELP apiserver_request_total [STABLE] Counter of apiserver requests broken out for each verb, dry run value, group, version, resource, scope, component, and HTTP response code.
# TYPE apiserver_request_total counter # TYPE apiserver_request_total counter
apiserver_request_total{code="429",component="apiserver",dry_run="",group="",resource="pods",scope="cluster",subresource="",verb="POST",version="v1"} 1 apiserver_request_total{code="429",component="apiserver",dry_run="",group="",resource="pods",scope="resource",subresource="",verb="POST",version="v1"} 1
`, `,
}, },
{ {
@ -337,14 +348,16 @@ func TestRecordDroppedRequests(t *testing.T) {
request: &http.Request{ request: &http.Request{
Method: "PATCH", Method: "PATCH",
URL: &url.URL{ URL: &url.URL{
RawPath: "/apis/batch/v1/namespaces/foo/pods/status", RawPath: "/apis/batch/v1/namespaces/foo/jobs/bar/status",
RawQuery: "dryRun=All", RawQuery: "dryRun=All",
}, },
}, },
requestInfo: &request.RequestInfo{ requestInfo: &request.RequestInfo{
Verb: "patch",
APIGroup: "batch", APIGroup: "batch",
APIVersion: "v1", APIVersion: "v1",
Resource: "jobs", Resource: "jobs",
Name: "bar",
Subresource: "status", Subresource: "status",
IsResourceRequest: true, IsResourceRequest: true,
}, },
@ -355,7 +368,7 @@ func TestRecordDroppedRequests(t *testing.T) {
apiserver_dropped_requests_total{request_kind="mutating"} 1 apiserver_dropped_requests_total{request_kind="mutating"} 1
# HELP apiserver_request_total [STABLE] Counter of apiserver requests broken out for each verb, dry run value, group, version, resource, scope, component, and HTTP response code. # HELP apiserver_request_total [STABLE] Counter of apiserver requests broken out for each verb, dry run value, group, version, resource, scope, component, and HTTP response code.
# TYPE apiserver_request_total counter # TYPE apiserver_request_total counter
apiserver_request_total{code="429",component="apiserver",dry_run="All",group="batch",resource="jobs",scope="cluster",subresource="status",verb="PATCH",version="v1"} 1 apiserver_request_total{code="429",component="apiserver",dry_run="All",group="batch",resource="jobs",scope="resource",subresource="status",verb="PATCH",version="v1"} 1
`, `,
}, },
} }