K8s: Use tracing handler from component-base (#85560)

This commit is contained in:
Todd Treece 2024-04-03 17:39:09 -04:00 committed by GitHub
parent 77133ac9c1
commit c01531dc79
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 15 additions and 0 deletions

View File

@ -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
}

View File

@ -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())