108 KiB
Changelog
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, andgen_ai.output.messagesattributes that can appear on GenAI spans or the newgen_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_instructionsorgen_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)
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)
v1.35.0
🛑 Breaking changes 🛑
-
azure: Align azure events, attributes, and enum members with general naming guidelines. (#608, #1708, #1698)- Renamed attributes:
az.service_request_idtoazure.service.request.idaz.namespacetoazure.resource_provider.namespace
- Renamed events:
az.resource.logtoazure.resource.log
- Renamed enum members:
az.ai.inferencetoazure.ai.inference(ongen_ai.system)az.ai.openaitoazure.ai.openai(ongen_ai.system)azure_akstoazure.aks(oncloud.platform)azure_app_servicetoazure.app_service(oncloud.platform)azure_container_appstoazure.container_apps(oncloud.platform)azure_container_instancestoazure.container_instances(oncloud.platform)azure_functionstoazure.functions(oncloud.platform)azure_openshifttoazure.openshift(oncloud.platform)azure_vmtoazure.vm(oncloud.platform)
- Renamed attributes:
-
system: Revert the change that movedsystem.cpu.*tocpu.*. The 3 affected metrics are back insystem.cpu.*. (#1873) -
system: Changes system.network.connections to system.network.connection.count (#1800) -
k8s: Change instrument type for .limit/.request container metrics from gauge to updowncounter (#2354)
🚩 Deprecations 🚩
os: Deprecate os.type='z_os' and replace with os.type='zos' (#1687)
🚀 New components 🚀
mainframe, zos: Add initial semantic conventions for mainframes (#1687)
💡 Enhancements 💡
-
dotnet: Define .NET-specific network spans for DNS resolution, TLS handshake, and socket connections, along with HTTP-level spans to (optionally) record relationships between HTTP requests and connections. (#1192) -
k8s: Addk8s.node.allocatable.cpu,k8s.node.allocatable.ephemeral_storage,k8s.node.allocatable.memory,k8s.node.allocatable.podsmetrics (#2243) -
k8s: Add k8s.container.restart.count metric (#2191) -
k8s: Add K8s container resource related metrics (#2074) -
k8s: Add k8s.container.ready metric (#2074) -
k8s: Add k8s.node.condition metric (#2077) -
k8s: Add k8s resource quota metrics (#2076) -
events: Update general event guidance to allow complex attributes on events and use them instead of the body fields. (#1651, #1669) -
k8s: Add k8s.container.status.state and k8s.container.status.reason metrics (#1672) -
feature_flags: Mark feature flag semantic convention as release candidate. (#2277) -
k8s: Add new resource attributes fork8s.hpato capture thescaleTargetReffields (#2008) Adds below attributes to thek8s.hparesource:k8s.hpa.scaletargetref.kindk8s.hpa.scaletargetref.namek8s.hpa.scaletargetref.api_version
-
k8s: Adds metrics and attributes to track k8s HPA's metric target values for CPU resources. (#2182) Below metrics are introduced to provide insight into HPA scaling configuration for CPU.k8s.hpa.metric.target.cpu.valuek8s.hpa.metric.target.cpu.average_valuek8s.hpa.metric.target.cpu.average_utilization
-
k8s: Explains the rationale behind the Kubernetes resource naming convention. (#2245) -
all: Adds modelling guide for resource and entity. (#2246) -
service: Adds stability policies for Entity groups. (#2378) Entity groups now requireroleto be filled for attributes. -
otel: Specifies component.type values for Zipkin and Prometheus exporters (#2229)
🧰 Bug fixes 🧰
otel: Removesotel.scopeentity. (#2310)
v1.34.0
🛑 Breaking changes 🛑
-
all: Convert deprecated text to structured format. (#2047) This is a breaking change from the schema perspective, but does not change anything for instrumentations or the end users. It breaks compatibility with the (old) code generation tooling. Please use weaver to generate Semantic Conventions markdown or code. -
feature_flag: Move the evaluated value from the event body to attributes (#1990) -
process: Require sensitive data sanitization forprocess.command_argsandprocess.command_line(#626)
💡 Enhancements 💡
docs: Document system-specific naming conventions (#608, #1494, #1708)gen-ai: Addgen_ai.conversation.idattribute (#2024)all: Renames allresource.*groups to beentity.*(#2244) Part of open-telemetry/opentelemetry-specification#4436aws: Added new AWS attributes for various services including SQS, SNS, Bedrock, Step Functions, Secrets Manager and Kineses (#1794)cloud: Broadencloud.regiondefinition to explicitly cover both resource location and targeted destination. (#2142)network: Stabilizenetwork.transportenum valuequic. (#2275)
🧰 Bug fixes 🧰
db: Fix thedb.system.nameattribute value for MySQL which was incorrectly pointing tomicrosoft.sql_server. (#2276)
v1.33.0
This release marks the first where the core of database semantic conventions have stabilized.
🛑 Breaking changes 🛑
db: Adddb.query.parameter, replace relevant usages ofdb.operation.parameter(#2093)db: Makedb.response.returned_rowsopt-in onrelease_candidatespans (#2211)db: Use|as the separator whendb.namespaceis a concatenation of multiple components. (#2067)feature_flag: Renamefeature_flag.provider_nametofeature_flag.provider.name(#1982)feature_flag: Use genericerror.messagein feature flag evaluation event (#1994)gen-ai: Refine the values forgen_ai.systemrelated to Google's AI endpoints. (#1950) Enable sharing of attributes between Vertex AI and Gemini through a common prefix.k8s: Make k8s Node and Pod labels optional (#2079)otel: Rename span health metrics to remove the .count suffixes (#1979)
🚀 New components 🚀
db: Adding semantic conventions fororacledbinstrumentations. (#1911) Oracle Database semantic conventions.browser: Add browser web vitals event. (#1940)
💡 Enhancements 💡
-
cicd: Add resource conventions for CICD systems and define spans for CICD pipeline runs. (#1713) Define spanscicd.pipeline.run.serverandcicd.pipeline.task.internal. Addcicd.pipeline.action.name,cicd.worker.id,cicd.worker.name,cicd.worker.url.fullandcicd.pipeline.task.run.resultto attribute registry. Define resourcescicd.pipeline,cicd.pipeline.runandcicd.worker. Add entity associations in cicd metrics for these new cicd resources. -
vcs: Add resource conventions for VCS systems and VCS references. (#1713) Define resourcesvcs.repoandvcs.ref. Add entity associations in vcs metrics for these new vcs resources. -
gen-ai: Adding span for invoke agent (#1842) -
gen-ai: Adding gen_ai.tool.description to the span attributes (#2087) -
gen-ai: Separate inference and embeddings span definitions, remove irrelevant attributes from the create agent span. (#1924, #2122) -
general: Provide guidance on modeling lat/lon, x/y, etc (#2145) -
db: Movedb.query.parameter.<key>from release_candidate back to development. (#2194) -
db: Mark database semantic conventions as stable for MariaDB, Microsoft SQL Server, MySQL, and PostgreSQL. (#2199) -
db: Makedb.operation.namerequired where it's available, add recommendation for instrumentation point. (#2200, #2098) -
db: Adddb.stored_procedure.nameto the general span conventions (#2205) -
db: Add an option to generatedb.query.summaryfrom operation name and target, remove it from CosmosDB. (#2206) -
db: Adddb.operation.nameanddb.collection.nameto SQL for higher-level APIs (#2207) -
jvm: Addjvm.file_descriptor.countas an in-development metric to track the number of open file descriptors as reported by the JVM. (#1838) -
jvm: Addjvm.gc.causeto metricjvm.gc.durationas an opt-in attribute to track gc cause. (#2065) -
process: Add process.environment_variable. (#672) -
app: Defines two new click events for the app domain (#2070) -
code: Markcode.*semantic conventions as stable (#1377) -
k8s: Introduce semantic conventions for k8s CronJob labels and annotations (#2138) -
k8s: Introduce semantic conventions for k8s DaemonSet labels and annotations (#2136) -
k8s: Introduce semantic conventions for k8s Deployment labels and annotations (#2134) -
system: Added entity association template rendering and policies. (#1276) -
gen_ai: Documentgenerate_contentas a permissible value ofgen_ai.operation.name. (#2048) -
k8s: Introduce semantic conventions for k8s Job labels and annotations (#2137) -
otel: Adds SDK self-monitoring metrics for metric processing (#2016) -
k8s: Introduce semantic conventions for k8s Namespace labels and annotations (#2131) -
k8s: Introduce semantic conventions for k8s Node labels and annotations (#2079) -
k8s: Introduce semantic conventions for k8s ReplicaSet labels and annotations (#2132) -
otel: Adds SDK self-monitoring metric for exporter call duration (#1906) -
k8s: Introduce semantic conventions for k8s StatefulSet labels and annotations (#2135)
🧰 Bug fixes 🧰
gen-ai: Removed irrelevant response attributes on GenAI create agent span. (#1924, #2116)vcs: Fix typo in gitea name (#2057)gen-ai: Add invoke_agent as a member of gen_ai.operation.name (#2160)db: Clarifydb.query.summaryfor stored procedures (#2218)
v1.32.0
🛑 Breaking changes 🛑
device: Change the definition ofdevice.idand make it opt-in. (#1874, #1951)feature_flag: Renameevaluationtoresultfor feature flag evaluation result attributes (#1989)
🚀 New components 🚀
app: Createapp.installation.idattribute (#1874, #1897)cpython: Add CPython runtime garbage collector metrics (#1930)
💡 Enhancements 💡
vcs: Add owner and provider name to VCS attribute registry (#1452)vcs: Remove fallback value for VCS provider name attribute (#2020)db: Truncatedb.query.summaryto 255 characters if parsed from the query (#1978)db: Normalize spaces indb.operation.name(if any) (#2028)db:db.operation.parameter.<key>should not be captured for batch operations (#2026)db: Adddb.stored_procedure.name(#1491)gcp: Adds GCP AppHub labels for resource. (#2006)error: Adderror.messageproperty for human-readable error message on events. (#1992)profile: Extend the list of known frame types with a value for Go and Rust (#2003)otel: Adds SDK self-monitoring metrics for log processing (#1921)
v1.31.0
🛑 Breaking changes 🛑
-
code:code.function.namevalue should contain the fully qualified function name,code.namespaceis now deprecated (#1677) -
gen-ai: Introducegen_ai.output.typeand deprecategen_ai.openai.request.response_format(#1757) -
mobile: Reworkdevice.app.lifecyclemobile event. (#1880) Thedevice.app.lifecycleevent has been reworked to use attributes instead of event body fields. Theios.app.stateandandroid.app.stateattributes have been reintroduced to the attribute registry. -
system: Move CPU-related system.cpu.* metrics to CPU namespace (#1873) -
k8s: Change k8s.replication_controller metrics to k8s.replicationcontroller (#1848) -
db: Renamedb.systemtodb.system.namein database metrics, and update the values to be consistent with database spans. (#1581) -
session: Movesession.idandsession.previous_idfrom body fields to event attributes, and yamlizesession.startandsession.endevents. (#1845) As part of the ongoing migration of event fields from LogRecord body to extended/complex attributes, thesession.startandsession.endevents have been redefined.
💡 Enhancements 💡
-
code: Markcode.*semantic conventions as release candidate (#1377) -
db: Add database-specific notes on db.operation.name and db.collection.name for Cassandra, Cosmos DB, HBase, MongoDB, and Redis, covering their batch/bulk terms and lack of cross-table queries. (#1863, #1573) -
gen-ai: Addsgen_ai.request.choice.countspan attribute (#1888) Enables recording target number of completions to generate -
enduser: Undeprecate 'enduser.id' and introduce new attributeenduser.pseudo.id(#1104) The new attributeenduser.pseudo.idis intended to provide a unique identifier of a pseudonymous enduser. -
k8s: Addk8s.hpa,k8s.resourcequotaandk8s.replicationcontrollerattributes and resources (#1656) -
k8s: How to populate resource attributes based on attributes, labels and transformation (#236) -
process: Adjust the semantic expectations forprocess.executable.name(#1736) -
otel: Adds SDK self-monitoring metrics for span processing (#1631) -
cicd: Adds a new attributecicd.pipeline.run.url.fulland corrects the attribute description ofcicd.pipeline.task.run.url.full(#1796) -
user-agent: Adduser_agent.os.nameanduser_agent.os.versionattributes (#1433)
🧰 Bug fixes 🧰
process: Fix units of process.open_file_descriptor.count and process.context_switches (#1662)
v1.30.0
🛑 Breaking changes 🛑
-
event: Deprecateevent.nameattribute in favor of the top level event name property on the log record (#1646) -
gen_ai: Renamegen_ai.openai.request.seedtogen_ai.request.seedand use it on general GenAI conventions. (#1715) -
db: Renamedb.systemtodb.system.nameand clean up its values. Renamedb.elasticsearch.*,db.cassandra.*,db.cosmosdb.*attributes toelasticsearch.*,cassandra.*, andazure.cosmosdb.*respectively. Renamedb.client.cosmosdb.*metrics toazure.cosmosdb.client.*. (#1581, #608) -
code: renamecode.function,code.lineno,code.columnandcode.filepath(#1377, #1599)code.functionrenamed tocode.function.namecode.linenorenamed tocode.line.numbercode.columnrenamed tocode.column.numbercode.filepathrenamed tocode.file.path -
system: Replacesystem.network.statewithnetwork.connection.state(#308) -
messaging: RabbitMQ: Specify how to populatemessaging.destination.name(#1529)
🚀 New components 🚀
security-rule: Introducing a new security rule namespace (#903)
💡 Enhancements 💡
-
cloud: Add Oracle Cloud Infrastructure to Semantic Conventions (#1658) -
gen_ai: Yamlify gen_ai events and clean up examples. (#1469) -
cicd: Add CICD metrics (#1600) Makes the following changes:- Add metrics
cicd.pipeline.run.duration,cicd.pipeline.run.active,cicd.worker.count,cicd.pipeline.run.errorsandcicd.system.errors. - The CICD attributes
cicd.pipeline.run.state,cicd.pipeline.result,cicd.system.component,cicd.worker.statehave been added to the registry.
- Add metrics
-
gen-ai: Adds OpenAI API compatiblegen_ai.systemattribute values:az.ai.openai,deepseek,gemini,groq,perplexityandxai. Elaborates thatopenaican be ambiguous due to API emulation. (#1655) -
docs: Update attribute, events, and metrics naming guidance to include new best practices. (#1694)- Use namespaces (with
.delimiter) whenever possible. - Use precise, descriptive, unambiguous names that leave room for expansion.
- Use namespaces (with
-
docs, db: Add common guidance for recording errors on spans and metrics, clarify DB conventions. (#1516, #1536, #1716) -
gen-ai: Addsmistral_aias agen_ai.systemattribute value. (#1719) -
process: Updateprocess.runtimeexample for the Python language. (#1772) -
db: Add metrics section to each of the database system-specific conventions. (#1447, #1779) -
k8s: Add metrics for k8s deployment, replicaset, replication_controller, statefulset and hpa. (#1636, #1637, #1644) This addition focused on providing consistency between these metrics, while also ensuring alignment with recommendations from Kubernetes. More details in #1637 -
k8s: Add k8s deamonset related metrics (#1649) -
k8s: Add k8s metrics for job and cronjob (#1660) -
k8s: Add k8s.namespace.phase metric along with the respective attribute (#1668) -
aws: Add extended request ID to general AWS attributes asaws.extended_request_id(#1670) -
messaging: Further clarify{destination}value on span names (#1635) -
gen_ai: Introduce gen_ai.request.seed and deprecated gen_ai.openai.request.seed (#1710) -
system: Adds note about howsystem.cpu.physical.countandsystem.cpu.logical.countare calculated (#1780) -
k8s: Add migration guide for K8s semantic conventions (#1597) -
profile: Extend the list of known frame types with a value for Erlang (#1735) -
dotnet: Mark .NET runtime metrics as stable (#1602) -
vcs: Addsvcs.repository.nameattribute to registry and updatevcs.repository.url.fulldescription for consistent representation. Updates the VCS metrics to includevcs.repository.nameas a recommended attribute. (#1254, #1453) -
vcs: Addvcs.change.time_to_mergemetric. (#1685)
v1.29.0
🛑 Breaking changes 🛑
-
vcs: Add the VCS metrics inspired by the GitHub Receiver (#1372) Makes the following changes:- Add metrics
vcs.change.count,vcs.change.duration,vcs.change.time_to_approval,vcs.repository.count,vcs.ref.count,vcs.ref.lines_delta,vcs.ref.revisions_delta,vcs.ref.time,vcs.contributor.count - The VCS attributes
vcs.change.state,vcs.revision_delta.directionandvcs.line_change.typehave been added to the registry. - The VCS ref attributes have been duplicated to
vcs.ref.base.*to allow for ref comparisons. - The VCS attribute
vcs.ref.typehas been added for simplicity when neither a full head or base ref is necessary. vcs.repository.change.*attributes have been deprecated and moved tovcs.change.*.vcs.repository.ref.*attributes have been deprecated and moved tovcs.ref.head.*.
- Add metrics
-
feature_flag: Renamefeature_flagevent tofeature_flag.evaluationevent, define new feature flag attributes and provide body definition. Removefeature_flagspan event definition in favor of log-based event. (#1440) -
db: Generalizedb.query.parameter.<key>todb.operation.parameter.<key>(#1559) -
db: Remove redis database index from the redis span name. (#1449) -
db: Don't capturedb.operation.nameanddb.collection.namefrom query formats that support multiples. (#1566) -
system: Introducenetwork.interface.nameand use that instead ofsystem.devicefor system and container network metrics (#1492) -
system: Add system.device attribute to system paging metrics (#1408) -
process: Change process.uptime instrument to a gauge. (#1518) -
process.executable.build_id: Rename process.executable.build_id.profiling to process.executable.build_id.htlhash. (#1520) With #4197 it was decided to rename the attribute profiling in process.executable.build_id to htlhash. -
graphql: Update the GraphQL Span name convention (#1361)
🚀 New components 🚀
cli: Define span describing CLI application execution (#1577)geo: Add geo fields to attribute registry. (#1033)
💡 Enhancements 💡
gen_ai: Add system-specific conventions for Azure AI Inference. (#1393)http: Define how to handle experimental attributes in stable groups, add policies and move experimental HTTP attributes into stable HTTP groups (as opt_in). (#906, #1472)db, gen-ai, faas: Relax wording for span kind - use SHOULD instead of MUST for logical operations. (#1315, #1506)kestrel: Add .NET 9 error reasons to Kestrel connection metric. (#1582)db: Specify how to set span status for database operations. (#1536, #1560)gen-ai: Add 2 well-known gen-ai systems as reference values of the gen-ai system attribute including AWS Bedrock and IBM Watsonx AI (#1574)http: Relaxserver.portrequirement level on HTTP server spans (#1387)gen-ai: Add conventions for GenAI Embeddings operations (#1174, #1603)feature_flag: Renamefeature_flag.systemback tofeature_flag.provider_name(#1614)user_agent: Add theuser_agent.synthetic.typeattribute to specify the category of synthetic traffic, such as tests or bots. (#1127)system: Add system uptime metric (#648)gen-ai: Addgen_ai.openai.response.system_fingerprintattribute (#1355)k8s: Add k8s.{node,pod}.network.{io,errors} metrics (#1427)k8s: Add uptime metrics for container, K8s Pod and K8s Node (#1486)linux: Add linux.process.cgroup attribute (#1357)docs: Improve separation between attribute table footnotes and enum values (#1569)messaging: Specify which span kind to use for messaging settle operations (#1478)db: Addeddb.cosmosdb.regions_contactedattribute to Cosmos DB metrics and traces. (#1525)db: Added new commondb.client.response.returned_rowsdatabase metric and several operation level metrics for Azure Cosmos DB. (#1438)
🧰 Bug fixes 🧰
-
service: Mergeresourceexperimental and stable groups for service and telemetry.sdk (#1423) Discovered when fixing weaver#306 -
db: Fix telemetry for complex queries: -
introduce the
db.query.summaryattribute to provide a concise, low-cardinality representation of the query text. -
use
db.query.summaryas the span name and as a recommended attribute on metrics. -
avoid capturing
db.operation.nameanddb.collection.namewhen the query involves multiple operations or collections, to prevent ambiguity. (#521, #805, #1159) -
url: Specific URL query string values should now be redacted by default due to concerns around leaking credentials. (#971) -
messaging: Fix typo in schemas for messaging attribute changes (#1595)
v1.28.0
🛑 Breaking changes 🛑
database: Add newdb.response.status_codeattribute, deprecatedb.cosmos.status_code. (#1424)gen_ai: Deprecategen_ai.promptandgen_ai.completionattributes, introduce log-based events for GenAI inputs and outputs. (#834, #980)system: Makesystem.cpu.utilizationandprocess.cpu.utilizationopt-in (#1130)messaging: Mark*.sizemessaging attributes as opt-in (#474)
🚩 Deprecations 🚩
event: Remove support for the eventfieldssupporting referencing / inheriting fields from global attributes. (#1341)
🚀 New components 🚀
-
cloudfoundry: Adds a resource convention for Cloud Foundry applications and system components. (#622, #624) Introduces a description for CloudFoundry resources. These can either be applications deployed on the runtime or system components of Cloud Foundry itself. It also extends to the runtime logs and metrics, e.g. Gorouter access logs and container metrics. -
dotnet: Adds experimental metrics for the .NET Common Language Runtime (CLR). (#956) -
profile: Introduce semantic convention for OTel Profiles. (#1188)
💡 Enhancements 💡
-
db: Mark database semantic conventions as release candidate (#1101) -
messaging: Define span kind for unspecified cases of messagingpublishandprocessspans. (#1112) -
db: Change description ofdb.client.connection.pending_requestsfrom cumulative to current value (#1290) -
docs: Add note on tooling limitations for attribute names and enforce name format. (#1124) -
az, db: Definedb.operation.namevalues for Cosmos DB, declareaz.namespaceattribute and add proper reference to it. (#1330) -
db: Recommend to capturedb.namespacefrom initial connection over not capturing any, also specifydb.namespacevalue for PostgreSQL, MySQL and MariaDB (#1437) -
messaging: Add recommendation to report "Create" spans for batch send calls only and to allow to disable "Create" spans. (#1273) -
other: Update resource to include stability in the YAML file (#1399) Makes the following changes:- Require
nameon resource groups. - Enforce backwards compatibility stability requirements on resource groups.
- Rename
telemetrytotelemetry.sdk, attributes are unchanged. - Mark
telemetry.sdkandresourceas stable in YAML model. - Markdown templates for resource groups NOW includes header describing
the resource
type,stabilityanddescription.
- Require
-
process: Add additional process fields from ECS (#993) -
container: Addcontainer.cpu.usagemetric (#1128) -
container: Add CSI (Container Storage Interface) attributes:container.csi.plugin.nameandcontainer.csi.volume.id. (#1119) -
system: Add thesystem.filesystem.limitmetric (#127) -
k8s: Addk8s.pod.cpu.time,k8s.pod.cpu.usage,k8s.node.cpu.time,k8s.node.cpu.usagemetrics (#1320) -
k8s: Add k8s.pod.memory usage and k8s.node.memory.usage metrics (#1406) -
k8s: Addsk8s.volume.nameandk8s.volume.typeattributes to the registry (#1164) -
os: add lookup foros.build_id(#1318) -
gen_ai: Add system specific conventions for OpenAI. (#1370) -
system: Add thesystem.disk.limitmetric (#127) -
file: Add additional attributes from ECS to thefilenamespace. (#914) -
messaging: Clarify the possibility to have a parent-child trace structure in messaging conventions (#1282) -
nodejs: Addingnodejs.eventloop.timemetric to Node.js runtime metrics. (#1259) -
process: Extend process.executable with build_id attributes. (#1329) For correct symbolization it is important to uniquely identify executables. -
messaging: Change messaging.operation.type = publish to messaging.operation.type = send (#1285) -
host: update lookup for os.build_id (#1396)
🧰 Bug fixes 🧰
messaging: Fix deprecated note for service bus attributes (#1418)container: Fixes broken link (#1332)
1.27.0
🛑 Breaking changes 🛑
-
messaging: Support generic operations in messaging and rename metrics:- Make
messaging.operation.namerequired andmessaging.operation.typeconditionally required when type is applicable. - Rename
messaging.publish.messagesmetric tomessaging.client.published.messages - Unify
messaging.publish.durationandmessaging.receive.durationmetrics intomessaging.client.operation.duration - Unify
messaging.receive.messagesandmessaging.process.messagesmetrics intomessaging.client.consumed.messages(#1006, #947, #937)
- Make
-
db: Clean updb.systemenum members:- remove
firstsql,mssqlcompact, andcloudscapeas the corresponding databases are discontinued. - rename
cachetointersystems_cache - remove
coldfusionas it is not a database. (#1110)
- remove
-
db: Renamedb.client.connections.*attributes todb.client.connection.*(#1125) -
messaging: Renamemessaging.kafka.message.offsettomessaging.kafka.offset(#1156) -
db: Sampling relevant attributes defined for database client spans (#1019) -
tls: Deprecatetls.client.server_name attributein favor of commonserver.address. (#1211, #1216) -
messaging: Deprecate `messaging.destination_publish.*`` namespace and remove all usages. (#1178, #1241) -
messaging: Introduce common attributes for consumer group and subscription name instead of per-system ones: -messaging.consumer.group.nameinstead ofmessaging.kafka.consumer.group,messaging.rocketmq.client_group, andmessaging.eventhubs.consumer.group. -messaging.destination.subscription.nameinstead ofmessaging.servicebus.destination.subscription_name. Use it in the Google Pub/Sub conventions. (#815) -
db: Align Elasticsearch span name to the general database span name guidelines. Deprecatesdb.elasticsearch.cluster.namein favor ofdb.namespace. (#1002) -
cicd, deployment, artifact, test, vcs: Adds CICD common attributes to the registry. (#915, #832, #833)- CICD common attributes have been added to the registry.
deployment.environmenthas been deprecated and moved todeployment.environment.name.
-
jvm: Rename JVM metricjvm.buffer.memory.usagetojvm.buffer.memory.used(#288) -
system: Renameprocess.cpu.state,container.cpu.state, andsystem.cpu.stateattributes into a commoncpu.modeattribute (#840)
🚀 New components 🚀
azure: Add Azure SDK attributes & Logs event semantic conventions (#1027)go: Add new go namespace for Go runtime metrics (#535)nodejs: Introducing semantic conventions for Node.js runtime metrics. (#990)user: BREAKING - deprecateenduserin favor of a newusernamespace. Add moreuserattributes. (#731)v8js: Introducing semantic conventions for V8 JS Engine runtime metrics. (#990)
💡 Enhancements 💡
db: List SQL database systems on the SQL semantic conventions. (#1024)db: Update database span name: clarify that target depends on the operation and should not be set when corresponding data is not available. (#1045)db: Mention how to capture collection and operation names from query text in the registry (#1070)docs: Don't render deprecated enum members in semconv tables. (#1110)gen-ai: Use GenAI instead of LLM on GenAI trace semantic conventions and minor cleanups. (#1087)gen-ai: Add GenAI model server metrics for measuring LLM serving latency (#1102)db: Clarify thatdb.query.parameter.<key>is string representation of the parameter value (#1165)messaging: Clarify how per-message attributes should be recorded for batch operations. (#1168)messaging: Define sampling relevant attributes for messaging client spans (#432, #1169)gen_ai: Renamegen_ai.usage.prompt_tokenstogen_ai.usage.input_tokensandgen_ai.usage.completion_tokenstogen_ai.usage.output_tokensto align terminology between spans and metrics. (#1200)gen_ai: Convertgen_ai.operation.nameto enum and use it on spans (#1202)network: Add QUIC to the list of well known network transports (#1237, #1239)db:db.query.textIN-clauses MAY be collapsed during the sanitization process (#1053)db,messaging: Clarify that DB and messaging system-specific conventions override common ones (#1235, #1244)db: Add better example of how to make the pool name unique (#1289)docs: Update semantic conventions code generation documentation to use weaver instead of build-tools. (#1296)gen_ai: Addserver.address,server.port, anderror.typeto GenAI spans. (#1297)gen-ai: Adding metrics for GenAI clients. (#811)gen-ai: Addinggen_ai.request.top_k,gen_ai.request.presence_penalty,gen_ai.request.frequency_penaltyandgen_ai.request.stop_sequencesattributes. (#839)messaging: Documentmessaging.operation.namefor Azure messaging systems. (#942)all: Define name abbreviations guidelines in attribute and metric names. (#1121)messaging: Add pulsar message system (#1099)linux: Add thesystem.linux.memory.slab.usagemetric and thelinux.memory.slab.stateattributes. (#531)cloudevents: CloudEvents conventions to follow HTTP/Messaging Span conventions (#654)db: Add support for database batch operations (#712)db: Specify sanitization fordb.query.text. (#717)gen-ai: Add 3 well-known gen-ai systems as reference values of the gen-ai system attribute (#1020)gcp: Introducesgcp.client.servicescope attribute. (#1047)db: Add semantic convention of InfluxDB (#949)log: Add 'log.record.original' attribute. (#1137)session: Add new experimentalsession.startandsession.endevents (#1091)
🧰 Bug fixes 🧰
messaging: Update Kafka Spring example to align with the messaging spec (#1155)http: Relax requirement on when to set HTTP span status to Error fromMUSTtoSHOULD. (#1167, #1003)
v1.26.0
🛑 Breaking changes 🛑
-
db: Renamedb.statementtodb.query.textand introducedb.query.parameter.<key>(#716) -
db: Renamesdb.sql.table,db.cassandra.table,db.mongodb.collection, anddb.cosmosdb.containerattributes todb.collection.name(#870) -
db: Renamedb.operationtodb.operation.name. (#884) -
messaging: Renamemessaging.operationtomessaging.operation.type, addmessaging.operation.name. (#890) -
db: Deprecate thedb.userattribute. (#885) -
db: Renamedb.nameanddb.redis.database_indextodb.namespace, deprecatedb.mssql.instance_name. (#885) -
db: Removedb.instance.id. For Elasticsearch, replace withdb.elasticsearch.node.name. (#972) -
db: Clarify database span name format and fallback values. (#974, #704) -
db: Renamedb.client.connections.*metric namespace todb.client.connection.*and renamedb.client.connection.usagetodb.client.connection.count. (#201, #967) -
db: Renamepool.nametodb.client.connections.pool.nameandstatetodb.client.connections.state. (#909) -
system: Deprecatesharedfromsystem.memory.statevalues and make it a standalone metric (#522) -
device.app.lifecycle: Reformat and update thedevice.app.lifecycleevent description adds constraints for the possible values of theandroid.stateandios.state. (#794) Removes theios.lifecycle.eventsandandroid.lifecycle.eventsattributes from the global registry and adds constraints for the possible values of theandroid.stateandios.stateattributes. -
messaging: Renamemessaging.client_idtomessaging.client.id(#935) -
rpc: Renamemessage.*attributes underrpctorpc.message.*. Deprecate oldmessage.*attributes. (#854)
🚀 New components 🚀
gen-ai: Introducing semantic conventions for GenAI clients. (#327)
💡 Enhancements 💡
-
all: Markdown snippets are now generated by jinja templates in thetemplatesdirectory. (#1000) -
db, messaging, gen_ai: Clarify thatdb.system,messaging.system,gen_ai.systemattributes capture the client perception and may differ from the actual product name. (#813, #1016) -
messaging: Show all applicable attributes in individual messaging semantic conventions. (#869, #1018) -
process: Add additional attributes to process attribute registry (#564) -
messaging: Add a GCP Pub/Sub unary pull example and the new GCP messaging attributes: -messaging.gcp_pubsub.message.ack_deadline, -messaging.gcp_pubsub.message.ack_id, -messaging.gcp_pubsub.message.delivery_attempt(#527) -
db: Adddb.client.operation.durationmetric (#512) -
messaging: Adds `messaging.destination.partition.id`` to the messaging attributes (#814) -
exception: Replace constraints with requirement levels on exceptions. (#862) -
process: Replace constraints with requirement_level in process attributes. (#863) -
db: Reorganize DB conventions to be shared across span and metric conventions. (#910) -
all: Migrate Attribute Registry to be completely autogenerated. (#197) Migrate to using weaver for markdown generation (snippet + registry). The entirety of the registry now is generated using weaver with templates under thetemplates/directory. Snippets still require a hardcoded command. -
http: List all HTTP client and server attributes in the corresponding table, remove common attributes from yaml and markdown. (#928) -
other: Document patterns and suggestions for semconv code generation. (#551, #953) -
db: Show applicable common attributes in individual database semantic conventions. (#973) -
db: Adderror.typeattribute to the database span and operation duration metric. (#975) -
db: Parameterized query text does not need to be sanitized by default (#976) -
http: List experimental HTTP attributes applicable to HTTP client and server spans. (#989) -
db: Finalizes the migration requirement for instrumentations to follow when updating to stable database semconv. (#719) -
http: Newurl.templateattribute added to URL, HTTP client attributes are extended with optional low-cardinalityurl.template(#675) -
db: Add note todb.collection.name,db.namespace, anddb.operation.nameabout capturing those without attempting to do any case normalization. (#886) -
events: Provides additional definitions of log events and their structure. (#755) -
k8s: add container.status.last_terminated_reason resource attribute (#922)
🧰 Bug fixes 🧰
http: Add previously deprecated http attributes to registry (#1025) These attributes were deprecated in 1.13net: Add previously deprecated net attributes to registry (#1029) These attributes were deprecated in 1.13
v1.25.0
🛑 Breaking changes 🛑
messaging: Removenetwork.transportandnetwork.typeattributes from messaging semantic conventions, clarify whennetwork.peer.address|portshould be populated. (#690, #698)db: Removenetwork.transportandnetwork.typeattributes from database semantic conventions, clarify whennetwork.peer.address|portshould be populated. (#690, #768)messaging: Introduce commonmessaging.destination.partition.idinstead ofmessaging.kafka.destination.partition(#798)host: [resource/host] Change type of host.cpu.stepping to string (#664, #665)system: Renamesystem.processes.*namespace tosystem.process.*(#484)k8s,container: Depluralize labels for pod (k8s.pod.labels.*) and container (container.labels.*) resources (#625)process: Generate process metrics from YAML (#330):- Rename
process.threadstoprocess.thread.count - Rename
process.open_file_descriptorstoprocess.open_file_descriptor.count - Rename attributes for
process.cpu.*statetoprocess.cpu.state
- Change attributes for
process.disk.io- Instead of
directionusedisk.io.directionfrom global registry
- Instead of
- Change attributes for
process.network.io- Instead of
directionusenetwork.io.directionfrom global registry
- Instead of
- Rename attributes for
process.context_switchestypetoprocess.context_switch_type
- Rename attributes for
process.paging.faultstypetoprocess.paging.fault_type
- Rename
🚩 Deprecations 🚩
db: Deprecatedb.connection_stringattribute in favor ofserver.addressandserver.port(#724, #769)db: Deprecatedb.jdbc.driver_classnameattribute (#796)
🚀 New components 🚀
file: Add new file namespace (#732)
💡 Enhancements 💡
messaging: Add `messaging.rabbitmq.message.delivery_tag`` to the list of RabbitMQ specific tags (#433)messaging: Clarify producer span relationships for messaging semantic conventions (#509)rpc: Add link to specification for metrics defined by gRPC community. (#627)messaging: Add messaging semantic conventions for settlement spans (#621)messaging: Clarifies span names for Azure messaging systems and addsmessaging.servicebus.disposition_status attribute. (#697)messaging: Add a "Process" spans and metrics for messaging (#657)db: Update Elasticsearch attributes to use db.instance.id instead of db.elasticsearch.node.name (#725)db: Merge DB connection-level and call-level attributes tables (#780)dns: Introduces common DNS lookup duration metric and attributes. (#404)other: Update build-tools version to 0.24.0 and make semantic conventions compatible with this version (add stability on enum members and deprecated attributes). (#807)system: Alignsystem.cpu.state's definition with this ofprocess.cpu.state. (#563)container: Add new container metrics forcpu,memory,diskandnetwork(#282, #72)url: Sensitive content provided inurl.full,url.path, andurl.querySHOULD be scrubbed when instrumentations can identify it. (#676)metrics: Clarify metric attributes should be namespaced. (#394)events: Add clarification that the body of an Event will live in the LogRecord body field. (#566)http: Addhttp.request.sizeandhttp.response.sizeattributes for the total number of bytes in http messages (#38, #84)http: Extracts common HTTP client metrics from .NET conventions. (#800)resource: Define a common algorithm forservice.instance.id. (#312)user-agent: Update user_agent subfields wording to support it's usage for non-browser products with multiple names/versions (#680)url: Add remaining ECS fields to the url namespace (#496)messaging: Makenetwork.protocol.nameconditionally required for messaging (#644)cloud: Addazure_container_appstocloud.platformsemantic conventions (#615)user_agent: Adduser_agent.nameanduser_agent.versionattributes (#452)messaging: Add an example for gcp_pubsub asynchronous batch publish (#545)aws: Addaws.ecs.task.idattribute, corrected description foraws.ecs.task.arn(#597)messaging: Add Azure Service Bus and Event Hubs messaging attributes (#572)
🧰 Bug fixes 🧰
aws-lambda: Fix problem inxray-lambdapropagator definition (#778)http: Two fixes to the HTTP semconv migration guide (#802)network: Clarifies that network.protocol.version represents negotiated version (#686)jvm: Fix JVM buffer metric schema translations (#683)
v1.24.0 (2023-12-15)
Breaking
- Update
jvm.gc.durationhistogram buckets to[ 0.01, 0.1, 1, 10 ](#317) - BREAKING: Change type of
host.cpu.model.idandhost.cpu.model.familyto string. (#499) - Changed
messaging.systemattribute type to an open enum (#517) - Rename metrics
jvm.memory.usagetojvm.memory.usedandjvm.memory.usage_after_last_gctojvm.memory.used_after_last_gc(#536) - BREAKING: Change
event.namedefinition to includenamespaceand removeevent.domainfrom log event attributes. (#473) - BREAKING: Change
system.disk.io.directionandsystem.network.io.directionto global attributesdisk.io.directionandnetwork.io.direction(#530) - BREAKING: Change
messaging.kafka.partitiontomessaging.kafka.destination.partition(#547)
Features
- Adds
labelsattribute tok8s.podresource (#494) - Change Erlang managed thread attribute to be the Erlang process (#491)
- Add gcp_pubsub as a messaging system (#490)
- Adds
annotationattribute tok8s.podresource (#494) - Add
code.stacktraceattribute (#435) - Add
http.flavorandhttp.user_agentto list of deprecated attributes (#503) - Add Semantic conventions for TLS/SSL encrypted communication. (#21)
- Add
messaging.gcp_pubsub.message.ordering_keyattribute. (#528) - Define how to set
process.runtime.name,process.runtime.version,process.runtime.descriptionfor .NET runtime. (#561) - Add
db.instance.idattribute. (#345) - Add messaging metrics (#163)
- Add .NET 8.0 metrics for HTTP client, ASP.NET Core, SignalR server and Kestrel. (#283)
- Add system shared IO direction attributes (#530)
- JVM metrics marked stable (#569)
- Add attribute for k8s pod annotations (#573)
- Replace AWS X-Ray Environment Span Link section with AWS X-Ray Active Tracing Considerations (#354)
Fixes
- Remove misleading pluralization wording related to count metrics (#488)
- Remove no longer relevant Oct 1 mention from
OTEL_SEMCONV_STABILITY_OPT_IN(#541) - Update stability definitions of HTTP client and server duration metrics to be consistent with markdown. (#587)
- Use
deprecatedproperty to mark attributes as deprecated instead ofstability(#588)
v1.23.1 (2023-11-17)
Breaking
Features
Fixes
v1.23.0 (2023-11-03)
This release marks the first where the core of HTTP semantic conventions have stabilized.
Breaking
- BREAKING: Rename http.resend_count to http.request.resend_count. (#374)
- BREAKING: Change
network.protocol.namefrom recommended to opt-in in HTTP semconv. (#398) - BREAKING: Define url.scheme in terms of logical operation in HTTP server semconv. (#376)
- BREAKING: Change
network.transportfrom recommended to opt-in in HTTP semconv. (#402) - BREAKING: Change
network.typefrom recommended to opt-in in HTTP semconv. (#410) - BREAKING: Factor in
X-Forwarded-Host/Forwardedwhen capturingserver.addressandserver.port. (#411) - Remove
thread.daemon, and introducejvm.thread.daemoninstead. Introducejvm.thread.stateattribute and add it tojvm.thread.countmetric. (#297) - Fix
server.portto be not required whenserver.addressis not set. (#429) - Use seconds as default duration for FaaS duration histograms (#384)
- BREAKING: Remove
totalfrom list of well-known values ofsystem.memory.stateattribute. (#409) - Remove
url.pathdefault value. (#462) - Remove conditional requirement on
network.peer.addressandnetwork.peer.port(#449) - Change
user_agent.originalfrom recommended to opt-in on HTTP client spans. (#468) - Change
http.request.body.sizeandhttp.response.body.sizefrom recommended to opt-in. (#460) - Clarify that
client.portis the port of whichever client was captured inclient.address. (#471) - Change
client.portfrom recommended to opt-in on HTTP server spans (#472) - BREAKING: Make
url.schemeopt_in for HTTP client and remove default value forserver.portmaking it required on the client. (#459) - Make
client.addresssampling relevant on HTTP server spans. (#469) - Change
network.protocol.namefrom opt-in to conditionally required. (#478) - Remove outdated
http.request.header.hostguidance (#479) - Change sampling relevant from
MUSTtoSHOULD(#486) - Make
user_agent.originalandhttp.request.header.*sampling relevant on HTTP server spans. (#467)
Features
- Adds
session.previous_idto session.md (#348) - Metric namespaces SHOULD NOT be pluralized. (#267)
- Add opt-in
system.memory.limitmetric. (#409) - Add
host.macresource attribute convention. (#340) - Mark HTTP semantic conventions as stable. (#377)
Fixes
- Clarify that
error.typeshould be the fully-qualified exception class name when it represents an exception type. (#387) - Add cardinality warning about two opt-in HTTP metric attributes (#401)
- Change
server.portfrom recommended to conditionally required on HTTP server semconv. (#399) - Add cardinality warning about two opt-in HTTP metric attributes to all HTTP metrics. (#412)
- Remove outdated note about not recording HTTP
server.addresswhen only IP address available. (#413) - Clarify HTTP server definitions and
server.address|portnotes. (#423) - Change the precedence between
:authorityandHostheaders when populatingserver.addressandserver.portattributes. (#455) - Explain
deployment.environmentimpact on service identity. (#481)
v1.22.0 (2023-10-12)
- Remove experimental Kafka metrics (#338)
- Adds
session.idand session.md to general docs and model (#215) - Add
container.labels.<key>attributes. (#125) - Add
cluster.nameandnode.nameattributes to Elasticsearch semantic conventions. (#285) - Fix the unit of metric.process.runtime.jvm.system.cpu.load_1m to be {run_queue_item} (#95)
- Update
.countmetric naming convention so that it only applies to UpDownCounters, and add that.totalshould not be used by either Counters or UpDownCounters (#107) - Add
oci.manifest.digest,container.image.repo_digestsattributes. Makecontainer.image.tagarray and in plural form. (#159) - BREAKING: Rename
http.client.durationandhttp.server.durationmetrics tohttp.client.request.durationandhttp.server.request.durationrespectively. (#224) - Update HTTP
network.protocol.versionexamples to match HTTP RFCs. (#228) - Re-introduce namespace and attributes to describe the original destination messages were
published to (
messaging.destination_publish.*). (#156) - Generate FaaS metric semantic conventions from YAML. (#88) The conventions cover metrics that are recorded by the FaaS itself and not by clients invoking them.
- BREAKING: Rename all JVM metrics from
process.runtime.jvm.*tojvm.*(#241) - BREAKING: Add namespaces to JVM metric attributes (#20).
- Rename attributes
typetojvm.memory.type,pooltojvm.memory.pool.name - Applies to metrics:
jvm.memory.usagejvm.memory.initjvm.memory.committedjvm.memory.limitjvm.memory.usage_after_last_gc
- Rename attributes
gctojvm.gc.name,actiontojvm.gc.action - Applies to metrics:
jvm.gc.duration
- Rename attribute
daemontothread.daemon - Applies to metrics:
jvm.threads.count
- Rename attribute
pooltojvm.buffer.pool.name - Applies to metrics:
jvm.buffer.usagejvm.buffer.limitjvm.buffer.count
- Rename attributes
- Clarify that
http/duphas higher precedence thanhttpin case both values are present inOTEL_SEMCONV_STABILITY_OPT_IN(#249) - Add
jvm.cpu.countmetric. (#52) - BREAKING: Rename metrics
jvm.buffer.usagetojvm.buffer.memory.usageandjvm.buffer.limittojvm.buffer.memory.limit. (#253) - BREAKING: Rename
jvm.classes.current_loadedmetrics tojvm.classes.count(#60) - BREAKING: Remove pluralization from JVM metric namespaces. (#252)
- Simplify HTTP metric briefs. (#276)
- Add host cpu resource attributes. (#209)
- Introduce
error.typeattribute and use it in HTTP conventions (#205) - BREAKING: Change HTTP span name when method is unknown (use
HTTPinstead of_OTHER) (#270) - Moved RPC streaming notes from metric brief section to notes section. (#275)
- Updates
client.addressto allow domain names for consistency withserver.address. (#302) - BREAKING: Generate System metrics semconv from YAML.
(#89)
- Rename attributes for
system.cpu.*metrics:statetosystem.cpu.statecputosystem.cpu.logical_number
- Rename attributes for
system.memory.*metrics:statetosystem.memory.state
- Rename attributes for
system.paging.*metrics:statetosystem.paging.statetypetosystem.paging.typedirectiontosystem.paging.direction
- Rename attributes for
system.disk.*metrics:devicetosystem.devicedirectiontosystem.disk.direction
- Rename attributes for
system.filesystem.*metrics:devicetosystem.devicestatetosystem.filesystem.statetypetosystem.filesystem.typemodetosystem.filesystem.modemountpointtosystem.filesystem.mountpoint
- Rename attributes for
system.network.*metrics:devicetosystem.devicedirectiontosystem.network.directionprotocoltonetwork.protocolstatetosystem.network.state
- Rename attributes for
system.processes.*metrics:statustosystem.processes.status
- Rename attributes for
- BREAKING: Rename
messaging.message.payload_size_bytestomessaging.message.body.size, removemessaging.message.payload_compressed_size_bytes. (#229) - Add
system.linux.memory.availablemetric. (#323) - BREAKING: Rename
http.server.request.sizemetric tohttp.server.request.body.sizeandhttp.server.response.sizemetric tohttp.server.response.body.size(#247) - Move non-
network.*attributes out of network.yaml. (#296) - Introducing Android
android.os.api_levelresource attribute. (#328) - Added
os.build_idresource attribute. (#293) - BREAKING: Remove the zero bucket boundary from
http.server.request.durationandhttp.client.request.duration. (#318) - Encourage setting
network.transportwhen reporting port numbers (#289) - BREAKING: Add
url.schemetohttp.client.*metrics (#357) - BREAKING: Remove
server.socket.addressfrom HTTP and RPC client metrics. (#350) - Improve network attribute briefs. (#352)
- Document the difference between host and system metrics (#324)
- BREAKING: Rename
telemetry.auto.versionresource attribute totelemetry.distro.versionand addtelemetry.distro.nameresource attribute (#178) - Add
system.cpu.frequencymetric. (#337) - Improve HTTP metric briefs. (#366)
- Add
host.ipresource attribute convention. (#203) - BREAKING: remove
-to_normalization from http header and rpc metadata attribute keys. (#369) - BREAKING: Rename/replace
(client|server).socket.(address|port)attributes withnetwork.(peer|local).(address|port). (#342) - Make
network.protocol.name|versiondescription consistent between HTTP spans and metrics. (#367)
v1.21.0 (2023-07-13)
Note: This is the first release of Semantic Conventions separate from the Specification.
- Add GCP Bare Metal Solution as a cloud platform (#64)
- Clarify the scope of the HTTP client span. (#3290)
- Add moratorium on relying on schema transformations for telemetry stability (#3380)
- Mark "Instrumentation Units" and "Instrumentation Types" sections of the general metric semantic conventions as stable (#3294)
- Add clarification that UCUM c/s variant applies to all units other than
1and those using annotations. (#3393) - Specify that seconds should be used for measuring durations. (#3388)
- Change http.server.duration and http.client.duration units to seconds (#3390)
- BREAKING: Remove
messaging.consumer.id, makemessaging.client_idgeneric (#3336) - Add transition plan for upcoming breaking changes to the unstable HTTP semantic conventions. (#3443)
- Rename
net.peer.*,net.host.*, andnet.sock.*attributes to align with ECS (#3402) BREAKING: renamenet.peer.nametoserver.addresson client side and toclient.addresson server side,net.peer.porttoserver.porton client side and toclient.porton server side,net.host.nameandnet.host.porttoserver.addressandserver.port(sincenet.host.*attributes only applied to server instrumentation),net.sock.peer.addrtoserver.socket.addresson client side and toclient.socket.addresson server side,net.sock.peer.porttoserver.socket.porton client side and toclient.socket.porton server side,net.sock.peer.nametoserver.socket.domain(sincenet.sock.peer.nameonly applied to client instrumentation),net.sock.host.addrtoserver.socket.address(sincenet.sock.host.*only applied to server instrumentation),net.sock.host.porttoserver.socket.port(similarly sincenet.sock.host.*only applied to server instrumentation),http.client_iptoclient.address - BREAKING: Introduce
network.transportdefined as OSI Transport Layer or Inter-process Communication method. Introducenetwork.typedefined as OSI Network Layer or non-OSI equivalent. Removenet.transportandnet.sock.family. Renamenet.protocol.*tonetwork.protocol.*,net.host.connection.*tonetwork.connection.*, andnet.host.carrier.*tonetwork.carrier.*. (#3426) - BREAKING: Adopt ECS attributes in HTTP semantic conventions.
Renames:
http.methodtohttp.request.method,http.status_codetohttp.response.status_code,http.request_content_lengthtohttp.request.body.size,http.response_content_lengthtohttp.response.body.size,http.urltourl.full,http.schemetourl.scheme, and removeshttp.targetbreaking it down tohttp.targettourl.path,url.query, andurl.fragment. (#3355) - Add
gcp.cloud_run.job.executionandgcp.cloud_run.job.task_idresource attributes for GCP Cloud Run Jobs (#3378) - Specify second unit (
s) and advice bucket boundaries of[]forprocess.runtime.jvm.gc.duration. (#3458) - Specify the value range for JVM CPU metrics. (#13)
- Rename
process.runtime.jvm.cpu.utilizationtoprocess.runtime.jvm.cpu.recent_utilization. (#53) - Clarify
process.runtime.jvm.threads.countrefers to platform threads. (#54) - Add
gcp.gce.instance.nameandgcp.gce.instance.hostnameresource attributes for GCP Compute Engine VMs. (#15) - Add note that HTTP duration metrics should match HTTP span duration. (#69)
- Clarify when HTTP client spans should end. (#70)
- Clarify that OTEL_SEMCONV_STABILITY_OPT_IN is a comma-separated list of values (#104)
- Add
process.runtime.jvm.cpu.timemetric. (#55) - Split out sections for proposed stable JVM metrics and experimental JVM metrics. (#56)
- Make
url.queryconditionally required for HTTP spans. (#118) - Change
server.addressandserver.portrequirement levels on HTTP server metrics fromrequiredtoopt_in. (#109) - Updated AWS Java Lambda guidance - using system properties. (#27)
- Limit
http.request.methodvalues to a closed set of known values, introducehttp.request.method_originalfor the original value. (#17) - Mark service.version as stable. (#106)
- Mark initial set of HTTP semantic conventions as frozen (#105)
- BREAKING: Remove
messaging.source.*attributes and usemessaging.destination.*attributes on producer and consumer to describe messaging queue or topic. (#100) - Mark
process.runtime.jvm.system.cpu.load_1mandprocess.runtime.jvm.system.cpu.utilizationmetrics as opt-in. (#57) - Add container
image.id,command,command_lineandcommand_argsresource attributes. (#39) - Add Elasticsearch client semantic conventions. (#23)
- Add YAML definitions for log semantic conventions and define requirement levels (#133)
- Add markdown file for url semantic conventions (#174)
- Add
system.cpu.physical.countandsystem.cpu.logical.countmetrics. (#99)
v1.20.0 (2023-04-07)
This and earlier versions were released as part of the Specification. See the specification changelog if you'd like to git blame a changelog entry.
- Clarify that attribute requirement levels apply to the instrumentation library (#3289)
- Fix grammatical number of metric units. (#3298)
- Rename
net.app.protocol.(name|version)tonet.protocol.(name|version)(#3272) - Replace
http.flavorwithnet.protocol.(name|version)(#3272) - Metric requirement levels are now stable (#3271)
- BREAKING: remove
messaging.destination.kindandmessaging.source.kind. (#3214, #3348) - Define attributes collected for
cosmosdbby Cosmos DB SDK (#3097) - Clarify stability requirements of semantic conventions (#3225)
- BREAKING: Change span statuses for gRPC server spans. (#3333)
- Stabilize key components of
service.*andtelemetry.sdk.*resource semantic conventions. (#3202) - Fixed attributes requirement level in semantic conventions for hardware metrics (#3258)
- Added AWS S3 semantic conventions. (#3251)
- Fix units in the Kafka metric semantic conventions. (#3300)
- Add Trino to Database specific conventions (#3347)
- Change
db.statementto only be collected if there is sanitization. (#3127) - BREAKING: Remove
http.status_codeattribute from thehttp.server.active_requestsmetric. (#3366) - Mark attribute requirement levels as stable (#3368)
v1.19.0 (2023-03-06)
- Move X-Ray Env Variable propagation to span link instead of parent for AWS Lambda. (#3166)
- Add heroku resource semantic conventions. #3075
- BREAKING: Rename faas.execution to faas.invocation_id (#3209)
- BREAKING: Change faas.max_memory units to Bytes instead of MB (#3209)
- BREAKING: Expand scope of faas.id to cloud.resource_id (#3188)
- Add Connect RPC specific conventions (#3116)
- Rename JVM metric attribute value from
nonheaptonon_heap(#3250) - Mark the attribute naming guidelines in the specification as stable. (#3220)
- Mark telemetry schema readme stable. (#3221)
- Remove mention of
net.transportfrom HTTP semantic conventions (#3244) - Clarifies that if an HTTP client request is explicitly made to an IP address,
e.g.
http://x.x.x.x:8080, thennet.peer.nameSHOULD be the IP addressx.x.x.x(#3276) - Mark
net.sock.host.portas conditionally required. (#3246) - Rename Optional attribute requirement level to Opt-In. (#3228)
- Rename
http.user_agenttouser_agent.original. (#3190) - Expand the declaration of
pool.name. (#3050)
v1.18.0 (2023-02-09)
- Add Cloud Spanner and Microsoft SQL Server Compact to db.system semantic conventions (#3105).
- Enable semantic convention tooling for metrics in spec (#3119)
- Rename google openshift platform attribute from
google_cloud_openshifttogcp_openshiftto match the existingcloud.providerprefix. (#3095) - Changes http server span names from
{http.route}to{http.method} {http.route}(when route is available), and fromHTTP {http.method}to{http.method}(when route is not available). Changes http client span names fromHTTP {http.method}to{http.method}. (#3165) - Mark
http.server.durationandhttp.client.durationmetrics as required, and mark all other HTTP metrics as optional. #3158 - Add
net.host.porttohttp.server.active_requestsmetrics attributes. #3158 http.routeSHOULD contain the "application root" if there is one. (#3164)
v1.17.0 (2023-01-17)
- Clarify common HTTP attributes apply to both clients and servers (#3044)
- Add
code.linenosource code attribute (#3029) - Add ClickHouse to db.system semantic conventions (#3011)
- Refactor messaging attributes and per-message attributes in batching scenarios.
(#2957).
BREAKING: rename
messaging.consumer_idtomessaging.consumer.id,messaging.destinationtomessaging.destination.name,messaging.temp_destinationtomessaging.destination.temporary,messaging.destination_kindtomessaging.destination.kind,messaging.message_idtomessaging.message.id,messaging.protocoltonet.app.protocol.name,messaging.protocol_version,net.app.protocol.version,messaging.conversation_idtomessaging.message.conversation_id,messaging.message_payload_size_bytestomessaging.message.payload_size_bytes,messaging.message_payload_compressed_size_bytestomessaging.message.payload_compressed_size_bytes,messaging.rabbitmq.routing_key:messaging.rabbitmq.destination.routing_key,messaging.kafka.message_keytomessaging.kafka.message.key,messaging.kafka.consumer_grouptomessaging.kafka.consumer.group,messaging.kafka.partitiontomessaging.kafka.destination.partition,messaging.kafka.tombstonetomessaging.kafka.message.tombstone,messaging.rocketmq.message_typetomessaging.rocketmq.message.type,messaging.rocketmq.message_tagtomessaging.rocketmq.message.tag,messaging.rocketmq.message_keystomessaging.rocketmq.message.keys; Removedmessaging.url; Renamedsendoperation topublish; Splitdestinationandsourcenamespaces and clarify per-message attributes in batching scenarios.
v1.16.0 (2022-12-08)
- Add
process.runtime.jvm.gc.durationmetric to semantic conventions. (#2903) - Make http.status_code metric attribute an int. (#2943)
- Add IBM Cloud as a cloud provider. (#2965)
- Add semantic conventions for Feature Flags (#2529)
- Rename
rpc.request.metadata.<key>andrpc.response.metadata.<key>torpc.grpc.request.metadata.<key>andrpc.grpc.response.metadata.<key>(#2981) - List the machine-id as potential source for a unique host.id (#2978)
- Add
messaging.kafka.message.offsetattribute. (#2982) - Update hardware metrics to use
directionas per general semantic conventions (#2942)
v1.15.0 (2022-11-09)
- Change to messaging.kafka.max.lag from UpDownCounter to Gauge (and rename it) (#2837)
- Add daemon attribute to jvm threads metric (#2828)
- Add gRPC request and response metadata semantic conventions (#2874)
- Add
process.paging.faultsmetric to semantic conventions (#2827) - Define semantic conventions yaml for non-otlp conventions (#2850)
- Add more semantic convention attributes of Apache RocketMQ (#2881)
- Add
process.runtime.jvm.memory.usage_after_last_gcmetric to semantic conventions. (#2901)
v1.14.0 (2022-10-04)
- Add
process.context_switches, andprocess.open_file_descriptors, to the metrics semantic conventions (#2706) - Add exceptions to the logs semantic conventions (#2819)
- Make context propagation requirements explicit for messaging semantic conventions (#2750).
- Update http metrics to use
http.routeinstead ofhttp.targetfor servers, drophttp.urlfor clients (#2818).
v1.13.0 (2022-09-19)
- Add
net.app.protocol.*attributes (#2602) - Add network metrics to process semantic conventions (#2556)
- Adopt attribute requirement levels in semantic conventions (#2594)
- Add semantic conventions for GraphQL (#2456)
- Change
cloudevents.event_spec_versionandcloudevents.event_typelevel fromrequiredtorecommended(#2618) - Change
faas.document.timeandfaas.timelevel fromrequiredtorecommended(#2627) - Add
rpc.grpc.status_codeto RPC metric semantic conventions (#2604) - Add
http.*.*.sizemetric semantic conventions for tracking size of requests / responses for http servers / clients (#2588) - BREAKING: rename
net.peer.iptonet.sock.peer.addr,net.host.iptonet.sock.host.addr,net.peer.nametonet.sock.peer.namefor socket-level instrumentation. Define socket-level attributes and clarify logical peer and host attributes meaning (#2594) - Add semantic conventions for JVM buffer pool usage (#2650)
- Improve the definition of
stateattribute for metricsystem.network.connections(#2663) - Add
process.parent_pidattribute for use in reporting parent process id (PID) (#2691) - Add OpenSearch to db.system semantic conventions (#2718)
- Clarify when "count" is used instead of pluralization (#2613)
- Add the convention 'type' to the YAML definitions for all existing semantic conventions (#2693)
- Remove alternative attribute sets from HTTP semantic conventions (#2469)
v1.12.0 (2022-06-10)
- Add semantic conventions for JVM CPU metrics (#2292)
- Add details for FaaS conventions for Azure Functions and allow FaaS/Cloud resources as span attributes on incoming FaaS spans (#2502)
- Define attribute requirement levels (#2522)
- Initial addition of Kafka metrics (#2485).
- Add semantic conventions for Kafka consumer metrics (#2536)
- Add database connection pool metrics semantic conventions (#2273).
- Specify how to obtain a Ruby thread's id (#2508).
- Refactor jvm classes semantic conventions (#2550).
- Add browser.* attributes (#2353).
- Change JVM runtime metric
process.runtime.jvm.memory.maxtoprocess.runtime.jvm.memory.limit(#2605). - Add semantic conventions for hardware metrics (#2518).
v1.11.0 (2022-05-04)
- Note added that
net.peer.nameSHOULD NOT be set if capturing it would require an extra reverse DNS lookup. And movednet.peer.namefrom common http attributes to just client http attributes. (#2446) - Add
net.host.nameandnet.host.ipconventions for rpc server spans. (#2447) - Allow all metric conventions to be either synchronous or asynchronous. (#2458
- Update JVM metrics with JMX Gatherer values (#2478)
- Add HTTP/3 (#2507)
- Map SunOS to solaris for os.type resource attribute (#2509)
v1.10.0 (2022-04-01)
- Define span structure for HTTP retries and redirects. (#2078)
- Changed
rpc.systemto an enum (allowing custom values), and changed therpc.systemvalue for .NET WCF fromwcftodotnet_wcf. (#2377) - Define JavaScript runtime semantic conventions. (#2290)
- Add semantic conventions for CloudEvents. (#1978)
- Add
process.cpu.utilizationmetric. (#2436) - Add
rpc.systemvalue for Apache Dubbo. (#2453)
v1.9.0 (2022-02-10)
- Align runtime metric and resource namespaces (#2112)
- Prohibit usage of retired names in semantic conventions. (#2191)
- Add
device.manufacturerto describe mobile device manufacturers. (2100) - Change golang namespace to 'go', rather than 'gc' (#2262)
- Add JVM memory runtime semantic conventions. (#2272)
- Add opentracing.ref_type semantic convention. (#2297)
v1.8.0 (2021-11-12)
- Add
k8s.container.restart_countResource attribute. (#1945) - Add "IBM z/Architecture" (
s390x) tohost.arch(#2055) - BREAKING: Remove db.cassandra.keyspace and db.hbase.namespace, and clarify db.name (#1973)
- Add AWS App Runner as a cloud platform (#2004)
- Add Tencent Cloud as a cloud provider. (#2006)
- Don't set Span.Status for 4xx http status codes for SERVER spans. (#1998)
- Add attributes for Apache RocketMQ. (#1904)
- Define http tracing attributes provided at span creation time (#1916)
- Change meaning and discourage use of
faas.triggerfor FaaS clients (outgoing). (#1921) - Clarify difference between container.name and k8s.container.name (#1980)
v1.7.0 (2021-09-30)
- BREAKING: Change enum member IDs to lowercase without spaces, not starting with numbers.
Change values of
net.host.connection.subtypeto match. (#1863) - Lambda instrumentations should check if X-Ray parent context is valid (#1867)
- Update YAML definitions for events
(#1843):
- Mark exception as semconv type "event".
- Add YAML definitions for grpc events.
- Add
messaging.consumer_idto differentiate between message consumers. (#1810) - Clarifications for
http.client_ipandhttp.host. (#1890) - Add HTTP request and response headers semantic conventions. (#1898)
v1.6.0 (2021-08-06)
- Add mobile-related network state:
net.host.connection.type,net.host.connection.subtype&net.host.carrier.*#1647 - Adding alibaba cloud as a cloud provider. (#1831)
v1.5.0 (2021-07-08)
- Clean up FaaS semantic conventions, add
aws.lambda.invoked_arn. (#1781) - Remove
rpc.jsonrpc.method, clarify thatrpc.methodshould be used instead. (#1748)
v1.4.0 (2021-06-07)
- Add JSON RPC specific conventions (#1643).
- Add Memcached to Database specific conventions (#1689).
- Add semantic convention attributes for the host device and added OS name and version (#1596).
- Add CockroachDB to Database specific conventions (#1725).
v1.3.0 (2021-05-05)
- Fix the inconsistent formatting of semantic convention enums. (#1598)
- Add details for filling resource for AWS Lambda. (#1610)
- Add already specified
messaging.rabbitmq.routing_keyspan attribute key to the respective YAML file. (#1651) - Clarify usage of "otel." attribute namespace. (#1640)
- Add possibility to disable
db.statementvia instrumentation configuration. (#1659)
v1.2.0 (2021-04-14)
- Add semantic conventions for AWS SDK operations and DynamoDB (#1422)
- Add details for filling semantic conventions for AWS Lambda (#1442)
- Update semantic conventions to distinguish between int and double (#1550)
- Add semantic convention for AWS ECS task revision (#1581)
v1.1.0 (2021-03-11)
- Add
elasticsearchtodb.systemsemantic conventions (#1463) - Add
archtohostsemantic conventions (#1483) - Add
runtimetocontainersemantic conventions (#1482) - Rename
gcp_gketogcp_kubernetes_engineto have consistency with other Google products undercloud.infrastructure_service(#1496) http.urlMUST NOT contain credentials (#1502)- Add
aws.eks.cluster.arnto EKS specific semantic conventions (#1484) - Rename
zonetoavailability_zoneincloudsemantic conventions (#1495) - Rename
cloud.infrastructure_servicetocloud.platform(#1530) - Add section describing that libraries and the collector should autogenerate the semantic convention keys. (#1515)
v1.0.1 (2021-02-11)
N/A
v1.0.0 (2021-02-10)
First release of OpenTelemetry Specification. Semantic conventions were not explicitly tracked in changelog up to this point.