From 2053dd328ecc8aaadac8faa4d857d5732f110430 Mon Sep 17 00:00:00 2001 From: Chenyme <118253778+chenyme@users.noreply.github.com> Date: Thu, 22 Oct 2026 15:41:16 +0800 Subject: [PATCH 1/2] fix: avoid semconv schema conflict in tracer provider resource --- internal/otel_trace/trace_provider.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/internal/otel_trace/trace_provider.go b/internal/otel_trace/trace_provider.go index a7c03ba..4c6560e 100644 --- a/internal/otel_trace/trace_provider.go +++ b/internal/otel_trace/trace_provider.go @@ -24,7 +24,7 @@ import ( "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc" "go.opentelemetry.io/otel/sdk/resource" sdktrace "go.opentelemetry.io/otel/sdk/trace" - semconv "go.opentelemetry.io/otel/semconv/v1.41.0" + semconv "go.opentelemetry.io/otel/semconv/v1.43.0" ) func newTracerProvider() (*sdktrace.TracerProvider, error) { @@ -35,10 +35,12 @@ func newTracerProvider() (*sdktrace.TracerProvider, error) { } // 初始化 Resource + // 使用无 SchemaURL 的 Resource 合并:SDK 升级后 resource.Default() 的 schema 版本 + // 会变化,若这里写死 semconv.SchemaURL(如 1.41.0)会与 SDK 的 schema(如 1.43.0) + // 冲突,导致 Merge 返回 "conflicting Schema URL" 并启动失败。 r, err := resource.Merge( resource.Default(), - resource.NewWithAttributes( - semconv.SchemaURL, + resource.NewSchemaless( semconv.ServiceName(config.Config.App.AppName), semconv.HostName(hostname), semconv.K8SNamespaceName(os.Getenv("KUBERNETES_NAMESPACE")), From 37e88ff163cca29a73992cb8936141155eec7d5e Mon Sep 17 00:00:00 2001 From: Chenyme <118253778+chenyme@users.noreply.github.com> Date: Thu, 22 Oct 2026 16:09:00 +0800 Subject: [PATCH 2/2] fix: change NewSchemaless function --- internal/otel_trace/trace_provider.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/internal/otel_trace/trace_provider.go b/internal/otel_trace/trace_provider.go index 4c6560e..c190e4f 100644 --- a/internal/otel_trace/trace_provider.go +++ b/internal/otel_trace/trace_provider.go @@ -35,12 +35,10 @@ func newTracerProvider() (*sdktrace.TracerProvider, error) { } // 初始化 Resource - // 使用无 SchemaURL 的 Resource 合并:SDK 升级后 resource.Default() 的 schema 版本 - // 会变化,若这里写死 semconv.SchemaURL(如 1.41.0)会与 SDK 的 schema(如 1.43.0) - // 冲突,导致 Merge 返回 "conflicting Schema URL" 并启动失败。 r, err := resource.Merge( resource.Default(), - resource.NewSchemaless( + resource.NewWithAttributes( + semconv.SchemaURL, semconv.ServiceName(config.Config.App.AppName), semconv.HostName(hostname), semconv.K8SNamespaceName(os.Getenv("KUBERNETES_NAMESPACE")),