Skip to content

Commit b12ac0a

Browse files
committed
Enable nested tracing, add request filter chain tracing incl. authn/authz tracing
1 parent c2d1541 commit b12ac0a

File tree

32 files changed

+196
-43
lines changed

32 files changed

+196
-43
lines changed

pkg/scheduler/core/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ go_library(
2323
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
2424
"//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
2525
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
26+
"//staging/src/k8s.io/apiserver/pkg/endpoints/request:go_default_library",
2627
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
2728
"//staging/src/k8s.io/client-go/listers/core/v1:go_default_library",
2829
"//staging/src/k8s.io/client-go/rest:go_default_library",

pkg/scheduler/core/generic_scheduler.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import (
3030

3131
v1 "k8s.io/api/core/v1"
3232
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
33+
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
3334
utilfeature "k8s.io/apiserver/pkg/util/feature"
3435
corelisters "k8s.io/client-go/listers/core/v1"
3536
extenderv1 "k8s.io/kube-scheduler/extender/v1"
@@ -136,7 +137,7 @@ func (g *genericScheduler) snapshot() error {
136137
// If it succeeds, it will return the name of the node.
137138
// If it fails, it will return a FitError error with reasons.
138139
func (g *genericScheduler) Schedule(ctx context.Context, prof *profile.Profile, state *framework.CycleState, pod *v1.Pod) (result ScheduleResult, err error) {
139-
trace := utiltrace.New("Scheduling", utiltrace.Field{Key: "namespace", Value: pod.Namespace}, utiltrace.Field{Key: "name", Value: pod.Name})
140+
ctx, trace := genericapirequest.WithTrace(ctx, "Scheduling", utiltrace.Field{Key: "namespace", Value: pod.Namespace}, utiltrace.Field{Key: "name", Value: pod.Name})
140141
defer trace.LogIfLong(100 * time.Millisecond)
141142

142143
if err := podPassesBasicChecks(pod, g.pvcLister); err != nil {

staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/conversion/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ go_library(
2424
"//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
2525
"//staging/src/k8s.io/apimachinery/pkg/util/uuid:go_default_library",
2626
"//staging/src/k8s.io/apimachinery/pkg/util/validation/field:go_default_library",
27+
"//staging/src/k8s.io/apiserver/pkg/endpoints/request:go_default_library",
2728
"//staging/src/k8s.io/apiserver/pkg/util/webhook:go_default_library",
2829
"//staging/src/k8s.io/client-go/kubernetes/scheme:go_default_library",
2930
"//staging/src/k8s.io/client-go/rest:go_default_library",

staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/conversion/webhook_converter.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import (
3434
"k8s.io/apimachinery/pkg/types"
3535
"k8s.io/apimachinery/pkg/util/uuid"
3636
"k8s.io/apimachinery/pkg/util/validation/field"
37+
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
3738
"k8s.io/apiserver/pkg/util/webhook"
3839
"k8s.io/client-go/rest"
3940
utiltrace "k8s.io/utils/trace"
@@ -259,7 +260,7 @@ func (c *webhookConverter) Convert(in runtime.Object, toGV schema.GroupVersion)
259260
return out, nil
260261
}
261262

262-
trace := utiltrace.New("Call conversion webhook",
263+
ctx, trace := genericapirequest.WithTrace(context.TODO(), "Call conversion webhook",
263264
utiltrace.Field{"custom-resource-definition", c.name},
264265
utiltrace.Field{"desired-api-version", desiredAPIVersion},
265266
utiltrace.Field{"object-count", objCount},
@@ -269,8 +270,6 @@ func (c *webhookConverter) Convert(in runtime.Object, toGV schema.GroupVersion)
269270
// the conversion request on the apiserver side (~4ms per object).
270271
defer trace.LogIfLong(time.Duration(50+8*objCount) * time.Millisecond)
271272

272-
// TODO: Figure out if adding one second timeout make sense here.
273-
ctx := context.TODO()
274273
r := c.restClient.Post().Body(request).Do(ctx)
275274
if err := r.Into(response); err != nil {
276275
// TODO: Return a webhook specific error to be able to convert it to meta.Status

staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ go_library(
2929
"//staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/generic:go_default_library",
3030
"//staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/request:go_default_library",
3131
"//staging/src/k8s.io/apiserver/pkg/apis/audit:go_default_library",
32+
"//staging/src/k8s.io/apiserver/pkg/endpoints/request:go_default_library",
3233
"//staging/src/k8s.io/apiserver/pkg/util/webhook:go_default_library",
3334
"//staging/src/k8s.io/apiserver/pkg/warning:go_default_library",
3435
"//vendor/github.com/evanphx/json-patch:go_default_library",

staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/dispatcher.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import (
4242
"k8s.io/apiserver/pkg/admission/plugin/webhook/generic"
4343
webhookrequest "k8s.io/apiserver/pkg/admission/plugin/webhook/request"
4444
auditinternal "k8s.io/apiserver/pkg/apis/audit"
45+
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
4546
webhookutil "k8s.io/apiserver/pkg/util/webhook"
4647
"k8s.io/apiserver/pkg/warning"
4748
utiltrace "k8s.io/utils/trace"
@@ -221,7 +222,7 @@ func (a *mutatingDispatcher) callAttrMutatingHook(ctx context.Context, h *admiss
221222
if err != nil {
222223
return false, &webhookutil.ErrCallingWebhook{WebhookName: h.Name, Reason: err}
223224
}
224-
trace := utiltrace.New("Call mutating webhook",
225+
ctx, trace := genericapirequest.WithTrace(ctx, "Call mutating webhook",
225226
utiltrace.Field{"configuration", configurationName},
226227
utiltrace.Field{"webhook", h.Name},
227228
utiltrace.Field{"resource", attr.GetResource()},

staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ go_library(
2222
"//staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/errors:go_default_library",
2323
"//staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/generic:go_default_library",
2424
"//staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/request:go_default_library",
25+
"//staging/src/k8s.io/apiserver/pkg/endpoints/request:go_default_library",
2526
"//staging/src/k8s.io/apiserver/pkg/util/webhook:go_default_library",
2627
"//staging/src/k8s.io/apiserver/pkg/warning:go_default_library",
2728
"//vendor/k8s.io/klog/v2:go_default_library",

staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/dispatcher.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import (
3232
webhookerrors "k8s.io/apiserver/pkg/admission/plugin/webhook/errors"
3333
"k8s.io/apiserver/pkg/admission/plugin/webhook/generic"
3434
webhookrequest "k8s.io/apiserver/pkg/admission/plugin/webhook/request"
35+
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
3536
webhookutil "k8s.io/apiserver/pkg/util/webhook"
3637
"k8s.io/apiserver/pkg/warning"
3738
"k8s.io/klog/v2"
@@ -181,7 +182,7 @@ func (d *validatingDispatcher) callHook(ctx context.Context, h *v1.ValidatingWeb
181182
if err != nil {
182183
return &webhookutil.ErrCallingWebhook{WebhookName: h.Name, Reason: err}
183184
}
184-
trace := utiltrace.New("Call validating webhook",
185+
ctx, trace := genericapirequest.WithTrace(ctx, "Call validating webhook",
185186
utiltrace.Field{"configuration", invocation.Webhook.GetConfigurationName()},
186187
utiltrace.Field{"webhook", h.Name},
187188
utiltrace.Field{"resource", attr.GetResource()},

staging/src/k8s.io/apiserver/pkg/endpoints/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ filegroup(
112112
"//staging/src/k8s.io/apiserver/pkg/endpoints/discovery:all-srcs",
113113
"//staging/src/k8s.io/apiserver/pkg/endpoints/filters:all-srcs",
114114
"//staging/src/k8s.io/apiserver/pkg/endpoints/handlers:all-srcs",
115+
"//staging/src/k8s.io/apiserver/pkg/endpoints/internal:all-srcs",
115116
"//staging/src/k8s.io/apiserver/pkg/endpoints/metrics:all-srcs",
116117
"//staging/src/k8s.io/apiserver/pkg/endpoints/openapi:all-srcs",
117118
"//staging/src/k8s.io/apiserver/pkg/endpoints/request:all-srcs",

staging/src/k8s.io/apiserver/pkg/endpoints/filters/BUILD

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ go_library(
5555
"impersonation.go",
5656
"metrics.go",
5757
"requestinfo.go",
58+
"trace.go",
5859
"warning.go",
5960
],
6061
importmap = "k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/endpoints/filters",
@@ -76,12 +77,14 @@ go_library(
7677
"//staging/src/k8s.io/apiserver/pkg/authentication/user:go_default_library",
7778
"//staging/src/k8s.io/apiserver/pkg/authorization/authorizer:go_default_library",
7879
"//staging/src/k8s.io/apiserver/pkg/endpoints/handlers/responsewriters:go_default_library",
80+
"//staging/src/k8s.io/apiserver/pkg/endpoints/internal:go_default_library",
7981
"//staging/src/k8s.io/apiserver/pkg/endpoints/request:go_default_library",
8082
"//staging/src/k8s.io/apiserver/pkg/server/httplog:go_default_library",
8183
"//staging/src/k8s.io/apiserver/pkg/warning:go_default_library",
8284
"//staging/src/k8s.io/component-base/metrics:go_default_library",
8385
"//staging/src/k8s.io/component-base/metrics/legacyregistry:go_default_library",
8486
"//vendor/k8s.io/klog/v2:go_default_library",
87+
"//vendor/k8s.io/utils/trace:go_default_library",
8588
],
8689
)
8790

0 commit comments

Comments
 (0)