From fad2fb17286eb326693442d32916ceb9c975953d Mon Sep 17 00:00:00 2001 From: pandego <7780875+pandego@users.noreply.github.com> Date: Wed, 15 Apr 2026 18:22:39 +0200 Subject: [PATCH 1/3] fix(otel): align service resource schema Signed-off-by: pandego <7780875+pandego@users.noreply.github.com> --- cmd/root/otel.go | 22 +++++++++++++--------- cmd/root/otel_test.go | 11 +++++++++++ 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/cmd/root/otel.go b/cmd/root/otel.go index d5dc5f4aa..bddcb1454 100644 --- a/cmd/root/otel.go +++ b/cmd/root/otel.go @@ -12,21 +12,14 @@ import ( "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp" "go.opentelemetry.io/otel/sdk/resource" "go.opentelemetry.io/otel/sdk/trace" - semconv "go.opentelemetry.io/otel/semconv/v1.37.0" + semconv "go.opentelemetry.io/otel/semconv/v1.40.0" ) const AppName = "cagent" // initOTelSDK initializes OpenTelemetry SDK with OTLP exporter func initOTelSDK(ctx context.Context) (err error) { - res, err := resource.Merge( - resource.Default(), - resource.NewWithAttributes( - semconv.SchemaURL, - semconv.ServiceName(AppName), - semconv.ServiceVersion("dev"), // TODO: use actual version - ), - ) + res, err := newOTelResource() if err != nil { return fmt.Errorf("failed to create resource: %w", err) } @@ -77,6 +70,17 @@ func initOTelSDK(ctx context.Context) (err error) { // isLocalhostEndpoint reports whether the given endpoint refers to a // loopback address so that we can safely skip TLS. +func newOTelResource() (*resource.Resource, error) { + return resource.Merge( + resource.Default(), + resource.NewWithAttributes( + semconv.SchemaURL, + semconv.ServiceName(AppName), + semconv.ServiceVersion("dev"), // TODO: use actual version + ), + ) +} + func isLocalhostEndpoint(endpoint string) bool { host := endpoint // Strip port if present. diff --git a/cmd/root/otel_test.go b/cmd/root/otel_test.go index cd024f868..30d98f427 100644 --- a/cmd/root/otel_test.go +++ b/cmd/root/otel_test.go @@ -3,9 +3,20 @@ package root import ( "testing" + semconv "go.opentelemetry.io/otel/semconv/v1.40.0" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) +func TestNewOTelResourceUsesCurrentSchemaURL(t *testing.T) { + t.Parallel() + + res, err := newOTelResource() + require.NoError(t, err) + assert.Equal(t, semconv.SchemaURL, res.SchemaURL()) +} + func TestIsLocalhostEndpoint(t *testing.T) { t.Parallel() From 952f5c7b07bd46a74a9bdb329725af2cbf47924b Mon Sep 17 00:00:00 2001 From: pandego <7780875+pandego@users.noreply.github.com> Date: Fri, 17 Apr 2026 23:28:27 +0200 Subject: [PATCH 2/3] test: fix otel import ordering --- cmd/root/otel_test.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cmd/root/otel_test.go b/cmd/root/otel_test.go index 30d98f427..042973a9e 100644 --- a/cmd/root/otel_test.go +++ b/cmd/root/otel_test.go @@ -3,10 +3,9 @@ package root import ( "testing" - semconv "go.opentelemetry.io/otel/semconv/v1.40.0" - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + semconv "go.opentelemetry.io/otel/semconv/v1.40.0" ) func TestNewOTelResourceUsesCurrentSchemaURL(t *testing.T) { From 067b100a2929e2eae4fef77190a07e420975d5b2 Mon Sep 17 00:00:00 2001 From: pandego <7780875+pandego@users.noreply.github.com> Date: Fri, 17 Apr 2026 23:35:57 +0200 Subject: [PATCH 3/3] fix(otel): move localhost helper comment --- cmd/root/otel.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/root/otel.go b/cmd/root/otel.go index bddcb1454..5af980db2 100644 --- a/cmd/root/otel.go +++ b/cmd/root/otel.go @@ -68,8 +68,6 @@ func initOTelSDK(ctx context.Context) (err error) { return nil } -// isLocalhostEndpoint reports whether the given endpoint refers to a -// loopback address so that we can safely skip TLS. func newOTelResource() (*resource.Resource, error) { return resource.Merge( resource.Default(), @@ -81,6 +79,8 @@ func newOTelResource() (*resource.Resource, error) { ) } +// isLocalhostEndpoint reports whether the given endpoint refers to a +// loopback address so that we can safely skip TLS. func isLocalhostEndpoint(endpoint string) bool { host := endpoint // Strip port if present.