OpenTelemetry Semantic Conventions v1.45.0 - Stable RPC Spans
OpenTelemetry semantic-conventions v1.45.0 was published on November 2, 2026. RPC spans and call duration metrics are now stable, including gRPC and Apache Dubbo. It is a stable release.
The full release notes and downloads are on the GitHub release page.
Stable RPC spans and split response metadata
RPC spans and call duration metrics are stable in this tag, including generic RPC, gRPC, and Apache Dubbo. General RPC, including Dubbo, recommends 18 histogram boundaries from 0.0001 seconds to 60 seconds. gRPC uses the 41 latency boundaries from gRPC A66, including zero.
rpc.response.status_code is renamed to rpc.status_code (#3870).
Response metadata is split by when it is sent (#3924, #4072). rpc.request.metadata.<key> becomes rpc.request.header.<key>. rpc.response.metadata.<key> becomes rpc.response.header.<key> for values sent before the payload and rpc.response.trailer.<key> for values sent after it. Dubbo Triple records response headers on rpc.response.header.<key> and Dubbo response attachments, which Triple sends as trailers, on rpc.response.trailer.<key>. There is no rpc.request.trailer attribute, because no RPC system sends metadata after the request payload. Deprecated rpc.grpc.* and rpc.connect_rpc.* metadata attributes now point at the new names. The header and trailer attributes are release candidate.
Renames for pools, functions, memory, and messaging
db.client.connection.max is now db.client.connection.limit (#4073).
FaaS invocation attributes move under faas.invocation.* (#4228). faas.time becomes faas.invocation.start_time. faas.invocation_id becomes faas.invocation.id. The AWS Lambda span lists the attributes it inherits from the FaaS server span, including the required faas.trigger (#3808).
system.device becomes system.device.name, and the old name is deprecated (#1474). system.memory.state keeps only used and available (#2538). available matches MemAvailable on Linux, so used plus available equals system.memory.limit. The free, buffers, and cached states are deprecated.
messaging.system becomes messaging.system.name (#4250). Broker specific attributes leave the messaging prefix (#4004): messaging.kafka.* to kafka.*, messaging.rabbitmq.* to rabbitmq.*, messaging.rocketmq.* to rocketmq.*, messaging.gcp_pubsub.* to gcp.pubsub.*, messaging.servicebus.* to azure.servicebus.*, and messaging.eventhubs.* to azure.eventhubs.*. The old names are deprecated.
Endpoints, database context, and promoted metrics
Client network endpoints gain client.as.number and client.as.organization (#1663, #3740), client.mac.address (#2416), and client.prefix in CIDR notation (#3731). Instrumentation or a Collector receiver normalizes the prefix. The same fields exist for server, source, destination, network.local, and network.peer. When a signal has no clear client or server role, the notes point at docs/network/choosing-network-attributes.md.
cpu.logical_number is a logical CPU index. A CPU can have 8 cores and 16 logical CPUs (#2934).
MongoDB trace context goes through the comment command field. Oracle application context is propagated by piggybacking. The notes prefer driver APIs that update V$SESSION.ACTION instead of issuing SQL or PL/SQL directly.
jvm.file_descriptor.count and jvm.file_descriptor.limit are release candidate, read from UnixOperatingSystemMXBean on Unix like systems. JVM executor metrics are new and at development stability. Kubernetes and container uptime, CPU usage, filesystem, network, and paging metrics move to release candidate. Pod level CPU and memory request, limit, and utilization metrics are added beside the container series. Memory utilization uses the working set as the numerator.
Upgrade notes
service.peer.name and service.peer.namespace are deprecated in favor of server.service.name, server.service.namespace, client.service.name, and client.service.namespace (#3472). The new attributes are at development stability. enduser.id and enduser.pseudo.id are deprecated in favor of open-telemetry/semantic-conventions-client-side (#4238). z/OS entities are removed and z/OS attributes are deprecated in favor of open-telemetry/semantic-conventions-mainframe (#4174, #3808). The OpenTracing compatibility document and opentracing.ref_type are deprecated (#4049).
http.request.body.content and http.response.body.content are opt in and may contain sensitive data. AWSAccessKeyId and Signature are back on the default list of sensitive query parameter keys.
Cloud entities also move for the Weaver schema v2 migration. The android entity becomes an attribute group, and resource usage stays the same (#4168). aws.ecs is replaced by aws.ecs.task, aws.ecs.cluster, and aws.ecs.container, each identified by an ARN (#4170). The AWS log entity is removed and its attributes stay on resource metadata (#4171). gcp.gce and gcp.cloud_run become gcp.gce.instance and gcp.cloud_run.job.task (#4173). cloudfoundry.system splits into cloudfoundry.system and cloudfoundry.system.instance (#4191).
Where to get it
- Release notes: v1.45.0 on GitHub
- Repository: open-telemetry/semantic-conventions
- Tag:
v1.45.0