From 9c6604fc5120ac82526bdec836f0f720aa2259cd Mon Sep 17 00:00:00 2001 From: Luke Carrier Date: Wed, 22 Jan 2025 21:11:45 +0000 Subject: [PATCH 1/2] tracing: test for semconv/SDK version conflicts --- pkg/tracing/tracing.go | 6 +++++- pkg/tracing/tracing_test.go | 17 +++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 pkg/tracing/tracing_test.go diff --git a/pkg/tracing/tracing.go b/pkg/tracing/tracing.go index 53cb4f7fc..ce6f656f8 100644 --- a/pkg/tracing/tracing.go +++ b/pkg/tracing/tracing.go @@ -121,7 +121,7 @@ func NewTracerProvider(ctx context.Context, endpoint, caCert, name, namespace st klog.V(5).InfoS("no name provided, using default service name for tracing", "name", DefaultServiceName) name = DefaultServiceName } - resourceOpts := []sdkresource.Option{sdkresource.WithAttributes(semconv.ServiceNameKey.String(name)), sdkresource.WithSchemaURL(semconv.SchemaURL), sdkresource.WithProcess()} + resourceOpts := defaultResourceOpts(name) if namespace != "" { resourceOpts = append(resourceOpts, sdkresource.WithAttributes(semconv.ServiceNamespaceKey.String(namespace))) } @@ -141,6 +141,10 @@ func NewTracerProvider(ctx context.Context, endpoint, caCert, name, namespace st return } +func defaultResourceOpts(name string) []sdkresource.Option { + return []sdkresource.Option{sdkresource.WithAttributes(semconv.ServiceNameKey.String(name)), sdkresource.WithSchemaURL(semconv.SchemaURL), sdkresource.WithProcess()} +} + // Shutdown shuts down the global trace exporter. func Shutdown(ctx context.Context) error { tp, ok := provider.(*sdktrace.TracerProvider) diff --git a/pkg/tracing/tracing_test.go b/pkg/tracing/tracing_test.go new file mode 100644 index 000000000..683a39335 --- /dev/null +++ b/pkg/tracing/tracing_test.go @@ -0,0 +1,17 @@ +package tracing + +import ( + "context" + "testing" + + sdkresource "go.opentelemetry.io/otel/sdk/resource" +) + +func TestCreateTraceableResource(t *testing.T) { + ctx := context.TODO() + resourceOpts := defaultResourceOpts("descheduler") + _, err := sdkresource.New(ctx, resourceOpts...) + if err != nil { + t.Errorf("error initialising tracer provider: %!", err) + } +} From d5b609b34a7146a39452b144e8ceb95a55a47093 Mon Sep 17 00:00:00 2001 From: Luke Carrier Date: Wed, 22 Jan 2025 20:12:25 +0000 Subject: [PATCH 2/2] tracing: bump otel semconv to 1.26 Fix: E0122 20:09:35.824338 267288 tracing.go:130] "failed to create traceable resource" err=< 1 errors occurred detecting resource: * conflicting Schema URL: https://opentelemetry.io/schemas/1.24.0 and https://opentelemetry.io/schemas/1.26.0 > E0122 20:09:35.824366 267288 server.go:108] "failed to create tracer provider" err=< 1 errors occurred detecting resource: * conflicting Schema URL: https://opentelemetry.io/schemas/1.24.0 and https://opentelemetry.io/schemas/1.26.0 > --- pkg/tracing/tracing.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/tracing/tracing.go b/pkg/tracing/tracing.go index ce6f656f8..b94ec1923 100644 --- a/pkg/tracing/tracing.go +++ b/pkg/tracing/tracing.go @@ -27,7 +27,7 @@ import ( "go.opentelemetry.io/otel/propagation" sdkresource "go.opentelemetry.io/otel/sdk/resource" sdktrace "go.opentelemetry.io/otel/sdk/trace" - semconv "go.opentelemetry.io/otel/semconv/v1.24.0" + semconv "go.opentelemetry.io/otel/semconv/v1.26.0" "go.opentelemetry.io/otel/trace" "google.golang.org/grpc/credentials" "k8s.io/klog/v2"