🛑 Breaking changes 🛑
db: Oracle'sdb.namespaceupdated to represent only the database’s
unique identifier. Information previously bundled intodb.namespace—including
PDB name, instance name, and service name — has been moved to dedicated attributes:
oracle.db.pdb,oracle.db.instance.name, andoracle.db.service.
Introduced a neworacle.db.domainattribute to capture the database domain
(DB_DOMAIN).
(#2147)error, feature-flags: Deprecateerror.messagein favor of using domain-specific codes such asfeature_flag.error.message.
(#3307, #3308)rpc: Removenetwork.protocol.name,network.protocol.version, andnetwork.transportattributes from RPC spans and metrics.
(#3349, #3350)system: Renamesystem.memory.sharedtosystem.memory.linux.shared(#3260)
Thesystem.memory.sharedmetric has been renamed tosystem.memory.linux.sharedto align with other Linux-specific memory metrics (system.memory.linux.availableandsystem.memory.linux.slab.usage). This metric reports shared memory used, primarily by tmpfs, and is only available on Linux systems.
🚩 Deprecations 🚩
exceptions: Update exception recording guidelines to not use span events. (#3256)rpc: Deprecate experimentalrpc.server.request.size,rpc.server.response.size,rpc.client.request.size, andrpc.client.response.sizemetrics due to ambiguous definitions and inconsistent implementation.
(#3267)rpc: Deprecate therpc.messageevent and its attributes (#3266, #3283)
Per-message events within RPC streaming calls are of limited utility in their current form. They are recorded as span events (also being deprecated). There is no direct replacement at this time.
💡 Enhancements 💡
-
cloud: Addoracle_cloud.realmvendor-specific attribute for Oracle Cloud Infrastructure (OCI) realm identifier. (#3121)
An Oracle Cloud realm is a logical collection of cloud regions that are isolated from each other, used for compliance and data residency requirements. -
db: Mark the Oracle Database client span as Release Candidate. (#2989) -
db: Modify area to oracledb from oracle (#3316) -
db: Clarifieddb.query.summarybehavior for batch operations. (#3287) -
db, rpc: Define domain-specific exception events for database and RPC (#3426)
These domain-specific exception events provide a structured way to record
exceptions that occur during operations in each area:db.client.operation.exceptionfor database client operationsrpc.client.call.exceptionandrpc.server.call.exceptionfor RPC
-
docs: Add how-to guide for defining spans (#3240) -
event: Allow event body to represent a display message. (#3343) -
exception: Indicate thatexception.messageattribute may contain sensitive information. (#2967, #3310) -
exceptions: IntroduceOTEL_SEMCONV_EXCEPTION_SIGNAL_OPT_INenvironment variable for transitioning exception recording from span events to logs. (#3363) -
gcp: Add GCP GCE Instance Group Manager attributes (#905) -
gen-ai: Add retrieval span support to the gen-ai semantic conventions. (#2907) -
gen-ai: Enhance how tool calls are captured to extend support for server side tools.
(#2585) -
gen-ai: Addgen_ai.agent.versionattribute to capture the version of an agent. (#3428) -
gen-ai: Add cache token attributes and provider-specific normalization guidance for GenAI usage metrics (#1959)- Add
gen_ai.usage.cache_read.input_tokensattribute for tokens served from provider cache - Add
gen_ai.usage.cache_creation.input_tokensattribute for tokens written to provider cache - Add provider-specific token handling notes to OpenAI span
- Add Anthropic span with computation guidance for
gen_ai.usage.input_tokens
- Add
-
gen_ai: Addedsampling-relevantflag to relevant GenAI span attributes to indicate their importance for sampling decisions. (#2994) -
http: Defined declarative configuration for overriding known HTTP methods. (#3394) -
http: Define declarative configuration for sensitive query parameters. (#3403) -
http: Definehttp.client.request.exceptionandhttp.server.request.exceptionevents for recording exceptions during HTTP operations (#3414)
These domain-specific exception events provide a structured way to record
exceptions that occur during HTTP client requests (network failures, timeouts)
and HTTP server request processing (application errors, internal failures). -
jvm: Addjvm.file_descriptor.limitas an in-development metric to track the maximum number of open file descriptors as reported by the JVM. (#3430) -
k8s: Promote a selection of k8s and container attributes to beta (#3120) -
k8s: Add k8s.service entity with endpoint and load balancer ingress metrics (#3294)
New metrics:k8s.service.endpoint.count: Number of endpoints by condition, address type, and zonek8s.service.load_balancer.ingress.count: Number of load balancer ingress points
New attributes:k8s.service.endpoint.condition,k8s.service.endpoint.address_type,k8s.service.endpoint.zonek8s.service.traffic_distribution,k8s.service.publish_not_ready_addresses
New entity:entity.k8s.service: k8s service entity with identifying and descriptive attributes
-
openai: Addopenai.api.typeattribute to distinguish between different OpenAI API types for similar operations. (#3337) -
pprof: addpprof.scope.default_sample_typeandpprof.scope.sample_type_orderattributes to support lossless conversion of pprof profiles. (#3078) -
rpc: Mark core RPC (plus gRPC and Apache Dubbo) semantic conventions as release candidate. (#3446) -
rpc: Add Metrics sections to JSON-RPC, gRPC, and Connect RPC system-specific conventions (#3319, #3320) -
rpc: Changerpc.server.call.durationandrpc.client.call.durationmetrics from recommended to required (#3284) -
rpc: Add RPC migration guide documenting changes from v1.37.0 to latest version. (#3204) -
rpc: Clarify thatnetwork.peer.addressshould indicate the last contacted address in case of retries.
(#3392, #3427) -
rpc: Add semantic conventions for Apache Dubbo RPC system. (#3291) -
rpc: Clarify how to populateserver.addressandserver.portwhen using client-side load balancing or service discovery.
(#3258, #3317) -
service: Addservice.criticalityattribute to classify services based on operational importance (#2986)
This attribute enables observability platforms to implement criticality-aware tracing, monitoring,
and sampling strategies. Supports four levels: critical, high, medium, and low. -
service: Stabilizeservice.instance.idattribute. (#1519)
Theservice.instance.idattribute and entity are promoted from development to stable. -
service: Stabilizeservice.namespaceattribute. (#3254)
Theservice.namespaceattribute is promoted from development to stable.
New Contributors
- @osullivandonal made their first contribution in #3263
- @JWinermaSplunk made their first contribution in #2924
- @bachgarash made their first contribution in #3088
- @verdie-g made their first contribution in #3163
- @Arnav-Bansal made their first contribution in #3254
- @bidetofevil made their first contribution in #3387
- @aalexand made their first contribution in #3368
Full Changelog: v1.39.0...v1.40.0