Releases: open-telemetry/semantic-conventions
Release list
v1.44.0
🛑 Breaking changes 🛑
browser: Reworked thebrowser.web_vitalevent - movedname/value/delta/idfrom the event body tobrowser.web_vital.*attributes, and added new attributes per current instrumentation. (#3401)k8s: Renamek8s.node.memory.paging.faults,k8s.pod.memory.paging.faultsandcontainer.memory.paging.faultsmetrics by dropping thememorynamespace segment.
(#3805)
Renamed metrics:- k8s.pod.memory.paging.faults -> k8s.pod.paging.faults
- k8s.node.memory.paging.faults -> k8s.node.paging.faults
- container.memory.paging.faults -> container.paging.faults
k8s: Change {container, k8s.pod, k8s.node}.memory.usage to updowncounter (#3889)
💡 Enhancements 💡
-
cloud: Add Scaleway Cloud to cloud.provider and scaleway_cloud_compute to cloud.platform (#2773) -
db: Clarifydb.query.parameter.<key>semantics around sensitive data handling.
(#3831) -
faas: The general FaaS attributes are now defined on the FaaS spans that use them, so each span documents its full attribute set. (#3905) -
host: Update the recommendations to use full path to commands when collectinghost.idattribute value.
(#3896) -
hw: Per-componenthw.errorsandhw.statusmetrics now document the full set of component-specific attributes (e.g.hw.model,hw.vendor) alongside the generic ones.
(#3808) -
k8s: Addk8s.node.filesystem.inode.countandk8s.node.filesystem.inode.freemetrics to track Kubernetes node root filesystem inode capacity and usage. (#3858) -
k8s: Promote a selection of container and K8s memory metrics to release_candidate (#3882)
The following metrics are being promoted to release_candidate:- container.memory.usage
- container.memory.available
- container.memory.rss
- container.memory.working_set
- k8s.pod.memory.usage
- k8s.pod.memory.available
- k8s.pod.memory.rss
- k8s.pod.memory.working_set
- k8s.node.memory.usage
- k8s.node.memory.available
- k8s.node.memory.rss
- k8s.node.memory.working_set
-
k8s: Clarify howcpu.usageis calculated for K8s and container entities. (#2418)
CPU usage is measured in cores/CPUs and is calculated based on the formula:
usageCores = (cpuTimeEnd - cpuTimeStart) / elapsedSeconds
This PR improves the description making it aligned with the corresponding
system and process metrics. -
messaging: Addmessaging.kafka.cluster.idattribute identifying the Kafka cluster a client is connected to, and reference it from Kafka spans. (#32) -
messaging: Define a span per messaging operation type (create, send, receive, process, settle) and refine them for each messaging system. (#3904) -
network: Promotenetwork.interface.nameattribute torelease_candidate(#3953) -
otel: Clarify thatotel.sdk.processor.span.processedandotel.sdk.processor.log.processedare recorded when the processor passes items to the exporter, not when an item is accepted into a queue or when the export operation completes, and that the export outcome does not affect these metrics.
(#3902) -
process: Add process.disk.operations, process.memory.utilization, and process.signals_pending metrics (#3937)
Process namespace has been made release candidate. During migration of process metrics to release
candidate in hostmetrics receiver, it was discovered that the following process metrics were not
present in process semantic conventions: process.disk.operations, process.memory.utilization,
and process.signals_pending. -
server, client, source, destination: The descriptions of theserver,client,source, anddestinationattribute groups are now documented in General attributes instead of the attribute registry pages.
(#3935) -
system: Addsystem.process.limitmetric representing the maximum number of concurrent tasks/threads allowed by the operating system. (#3859)
🧰 Bug fixes 🧰
otel: Clarify thatalready_shutdownonotel.sdk.processor.span.processedandotel.sdk.processor.log.processedis a value-only requirement for theerror.typeattribute: whether and when a processor drops records because it has already been shut down is governed by the SDK specification, not by this metric.
(#3957)rpc: Fix wording inserver.addressnote to say "reverse DNS lookup" instead of "reverse proxy lookup".
(#3871)rpc: Remove tracing-onlyrpc.method_originalguidance from the sharedrpc.methoddefinition.
(#3872)
New Contributors
- @Jaegeonyoon made their first contribution in #3843
- @shashank-reddy-nr made their first contribution in #3819
- @lachmatt made their first contribution in #3896
- @jaredDlewis made their first contribution in #3851
Full Changelog: v1.43.0...v1.44.0
v1.43.0
🚩 Deprecations 🚩
docs: Add a generic signal requirement level document and deprecate the metric-specific one.
(#3810, #3278)
💡 Enhancements 💡
-
azure: Addazure.resource_group.nameattribute for the name of the Azure resource group the resource belongs to and document thatcloud.account.idmaps to the Azure subscription ID. (#3697, #3708) -
cicd: Promote CI/CD span, metric, log, attribute, and entity conventions torelease_candidate(#3674, #3675, #3677) -
db: Clarifydb.operation.batch.sizesemantics for database batch operations, including multi-operand operations, parameterized operation batch APIs, and empty batches.
(#3811) -
db: Promote Oracle Database connection attributes to release candidate so the RCdb.oracledb.clientspan does not reference lower-stability attributes. (#3753) -
disk, network, system: Promote disk.io.direction, network.io.direction, and system.paging.fault.type attributes to RC (#3796)
Thenetwork.io.directionbrief was updated based on review feedback to clarify that
it describes traffic at the observing interface boundary and is not intended to represent
logical connection or network flow direction. -
otel: Clarify that theotel.span.sampling_resultattribute ofotel.sdk.span.livecan only take valuesRECORD_ONLYandRECORD_AND_SAMPLE, notDROP, since the metric does not count non-recording spans.
(#3782) -
process: Promote process metrics and entity to release_candidate (#3041) -
rpc: Clarify how to populateserver.addressandserver.portfor Dubbo consumers using service discovery. (#3408) -
schema: Add registry manifest. (#3824) -
telemetry: Addkotlinas a value for thetelemetry.sdk.languageattribute. (#3552) -
vcs: Promote VCS attribute, entity, and metric conventions torelease_candidate(#3676)
🧰 Bug fixes 🧰
db: Align Oracle Databasedb.query.textguidance with other SQL database conventions. (#3790)
Parameterized query text is now recommended to be collected by default, while
query parameter values remain opt-in.
New Contributors
- @kathiehuang made their first contribution in #3722
Full Changelog: v1.42.0...v1.43.0
v1.42.0
📣 Highlights 📣
- Generative AI Migration: All
gen_ai.*attributes, metrics, events, and spans have been deprecated and moved to the dedicated OpenTelemetry GenAI Semantic Conventions Repository. (#3696) - Graduations to Stable: A core selection of Kubernetes and container registry resource attributes have officially graduated to
stablestatus. (#3382) - Promotions to Release Candidate: Several conventions advanced to
release_candidate, includingcpu.mode(#3694), process attributes (#3041), and core CPU time metrics (k8s.pod.cpu.time,k8s.node.cpu.time, andcontainer.cpu.time) (#3001).
Changelog
🛑 Breaking changes 🛑
-
gen-ai: Move Generative AI semantic conventions to a dedicated repository. (#3696)
Allgen_ai.*attributes, metrics, events, and spans previously defined under
model/gen-ai/,model/openai/, andmodel/mcp/(and documented under
docs/gen-ai/) are deprecated in this repository and have moved to the
OpenTelemetry GenAI semantic conventions repository.Instrumentations following the new repository's conventions should refer to
it for the correspondingschema_urlto use. -
http: Changenetwork.peer.addressattribute requirement level from Recommended to Opt-In on thehttp.client.open_connectionsandhttp.client.connection.durationmetrics. (#3279)
network.peer.addressis typically high-cardinality (one time series per remote IP)
and causes unbounded growth of metric streams over the lifetime of the process when
exported with cumulative temporality (always the case forhttp.client.open_connections
since it is an UpDownCounter, and possible forhttp.client.connection.durationwhen
the histogram is configured for cumulative). Operators that need this attribute can
still opt-in. -
v8js: Renamev8js.memory.heap.limittov8js.memory.heap.space.size(per-space pre-allocated size fromv8.getHeapSpaceStatistics()),
and add a newv8js.memory.heap.limitUpDownCounter representing the absolute heap size limit fromv8.getHeapStatistics().heap_size_limit
(controlled by--max-old-space-sizeor V8 defaults).
(#3476)
🚀 New components 🚀
browser: Introducebrowser.document.url.fullattribute andbrowser.documententity to capture the absolute URL of the current browser document. (#174)
Thebrowser.documententity is introduced as a separate entity frombrowserbecause
the browser runtime attributes (brands, platform, language) are immutable for the SDK
lifetime, while the document URL changes on every navigation. The new attribute follows
RFC3986 and hasRecommendedrequirement level atDevelopmentstability.
💡 Enhancements 💡
-
app: Defines a basic crash of an end-user facing app that requires a minimal amount of information. (#3448) -
cpu: Promotecpu.modeattribute and its enum members torelease_candidate(#3694) -
docs: Add guidance for defining events in semantic conventions. (#1855) -
docs: Don't allow signal definition to reference attributes with lower stability than the signal itself (unless they are opt-in).
(#3752) -
gcp: Add GCE instance labels as resource attributes. (#2617) -
k8s: Promotek8s.pod.cpu.time,k8s.node.cpu.timeandcontainer.cpu.timemetrics torelease_candidate(#3001) -
k8s: Add metrick8s.container.ephemeral_storage.usageto track ephemeral storage usage by containers. (#3681)
This metric includes an attributek8s.container.ephemeral_storage.fs_typeto distinguish betweenrootfsandlogsusage. -
k8s: Promote a selection of k8s and container registry attributes tostable(#3382) -
otel: Clarify semantics of SDK exporter metrics when the exporter performs retries: an export operation is considered finished only after the final attempt has concluded, items are counted exactly once per operation, andotel.sdk.exporter.operation.durationrecords one observation per operation covering all attempts and backoff. Also drop a spuriouserror.typenote from the*.inflightmetrics, which do not carry anerror.typeattribute.
(#3770) -
otel: Reservealready_shutdownas a value forerror.typeon theotel.sdk.processor.span.processedandotel.sdk.processor.log.processedmetrics, used when a processor drops items because it has already been shut down.
(#3710) -
process: Promote process attributes to release_candidate (#3041) -
profile: Extend the list of known frame types with a value for LuaJIT (#3707) -
service: Markservice.criticalityattribute as alpha. (#2986)
Theservice.criticalityattribute and its allowed values (critical,high,medium,low)
are now in alpha status. -
system, file: Add support for filesystem lock counts (#3611) -
v8js: Updatev8js.gc.durationmetric to match bucket boundaries used by Node.js instrumentation. (#3761)
🧰 Bug fixes 🧰
browser: remove the condition to includeuser_agent.originalattribute in browser resource (#3738)cicd: Consistent spelling of "CI/CD" throughout the CICD registry. (#3634)container: Remove kernel from cpu.mode enum and clarify container cpu states (#3700)k8s: Excludek8s.container.cpu.limit_utilizationandk8s.container.cpu.request_utilizationmetrics from code generation (#3711, #3705)
New Contributors
- @mquentin made their first contribution in #3633
- @Hronom made their first contribution in #3481
- @Dipanshusinghh made their first contribution in #3739
- @mcollina made their first contribution in #3761
- @david-luna made their first contribution in #3738
- @Ayushi-12 made their first contribution in #3781
Full Changelog: v1.41.0...v1.42.0
v1.41.1
v1.41.0
🛑 Breaking changes 🛑
-
gen-ai: Execute tool call requires the name of the tool used for span naming. (#3595) -
graphql: Changegraphql.documentattribute requirement level from Recommended to Opt-In due to sensitive data, cardinality, and size concerns (#2985)
Thegraphql.documentattribute contains user-inputted data that is often sensitive,
potentially unbounded in length, and high-cardinality. Moving from Recommended to Opt-In
ensures operators make an informed decision before enabling this attribute.
Also updated the note to use SHOULD for stronger normative language regarding sanitization. -
process: Move process.executable to its own entity. (#3535)- Move process.executable to its own entity
- Identifying attribute:
- process.executable.build_id.htlhash
- We need to update its description in another PR.
- process.executable.build_id.htlhash
- Descriptive attributes:
- process.executable.build_id.go
- process.executable.build_id.gnu
- process.executable.path
- process.executable.name
-
process: Update requirement levels for process attributes to ensure consistent identification and description across platforms. (#864)- Changed
process.pidandprocess.creation.timeto beRequired(Identity). - Changed process descriptive attributes to be
Optional.
- Changed
-
rpc: Removeclient.addressandclient.portattributes from RPC server spans. (#3487, #3488)
💡 Enhancements 💡
-
Go: Add opt-in go.memory.gc.pause.duration histogram metric. (#3353) -
cicd: Clarify thatcicd.pipeline.task.run.idmust be unique within a pipeline run. (#3566)
This id may be used for correlating results of a task across several pipeline runs. -
configuration: Defined declarative configuration for semantic convention version selection. (#3424) -
configuration: Clarify that theexperimentalflag should not be used to gate incomplete implementations of stable convention versions. (#3505) -
db: Includedb.system.namevalue changes in database migration guide. (#3557) -
db: Clarifydb.response.returned_rowswhen captured on spans. (#3480) -
db: Clarify database client span duration. (#3479) -
deployment: Stabilizedeployment.environment.nameattribute. (#3339)
Thedeployment.environment.nameattribute is promoted from development to stable. -
deployment: Add enum values fordeployment.environment.nameattribute. (#2910)
Thedeployment.environment.nameattribute now has well-known enum values: Production, Staging, Test, and Development. -
exception: Improve exception event definition: add guidance on how to set event name and severity.
(#3311) -
exceptions: Add guidance thaterror.typeandexception.typemay unwrap uninformative wrapper types. (#3588, #3623) -
faas: Define domain-specific exception event for FaaS invocations (#3451)
This domain-specific exception event provides a structured way to record
exceptions that occur during FaaS function invocations:faas.invocation.exceptionfor exceptions during function execution
-
gen-ai: Enhance the definition ofgen_ai.tool.definitionsattribute. (#2721, #1835)
The schema ofgen_ai.tool.definitionsattribute is now enhanced to:- Add JSON schema of
gen_ai.tool.definitionsattribute. - Document the behavior of capturing tool definitions.
- Capture the tool definitions in a simplified format if the content capturing is disabled.
- Add JSON schema of
-
gen-ai: Addgen_ai.usage.reasoning.output_tokensattribute for reasoning tokens (#3194)- Add
gen_ai.usage.reasoning.output_tokensfor tokens used for reasoning
- Add
-
gen-ai: Definegen_ai.client.operation.exceptionevent for recording exceptions during Generative AI client operations (#3436)
This domain-specific exception event provides a structured way to record
exceptions that occur during Generative AI client operations (API errors,
rate limiting, timeouts). -
gen-ai: Add invoke workflow operation name support to the gen-ai semantic conventions. (#2912) -
gen-ai: Addgen_ai.client.operation.time_to_first_chunkandgen_ai.client.operation.time_per_output_chunkmetrics. (#3113)- Add
gen_ai.client.operation.time_to_first_chunkmetric to track time from client request to first chunk of response. - Add
gen_ai.client.operation.time_per_output_chunkmetric to track time per output chunk of response.
- Add
-
gen-ai: Splitinvoke_agentinto separate client and internal spans, and split attributes from inference hierarchy. (#2632)
Theinvoke_agentclient span now extends a dedicatedattributes.gen_ai.invoke_agent.client
attribute group instead ofattributes.gen_ai.inference.client. This removes
gen_ai.response.id,gen_ai.response.model, andgen_ai.response.finish_reasons
and addsgen_ai.agent.version.
A newinvoke_agentinternal span is added for in-process agents (e.g., LangChain, CrewAI),
which does not includeserver.address,server.port, or token usage attributes. -
gen-ai: Addedgen_ai.response.modelattribute to embeddings spans. (#3499) -
gen_ai: Add streaming attributes for GenAI inference spans (#3598)
Addsgen_ai.request.stream(boolean) andgen_ai.response.time_to_first_chunk(double)
attributes for streaming inference operations. -
go: Add the go.cpu.time opt-in metric, and add go.cpu.detailed_state and go.memory.detailed_type attributes to CPU and memory metrics respectively with wildcard values. (#3354) -
go: Add the opt-in go.memory.gc.cycles metric. (#3353) -
http: Clarify that intentional client-side cancellation of HTTP requests SHOULD NOT be treated as an error. (#3495) -
k8s: Add PersistentVolume and PersistentVolumeClaim entities with phase and storage metrics. (#3375)
Entities:k8s.persistentvolumek8s.persistentvolumeclaim
Metrics:k8s.persistentvolume.status.phase,k8s.persistentvolume.storage.capacityk8s.persistentvolumeclaim.status.phase,k8s.persistentvolumeclaim.storage.request,
k8s.persistentvolumeclaim.storage.capacity
-
k8s: Update CPU metrics for container CPU limit and request to handle resize. (#3558)
Introduced new metrics for container CPU limit and request that account for
KEP 1287 allowing for in-place updates of container resources. -
k8s: Promote a selection of k8s/container attributes to release_candidate (#3491, #3380) -
k8s: Split container memory limit/request into desired/current to handle in-place resize (#3558)
Introduced new metrics for container memory limit and request that account for
KEP 1287 allowing for in-place updates of container resources. -
k8s: Addk8s.node.system_container.*metrics to capture node-level system daemon metrics. (#3531) -
messaging: Define domain-specific exception events for messaging (#3435)
These domain-specific exception events provide a structured way to record
exceptions that occur during messaging operations:messaging.create.exceptionfor messaging create operationsmessaging.send.exceptionfor messaging send operationsmessaging.receive.exceptionfor messaging receive operationsmessaging.settle.exceptionfor messaging settle operations- `messaging.pro...
v1.40.0
🛑 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)
The...
v1.39.0
🛑 Breaking changes 🛑
rpc: Renamerpc.client|server.durationtorpc.client|server.call.duration, change RPC duration metrics from milliseconds to seconds, and clarify metric and span duration semantics for streaming. (#383, #2961)rpc: Renamerpc.grpc.request.metadataandrpc.connect_rpc.request.metadatatorpc.request.metadatarpc.grpc.response.metadataandrpc.connect_rpc.response.metadatatorpc.response.metadata
(#2869, #3169)rpc: Mergerpc.methodandrpc.serviceinto fully-qualifiedrpc.methodattribute. Clarify how to handle possible high cardinality ofrpc.methodin edge cases. Clarifyrpc.methodusage in span names. (#2863, #3196, #3223)rpc: Deprecaterpc.grpc.status_code,rpc.connect_rpc.error_codeandrpc.jsonrpc.error_codeattributes in favor of the more generalrpc.response.status_codeattribute.
(#1504, #2920)rpc: Align RPC conventions with naming guidelines. Renames:rpc.systemtorpc.system.name. The values are also updated to match
naming guidelines:connect_rpcis renamed toconnectrpc;
apache_dubbois renamed todubbo;
java_rmi,dotnet_wcf, andonc_rpcare not included in the new enum.rpc.jsonrpc.request_idtojsonrpc.request.id.rpc.jsonrpc.versiontojsonrpc.protocol.version.
(#2703, #2921)
system, linux: Rename*.linux.memorymetrics and attributes to*.memory.linux(#1661)
🚩 Deprecations 🚩
peer: Thepeer.serviceattribute has been deprecated in favor ofservice.peer.name. (#2945)
Thepeer.serviceattribute has been renamed toservice.peer.nameto align with theservice.{name|namespace}resource attributes.process: Introduceprocess.unix.file_descriptor.countandprocess.windows.handle.countmetrics.
Deprecateprocess.open_file_descriptor.count
(#3188)
💡 Enhancements 💡
-
cloud: Addgcp.agent_engineas a value forcloud.platform(#2957) -
cloud: Add Oracle Cloud Infrastructure to SemConv Areas list (#3190) -
cloud: Add Hetzner Cloud to cloud.provider and cloud.platform (#2758) -
cloud: Add Linode (Akamai Cloud) to cloud.provider and linode_cloud_compute to cloud.platform (#2756) -
cloud: Add Vultr Cloud to cloud.provider and cloud.platform (#2757) -
k8s: Add missing entity associations to k8s and container metrics (#3213) -
k8s: Addsk8s.pod.ip,k8s.pod.hostnameandk8s.pod.start_timeattributes (#3171) -
k8s: Define missing roles for entity attributes (#3135) -
k8s: Promote a selection of k8s and container attributes to alpha (#3120)
The selected attributes being promoted are used by the Collector Contrib components
that are targeting stability. See opentelemetry-collector-contrib/#44130 -
k8s: Define roles for k8s entities' attributes (#3017) -
otel: Addotel.event.nameattribute for use by non-OTLP exporters and logging libraries. (#2913)
Theotel.event.nameattribute can be used by:- Non-OTLP exporters to emit the
EventName - Applications using existing logging libraries to add event name information that can be used to set the
EventNamefield by Collector or SDK components
- Non-OTLP exporters to emit the
-
pprof: add various pprof attributes to support lossless conversion from and to OTel profiles. (#3078) -
rpc: Use consistent set of attributes between RPC spans and metrics (#2922, #3197)- Use
rpc.response.status_codeon common metrics and spans. - Make
error.typenote consistent between metrics and spans. - Promote notes on
rpc.methodandrpc.serviceto attribute definition.
- Use
-
rpc: Markrpc.system.name,rpc.method,rpc.service,server.address, andserver.portas sampling relevant attributes in RPC spans.
(#3202) -
service: Splits service into three entities: namespace, service and instance. (#2880) -
service:service.peer.nameandservice.peer.namespacehave been introduced as the replacement forpeer.serviceto describe remote services that use both a name and a namespace. (#2945)
Thepeer.serviceattribute could not fully represent theservice.{name|namespace}resource attributes;
service.peer.nameandservice.peer.namespaceprovide a more complete representation.
🧰 Bug fixes 🧰
rpc: Demoteserver.addressfrom required to conditionally required (when available) on RPC spans and metrics. Updateserver.portrequirement level accordingly. (#3236)
New Contributors
- @paulojmdias made their first contribution in #2756
- @codeboten made their first contribution in #3164
- @marleypowell made their first contribution in #3166
- @mmanciop made their first contribution in #3097
Full Changelog: v1.38.0...v1.39.0
v1.38.0
🛑 Breaking changes 🛑
-
k8s: Renamek8s.node.allocatable.*metrics tok8s.node.*.allocatable(#2973)
Renamed metrics:- k8s.node.allocatable.cpu -> k8s.node.cpu.allocatable
- k8s.node.allocatable.memory -> k8s.node.memory.allocatable
- k8s.node.allocatable.ephemeral_storage -> k8s.node.ephemeral_storage.allocatable
-
k8s: Fix plural-named updowncounter k8s metrics (#2301)
Renamed metrics:- k8s.node.allocatable.pods -> k8s.node.pod.allocatable
- k8s.daemonset.current_scheduled_nodes -> k8s.daemonset.node.current_scheduled
- k8s.daemonset.desired_scheduled_nodes -> k8s.daemonset.node.desired_scheduled
- k8s.daemonset.misscheduled_nodes -> k8s.daemonset.node.misscheduled
- k8s.daemonset.ready_nodes -> k8s.daemonset.node.ready
- k8s.job.active_pods -> k8s.job.pod.active
- k8s.job.failed_pods -> k8s.job.pod.failed
- k8s.job.successful_pods -> k8s.job.pod.successful
- k8s.job.desired_successful_pods -> k8s.job.pod.desired_successful
- k8s.job.max_parallel_pods -> k8s.job.pod.max_parallel
- k8s.cronjob.active_jobs -> k8s.cronjob.job.active
- k8s.deployment.desired_pods -> k8s.deployment.pod.desired
- k8s.deployment.available_pods -> k8s.deployment.pod.available
- k8s.replicaset.desired_pods -> k8s.replicaset.pod.desired
- k8s.replicaset.available_pods -> k8s.replicaset.pod.available
- k8s.replicationcontroller.desired_pods -> k8s.replicationcontroller.pod.desired
- k8s.replicationcontroller.available_pods -> k8s.replicationcontroller.pod.available
- k8s.statefulset.desired_pods -> k8s.statefulset.pod.desired
- k8s.statefulset.ready_pods -> k8s.statefulset.pod.ready
- k8s.statefulset.current_pods -> k8s.statefulset.pod.current
- k8s.statefulset.updated_pods -> k8s.statefulset.pod.updated
- k8s.hpa.desired_pods -> k8s.hpa.pod.desired
- k8s.hpa.current_pods -> k8s.hpa.pod.current
- k8s.hpa.max_pods -> k8s.hpa.pod.max
- k8s.hpa.min_pods -> k8s.hpa.pod.min
-
process: Renames process.context_switch_type to process.context_switch.type (#1501) -
rpc: Attributes for rpc metric are now explicitly associated with metrics. (#2311)
The breaking change is due to the removal of network.type from the metrics. -
system: Markcpu.logical_numberattribute as opt-in forsystem.cpu.timeandsystem.cpu.utilizationmetrics (#2932) -
system, process: Renamesystem.process.statustoprocess.state(#1803) -
system, process: Replacesystem.paging.typeandprocess.paging.fault_typewithsystem.paging.fault.type(#1803) -
v8js: Rename metricv8js.heap.space.available_sizetov8js.memory.heap.space.available_size.
Rename metricv8js.heap.space.physical_sizetov8js.memory.heap.space.physical_size.
(#2856)
🚩 Deprecations 🚩
rpc: Deprecate rpc..requests_per_rpc and rpc..responses_per_rpc metrics. (#2784)system: Fix deprecation of system.cpu.logical_number (#2700)
💡 Enhancements 💡
-
app: Addapp.screen.nameattribute to capture application screen names. (#2743) -
cicd: Add guidance on per pipeline run metrics (#1184) -
cicd: Improve the description ofcicd.workerentities. (#1191) -
cicd: Add guidance on CI/CD logs (#1714) -
db: Add database context propagation viaV$SESSION.ACTIONfor SQL Server (#2610) -
gcp: Documentgcp.apphub_destination.*attributes (#2649) -
gen-ai: Add participant's name on generative AI chat message. (#2943) -
gen-ai: Add tool definitions and execution details for Single and Multi-Agent systems -
Add 'gen_ai.tool.definitions' attribute to 'invoke_agent' span
-
Add 'gen_ai.tool.definitions' attribute to 'attributes.gen_ai.inference.client' attribute group.
-
Add 'gen_ai.tool.call.arguments' and 'gen_ai.tool.call.result' attributes to 'execute_tool' span.
(#2444, #591) -
gen-ai: IntroducingEvaluation Eventin GenAI Semantic Conventions to represent and capture evaluation results.
(#2563) -
gen-ai:invoke_agentspans now include span kind (CLIENT/INTERNAL) guidance and clarify whenserver.*attributes should be set. (#2837) -
gen-ai: Add reasoning content message parts for chat messages. (#1965) -
gen_ai: Addgen_ai.embeddings.dimension.countattribute to capture the dimension count of embeddings. (#2361)
Thegen_ai.embeddings.dimension.countis added to thespan.gen_ai.embeddings.clientspan
andgen_ai.client.operation.durationmetric. -
gen_ai: Add multimodaluri,file, andblobparts to GenAI JSON Schemas (#1556) -
gen_ai, db, enduser, messaging: Fix deprecation reasons - use uncategorized when attribute type is changing. Fix missing/invalid deprecations on (deprecated)gen_ai.systemattribute.
(#2688) -
http: Adds in the HTTP QUERY method. (#2642) -
http: Clarify value forhttp.routeattribute may contain static and dynamic segments. (#2616) -
k8s: Add container CPU limit/request utilization metrics. (#1489) -
k8s: Add k8s.pod.status.phase and k8s.pod.status.reason metrics (#2075) -
k8s: Add memory metrics for k8s.node, k8s.pod and container resources (#2776) -
nfs: Addnfs.*metrics, along with supportingrpc.onc.*/rpc.nfs.*attributes. (#39978) -
openshift: Adds metrics for openshift's clusterquota (#2078) -
pprof: Introduce pprof attributes. (#2522) -
pprof: add attribute pprof.profile.comment. (#2861) -
process: Increases the amount of attributes which are used to describe the running process. (#2655) -
rpc: JSON-RPC now has its own span definition. (#2228) -
rpc: Adds innetwork.protocol.nameandnetwork.protocol.versionto all RPC spans and metrics. (#2719) -
rpc: Adds in explicit span definitions for Connect RPC. (#2720) -
rpc: Removenetwork.typeattribute from RPC spans and metrics (#2851)
Thenetwork.typeattribute is no longer included in RPC semantic conventions.
It remains available in the attribute registry for opt-in usage when needed. -
rpc: Adds in explicitly defined grpc spans. (#2720) -
rpc: Update the RPC stability warning and guidance for instrumentation authors (#2718) -
rpc: The rpc spans now contains theerror.typeattribute to report the type of error that occurred. (#2812)
🧰 Bug fixes 🧰
-
dns: Simplifydns.question.namenote to remove incorrect custom encoding requirements (#2143)
The note now simply states that the domain name should be captured as it appears in the DNS query
without any additional normalization, removing the previous incorrect custom encoding requirements. -
nfs: nfs/metrics.yaml: nfs.server.net.count: add missing network.transport attribute. Implementation not merged, so not a breaking change. (#39978) -
system: Thesystem.network.droppedandsystem.network.packetsmetrics have been added as deprecated rather than being removed. ([#2828](https://github.com/open-te...
v1.37.0
🛑 Breaking changes 🛑
gen-ai: Revamp how GenAI chat history is recorded. Instead of per-message events,
we now havegen_ai.system_instructions,gen_ai.input.messages, and
gen_ai.output.messagesattributes that can appear on GenAI spans or the new
gen_ai.client.inference.operation.detailsevent.
New attributes are not recorded by default when content capturing is disabled.
Deprecations:gen_ai.system.messageevent - usegen_ai.system_instructionsor
gen_ai.input.messagesattributes instead.gen_ai.user.message,gen_ai.assistant.message,gen_ai.tool.messageevents
(usegen_ai.input.messagesattribute instead)gen_ai.choiceevent (usegen_ai.output.messagesattribute instead)
(#2010, #2179, #1913, #1621, #1912)
container: The container runtime can now also have the version and description provided (#2342)gen-ai: Follow system-specific naming policy in GenAI semantic conventions.- Rename
gen_ai.systemtogen_ai.provider.name - Remove
gen_aiprefix fromgen_ai.openai.*attributes. - Rename
az.ai.*attribute names toazure.ai.*.
(#2046)
- Rename
system: Rename system.network.dropped to system.network.packet.dropped and system.network.packets to system.network.packet.count (#1700)
💡 Enhancements 💡
all: Addmetric_value_typecode-generation annotation to all metric definitions. (#2444, #591)http: Clarify howserver.addressandserver.portshould be populated by HTTP client instrumentations. (#2443, #2463)otel: Addotel.scope.schema_urlattribute to non-OTLP exporters that represents an instrumentation scope schema URL. (#2320, #2489)aspnetcore: Add ASP.NET Core Identity metrics and update the registry. (#2509)gen-ai: Add operation name and tool type attributes for Execute tool span. (#2525, #2526)aspnetcore: Add ASP.NET Core authentication and authorization metrics and update the registry. (#2530)aspnetcore: Add ASP.NET Core memory pool metrics and update the registry. (#2532)app: Defines a new app.build_id attribute. (#2591)k8s: Add k8s node, pod, container filesystem metrics (#1488)k8s: Add k8s Pod Volume metrics (#1485)messaging: Added in AWS SNS as messaging systems (#2266)system: Used memory should be based on operating system's internals (#2534)db: Add context propagation via SQL commenter for databases (#2162)hardware: Move text hardware metrics to the hardware components, yaml and md files (#2380)app: Defines a new jank event in the app domain (#2552)docs: Document the "T-Shaped" notion for defining semantic conventions. (#2232)
New Contributors
- @martincostello made their first contribution in #2500
- @joschi made their first contribution in #2539
- @qnnn made their first contribution in #2526
- @LikeTheSalad made their first contribution in #2591
- @Cirilla-zmh made their first contribution in #2679
Full Changelog: v1.36.0...v1.37.0
v1.36.0
🚩 Deprecations 🚩
os: Adds the 'deprecated:' tag/attribute to thez_osenum value ofos.type. This value was recently deprecated in v1.35.0. (#2479)
💡 Enhancements 💡
otel: Replacesotel.sdk.span.endedwithotel.sdk.span.startedand allow differentiation based on the parent span origin (#2431)db: Add database context propagation viaSET CONTEXT_INFOfor SQL Server (#2162)entities: Adds support for Entity registry and Entity stabilization policies. (#2246)
🧰 Bug fixes 🧰
cloud: Exclude deprecated Azure members from code generation on thecloud.platformattribute (#2477, #2455)
Full Changelog: v1.35.0...v1.36.0