Upgrade semconv to v1.39.0#8481
Conversation
Unrelated semconv failures there that need to be addressed in separate PR.
2ca41ce to
efdfdec
Compare
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #8481 +/- ##
=======================================
- Coverage 82.3% 82.2% -0.1%
=======================================
Files 179 179
Lines 13728 13705 -23
=======================================
- Hits 11301 11278 -23
Misses 2029 2029
Partials 398 398
🚀 New features to boost your workflow:
|
efdfdec to
4563395
Compare
4563395 to
7678ad3
Compare
There was a problem hiding this comment.
Pull request overview
This pull request upgrades the semantic conventions from v1.37.0/v1.38.0 to v1.39.0, introducing significant breaking changes across the OpenTelemetry contrib repository. The upgrade includes renaming RPC attributes (rpc.system → rpc.system.name), merging rpc.service and rpc.method into a fully-qualified rpc.method, updating gRPC status codes, and migrating from peer.service to service.peer.name.
Changes:
- Updated semantic convention imports from v1.37.0 to v1.39.0 across all instrumentation, bridges, detectors, and examples
- Modified RPC instrumentation to use merged
rpc.methodattribute (combining service and method names) - Updated attribute functions in AWS SDK instrumentation with new
MethodAttr()and deprecated old functions - Changed gRPC status code attributes from integer to string values
- Updated HTTP instrumentation to use
service.peer.nameinstead of deprecatedpeer.service
Reviewed changes
Copilot reviewed 143 out of 199 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| go.mod files | Updated OTel dependencies to pseudo-version v1.39.1-0.20260130171517-3264bf171b1e |
| instrumentation/google.golang.org/grpc/otelgrpc/internal/parse.go | Simplified to use merged rpc.method attribute |
| instrumentation/github.com/aws/aws-sdk-go-v2/otelaws/attributes.go | Added MethodAttr() function, deprecated ServiceAttr() and OperationAttr() |
| instrumentation/google.golang.org/grpc/otelgrpc/stats_handlertest_test.go | Updated tests for string status codes and merged rpc.method |
| instrumentation/net/http/otelhttp/example/client/client.go | Changed PeerService to ServicePeerName |
| bridges/*/**.go | Updated semconv imports to v1.39.0 |
| detectors//.go | Updated semconv imports to v1.39.0 |
| .golangci.yml | Updated depguard rules to allow v1.39.0 |
| CHANGELOG.md | Documented breaking changes and deprecations |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…s_test.go Co-authored-by: Sam Xie <sam@samxie.me>
Resolve #8404
Upgrade
go.opentelemetry.io/otel/semconvtov1.39.0, including updates across all instrumentation and detector modules.The semantic conventions v1.39.0 release introduces breaking changes, including:
rpcspan and metric attributes have been renamed to align with naming guidelines:rpc.system→rpc.system.name(values:grpc,grpc_web,connectrpc,thrift,dubbo, etc.)rpc.methodandrpc.servicehave been merged into a fully-qualifiedrpc.methodattributerpc.client|server.duration→rpc.client|server.call.duration(unit changed to seconds)rpc.grpc.request.metadata/rpc.grpc.response.metadata→rpc.request.metadata/rpc.response.metadatarpc.grpc.status_code→ deprecated in favor ofrpc.response.status_coderpc.jsonrpc.request_id→jsonrpc.request.idrpc.jsonrpc.version→jsonrpc.protocol.versionsystemandprocessmetrics:*.linux.memorymetrics renamed to*.memory.linuxsystem.process.status→process.statesystem.paging.typeandprocess.paging.fault_type→system.paging.fault.typepeer.serviceattribute has been deprecated in favor ofservice.peer.nameSee semantic-conventions v1.39.0 release and v1.38.0 release for complete breaking change details.
Updated modules include:instrumentation/github.com/aws/aws-sdk-go-v2/otelaws/attributes.go
go.opentelemetry.io/contrib/bridges/otellogrgo.opentelemetry.io/contrib/bridges/otellogrusgo.opentelemetry.io/contrib/bridges/otelsloggo.opentelemetry.io/contrib/bridges/otelzapgo.opentelemetry.io/contrib/instrumentation/net/http/otelhttpservice.peer.nameattribute (deprecatedpeer.service) in examplego.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptracego.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpcrpc.methodandrpc.serviceinto fully-qualifiedrpc.method(e.g.,grpc.testing.TestService/EmptyCall)rpc.system→rpc.system.namewith updated values (e.g.,RPCSystemNameGRPC)rpc.grpc.status_code→rpc.response.status_code(e.g.,RPCResponseStatusCode("OK"))go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelawsrpc.methodandrpc.serviceattributes (service/operation → fully-qualified method)rpc.system→rpc.system.namewithAWSSystemValMethodAttr()function for combined service/operation attributeServiceAttr()function ingo.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelawsis deprecated.OperationAttr()function ingo.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelawsis deprecated.go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-lambda-go/otellambdago.opentelemetry.io/contrib/instrumentation/runtimego.opentelemetry.io/contrib/instrumentation/hostgo.opentelemetry.io/contrib/instrumentation/go.mongodb.org/mongo-driver(both v1 and v2)go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgingo.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestfulgo.opentelemetry.io/contrib/instrumentation/github.com/labstack/echo/otelechogo.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmuxgo.opentelemetry.io/contrib/detectors/gcpgo.opentelemetry.io/contrib/detectors/aws/ec2/v2go.opentelemetry.io/contrib/detectors/aws/ecsgo.opentelemetry.io/contrib/detectors/aws/eksgo.opentelemetry.io/contrib/detectors/azure/azurevmgo.opentelemetry.io/contrib/otelconf