Merge pull request #113698 from dashpole/missing_apiserver_migration

Migrate another usage of utiltrace to component base tracing
This commit is contained in:
Kubernetes Prow Robot 2022-11-08 12:43:17 -08:00 committed by GitHub
commit e361272423
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -22,6 +22,8 @@ import (
"fmt" "fmt"
"time" "time"
"go.opentelemetry.io/otel/attribute"
"k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/schema"
utilnet "k8s.io/apimachinery/pkg/util/net" utilnet "k8s.io/apimachinery/pkg/util/net"
"k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/util/wait"
@ -30,7 +32,7 @@ import (
"k8s.io/apiserver/pkg/audit" "k8s.io/apiserver/pkg/audit"
"k8s.io/apiserver/pkg/util/webhook" "k8s.io/apiserver/pkg/util/webhook"
"k8s.io/client-go/rest" "k8s.io/client-go/rest"
utiltrace "k8s.io/utils/trace" "k8s.io/component-base/tracing"
) )
const ( const (
@ -126,15 +128,16 @@ func (b *backend) processEvents(ev ...*auditinternal.Event) error {
list.Items = append(list.Items, *e) list.Items = append(list.Items, *e)
} }
return b.w.WithExponentialBackoff(context.Background(), func() rest.Result { return b.w.WithExponentialBackoff(context.Background(), func() rest.Result {
trace := utiltrace.New("Call Audit Events webhook", ctx, span := tracing.Start(context.Background(), "Call Audit Events webhook",
utiltrace.Field{"name", b.name}, attribute.String("name", b.name),
utiltrace.Field{"event-count", len(list.Items)}) attribute.Int("event-count", len(list.Items)),
)
// Only log audit webhook traces that exceed a 25ms per object limit plus a 50ms // Only log audit webhook traces that exceed a 25ms per object limit plus a 50ms
// request overhead allowance. The high per object limit used here is primarily to // request overhead allowance. The high per object limit used here is primarily to
// allow enough time for the serialization/deserialization of audit events, which // allow enough time for the serialization/deserialization of audit events, which
// contain nested request and response objects plus additional event fields. // contain nested request and response objects plus additional event fields.
defer trace.LogIfLong(time.Duration(50+25*len(list.Items)) * time.Millisecond) defer span.End(time.Duration(50+25*len(list.Items)) * time.Millisecond)
return b.w.RestClient.Post().Body(&list).Do(context.Background()) return b.w.RestClient.Post().Body(&list).Do(ctx)
}).Error() }).Error()
} }