From c01531dc79606be258fb8e7cace2409382bab6c2 Mon Sep 17 00:00:00 2001 From: Todd Treece <360020+toddtreece@users.noreply.github.com> Date: Wed, 3 Apr 2024 17:39:09 -0400 Subject: [PATCH] K8s: Use tracing handler from component-base (#85560) --- pkg/apiserver/builder/helper.go | 2 ++ .../apiserver/standalone/options/tracing.go | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/pkg/apiserver/builder/helper.go b/pkg/apiserver/builder/helper.go index f41626e2e2a..e42614687b1 100644 --- a/pkg/apiserver/builder/helper.go +++ b/pkg/apiserver/builder/helper.go @@ -19,6 +19,7 @@ import ( genericapiserver "k8s.io/apiserver/pkg/server" "k8s.io/apiserver/pkg/util/openapi" k8sscheme "k8s.io/client-go/kubernetes/scheme" + k8stracing "k8s.io/component-base/tracing" "k8s.io/kube-openapi/pkg/common" "github.com/grafana/grafana/pkg/apiserver/endpoints/filters" @@ -75,6 +76,7 @@ func SetupConfig( handler := genericapiserver.DefaultBuildHandlerChain(requestHandler, c) handler = filters.WithAcceptHeader(handler) + handler = k8stracing.WithTracing(handler, serverConfig.TracerProvider, "grafana-apiserver") return handler } diff --git a/pkg/services/apiserver/standalone/options/tracing.go b/pkg/services/apiserver/standalone/options/tracing.go index a330c7aec26..3a532a67428 100644 --- a/pkg/services/apiserver/standalone/options/tracing.go +++ b/pkg/services/apiserver/standalone/options/tracing.go @@ -11,7 +11,10 @@ import ( "github.com/grafana/grafana/pkg/setting" "github.com/spf13/pflag" "go.opentelemetry.io/otel/attribute" + genericfeatures "k8s.io/apiserver/pkg/features" genericapiserver "k8s.io/apiserver/pkg/server" + utilfeature "k8s.io/apiserver/pkg/util/feature" + k8stracing "k8s.io/component-base/tracing" ) type TracingOptions struct { @@ -69,6 +72,12 @@ func (o *TracingOptions) Validate() []error { } func (o *TracingOptions) ApplyTo(config *genericapiserver.RecommendedConfig) error { + if err := utilfeature.DefaultMutableFeatureGate.SetFromMap(map[string]bool{ + string(genericfeatures.APIServerTracing): false, + }); err != nil { + return err + } + tracingCfg := tracing.NewEmptyTracingConfig() var err error @@ -103,6 +112,10 @@ func (o *TracingOptions) ApplyTo(config *genericapiserver.RecommendedConfig) err o.TracingService = ts config.TracerProvider = ts.GetTracerProvider() + if config.LoopbackClientConfig != nil { + config.LoopbackClientConfig.Wrap(k8stracing.WrapperFor(config.TracerProvider)) + } + config.AddPostStartHookOrDie("grafana-tracing-service", func(hookCtx genericapiserver.PostStartHookContext) error { ctx, cancel := context.WithCancel(context.Background())