Skip to content

Components no longer warn about a partial telemetry resource at startup - #2998

Merged
Jeff Luo (JeffLuoo) merged 2 commits into
agent-substrate:mainfrom
baizhenyu:serverboot-semconv-schema
Oct 21, 2026
Merged

Jeff Luo (JeffLuoo) merged 2 commits into
agent-substrate:mainfrom
baizhenyu:serverboot-semconv-schema

Conversation

@baizhenyu

@baizhenyu Tim Bai (baizhenyu) commented Oct 20, 2026 •

Copy link
Copy Markdown
Collaborator

Every component logged this at startup:

WARN partial telemetry resource  err="error detecting resource: conflicting Schema URL: https://opentelemetry.io/schemas/1.40.0 and https://opentelemetry.io/schemas/1.43.0"

serverboot.newResource sets the resource's schema with semconv v1.40.0, while the vendored SDK's own resource detector now uses v1.43.0. The merge then drops the schema URL. All attributes were kept: on ate-dev, atelet's target_info still had service.* and k8s.*. Only the schema URL was lost, and the warning made the resource look partial.

This moves serverboot to semconv v1.43.0, and adds a check to TestNewResourceDefaults that the resource's schema URL equals the SDK's (resource.Default().SchemaURL()). With the old import, the test fails with schema URL = "", want the SDK's "https://opentelemetry.io/schemas/1.43.0", so the next SDK upgrade that moves its semconv version fails a test instead of warning in every pod.

boomer-worker's tracer resource had the same pin (internal/benchmarking/boomer/trace); it gets the same fix, its resource moves into newResource, and a new test checks its schema URL the same way. The only other resource with a pinned schema, in ateclient, runs no detectors, so it cannot conflict.

Found while testing on ate-dev.

  • Tests pass
  • Appropriate changes to documentation are included in the PR (none needed)

The resource used semconv v1.40.0 while the SDK's own detector now uses
v1.43.0, so every component logged "partial telemetry resource ...
conflicting Schema URL" at startup and its resource lost the schema URL. The
attributes were all kept. Use v1.43.0, and test that the resource's schema URL
matches the SDK's, so the next SDK upgrade fails a test rather than warning in
every pod.

@JeffLuoo Jeff Luo (JeffLuoo) left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the fix. The change in serverboot is correct, and go test -race ./internal/serverboot/ passes for me at this commit. I have one comment: boomer-worker has the same bug.

Comment thread internal/serverboot/serverboot.go Resolved
boomer-worker's tracer resource had the same semconv v1.40.0 pin as
serverboot, so it logged the same "conflicting Schema URL" warning and lost
the schema URL. Move it to v1.43.0, and pull the resource into newResource so
a test can check its schema URL matches the SDK's, as serverboot's does.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/observability kind/bug Something isn't working / bugfixes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants