Skip to content

Commit 959247b

Browse files
committed
fix(observability): tolerate otel schema URL conflicts in resource merge
resource.Merge returns ErrSchemaURLConflict when resource.Default() and our semconv attributes use different schema versions (e.g. 1.39.0 vs 1.34.0 due to transitive dependency version skew). The merged resource is still valid and usable, so we tolerate this specific error.
1 parent 76266d3 commit 959247b

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

pkg/observability/tracing.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,17 @@ func SetupOTelSDK(ctx context.Context, tracerProvider *trace.TracerProvider) (sh
4646
}
4747

4848
func NewResource(serviceName, serviceVersion string) (*resource.Resource, error) {
49-
return resource.Merge(resource.Default(),
49+
res, err := resource.Merge(resource.Default(),
5050
resource.NewWithAttributes(semconv.SchemaURL,
5151
semconv.ServiceName(serviceName),
5252
semconv.ServiceVersion(serviceVersion),
5353
),
5454
)
55+
if err != nil && !errors.Is(err, resource.ErrSchemaURLConflict) {
56+
return nil, err
57+
}
58+
59+
return res, nil
5560
}
5661

5762
func NewHTTPTraceProvider(ctx context.Context, res *resource.Resource, httpOpts []otlptracehttp.Option, opts ...trace.TracerProviderOption) (*trace.TracerProvider, error) {

0 commit comments

Comments
 (0)