Skip to content

Latest commit

 

History

History
1108 lines (986 loc) · 70 KB

CHANGELOG.md

File metadata and controls

1108 lines (986 loc) · 70 KB

Changelog

v1.28.0

🛑 Breaking changes 🛑

  • database: Add new db.response.status_code attribute, deprecate db.cosmos.status_code. (#1424)
  • gen_ai: Deprecate gen_ai.prompt and gen_ai.completion attributes, introduce log-based events for GenAI inputs and outputs. (#834, #980)
  • system: Make system.cpu.utilization and process.cpu.utilization opt-in (#1130)
  • messaging: Mark *.size messaging attributes as opt-in (#474)

🚩 Deprecations 🚩

  • event: Remove support for the event fields supporting 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 messaging publish and process spans. (#1112)

  • db: Change description of db.client.connection.pending_requests from cumulative to current value (#1290)

  • docs: Add note on tooling limitations for attribute names and enforce name format. (#1124)

  • az, db: Define db.operation.name values for Cosmos DB, declare az.namespace attribute and add proper reference to it. (#1330)

  • db: Recommend to capture db.namespace from initial connection over not capturing any, also specify db.namespace value 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 name on resource groups.
    • Enforce backwards compatibility stability requirements on resource groups.
    • Rename telemetry to telemetry.sdk, attributes are unchanged.
    • Mark telemetry.sdk and resource as stable in YAML model.
    • Markdown templates for resource groups NOW includes header describing the resource type, stability and description.
  • process: Add additional process fields from ECS (#993)

  • container: Add container.cpu.usage metric (#1128)

  • container: Add CSI (Container Storage Interface) attributes: container.csi.plugin.name and container.csi.volume.id. (#1119)

  • system: Add the system.filesystem.limit metric (#127)

  • k8s: Add k8s.pod.cpu.time, k8s.pod.cpu.usage, k8s.node.cpu.time, k8s.node.cpu.usage metrics (#1320)

  • k8s: Add k8s.pod.memory usage and k8s.node.memory.usage metrics (#1406)

  • k8s: Adds k8s.volume.name and k8s.volume.type attributes to the registry (#1164)

  • os: add lookup for os.build_id (#1318)

  • gen_ai: Add system specific conventions for OpenAI. (#1370)

  • system: Add the system.disk.limit metric (#127)

  • file: Add additional attributes from ECS to the file namespace. (#914)

  • messaging: Clarify the possibility to have a parent-child trace structure in messaging conventions (#1282)

  • nodejs: Adding nodejs.eventloop.time metric 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.name required and messaging.operation.type conditionally required when type is applicable.
    • Rename messaging.publish.messages metric to messaging.client.published.messages
    • Unify messaging.publish.duration and messaging.receive.duration metrics into messaging.client.operation.duration
    • Unify messaging.receive.messages and messaging.process.messages metrics into messaging.client.consumed.messages (#1006, #947, #937)
  • db: Clean up db.system enum members:

    • remove firstsql, mssqlcompact, and cloudscape as the corresponding databases are discontinued.
    • rename cache to intersystems_cache
    • remove coldfusion as it is not a database. (#1110)
  • db: Rename db.client.connections.* attributes to db.client.connection.* (#1125)

  • messaging: Rename messaging.kafka.message.offset to messaging.kafka.offset (#1156)

  • db: Sampling relevant attributes defined for database client spans (#1019)

  • tls: Deprecate tls.client.server_name attribute in favor of common server.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.name instead of messaging.kafka.consumer.group, messaging.rocketmq.client_group, and messaging.eventhubs.consumer.group. - messaging.destination.subscription.name instead of messaging.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. Deprecates db.elasticsearch.cluster.name in favor of db.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.environment has been deprecated and moved to deployment.environment.name.
  • jvm: Rename JVM metric jvm.buffer.memory.usage to jvm.buffer.memory.used (#288)

  • system: Rename process.cpu.state, container.cpu.state, and system.cpu.state attributes into a common cpu.mode attribute (#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 - deprecate enduser in favor of a new user namespace. Add more user attributes. (#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 that db.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: Rename gen_ai.usage.prompt_tokens to gen_ai.usage.input_tokens and gen_ai.usage.completion_tokens to gen_ai.usage.output_tokens to align terminology between spans and metrics. (#1200)
  • gen_ai: Convert gen_ai.operation.name to enum and use it on spans (#1202)
  • network: Add QUIC to the list of well known network transports (#1237, #1239)
  • db: db.query.text IN-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: Add server.address, server.port, and error.type to GenAI spans. (#1297)
  • gen-ai: Adding metrics for GenAI clients. (#811)
  • gen-ai: Adding gen_ai.request.top_k, gen_ai.request.presence_penalty, gen_ai.request.frequency_penalty and gen_ai.request.stop_sequences attributes. (#839)
  • messaging: Document messaging.operation.name for Azure messaging systems. (#942)
  • all: Define name abbreviations guidelines in attribute and metric names. (#1121)
  • messaging: Add pulsar message system (#1099)
  • linux: Add the system.linux.memory.slab.usage metric and the linux.memory.slab.state attributes. (#531)
  • cloudevents: CloudEvents conventions to follow HTTP/Messaging Span conventions (#654)
  • db: Add support for database batch operations (#712)
  • db: Specify sanitization for db.query.text. (#717)
  • gen-ai: Add 3 well-known gen-ai systems as reference values of the gen-ai system attribute (#1020)
  • gcp: Introduces gcp.client.service scope attribute. (#1047)
  • db: Add semantic convention of InfluxDB (#949)
  • log: Add 'log.record.original' attribute. (#1137)
  • session: Add new experimental session.start and session.end events (#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 from MUST to SHOULD. (#1167, #1003)

v1.26.0

🛑 Breaking changes 🛑

  • db: Rename db.statement to db.query.text and introduce db.query.parameter.<key> (#716)

  • db: Renames db.sql.table, db.cassandra.table, db.mongodb.collection, and db.cosmosdb.container attributes to db.collection.name (#870)

  • db: Rename db.operation to db.operation.name. (#884)

  • messaging: Rename messaging.operation to messaging.operation.type, add messaging.operation.name. (#890)

  • db: Deprecate the db.user attribute. (#885)

  • db: Rename db.name and db.redis.database_index to db.namespace, deprecate db.mssql.instance_name. (#885)

  • db: Remove db.instance.id. For Elasticsearch, replace with db.elasticsearch.node.name. (#972)

  • db: Clarify database span name format and fallback values. (#974, #704)

  • db: Rename db.client.connections.* metric namespace to db.client.connection.* and rename db.client.connection.usage to db.client.connection.count. (#201, #967)

  • db: Rename pool.name to db.client.connections.pool.name and state to db.client.connections.state. (#909)

  • system: Deprecate shared from system.memory.state values and make it a standalone metric (#522)

  • device.app.lifecycle: Reformat and update the device.app.lifecycle event description adds constraints for the possible values of the android.state and ios.state. (#794) Removes the ios.lifecycle.events and android.lifecycle.events attributes from the global registry and adds constraints for the possible values of the android.state and ios.state attributes.

  • messaging: Rename messaging.client_id to messaging.client.id (#935)

  • rpc: Renamemessage.* attributes under rpc to rpc.message.*. Deprecate old message.* attributes. (#854)

🚀 New components 🚀

  • gen-ai: Introducing semantic conventions for GenAI clients. (#327)

💡 Enhancements 💡

  • all: Markdown snippets are now generated by jinja templates in the templates directory. (#1000)

  • db, messaging, gen_ai: Clarify that db.system, messaging.system, gen_ai.system attributes 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: Add db.client.operation.duration metric (#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 the templates/ 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: Add error.type attribute 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: New url.template attribute added to URL, HTTP client attributes are extended with optional low-cardinality url.template (#675)

  • db: Add note to db.collection.name, db.namespace, and db.operation.name about 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.13
  • net: Add previously deprecated net attributes to registry (#1029) These attributes were deprecated in 1.13

v1.25.0

🛑 Breaking changes 🛑

  • messaging: Remove network.transport and network.type attributes from messaging semantic conventions, clarify when network.peer.address|port should be populated. (#690, #698)
  • db: Remove network.transport and network.type attributes from database semantic conventions, clarify when network.peer.address|port should be populated. (#690, #768)
  • messaging: Introduce common messaging.destination.partition.id instead of messaging.kafka.destination.partition (#798)
  • host: [resource/host] Change type of host.cpu.stepping to string (#664, #665)
  • system: Rename system.processes.* namespace to system.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.threads to process.thread.count
    • Rename process.open_file_descriptors to process.open_file_descriptor.count
    • Rename attributes for process.cpu.*
      • state to process.cpu.state
    • Change attributes for process.disk.io
      • Instead of direction use disk.io.direction from global registry
    • Change attributes for process.network.io
      • Instead of direction use network.io.direction from global registry
    • Rename attributes for process.context_switches
      • type to process.context_switch_type
    • Rename attributes for process.paging.faults
      • type to process.paging.fault_type

🚩 Deprecations 🚩

  • db: Deprecate db.connection_string attribute in favor of server.address and server.port (#724, #769)
  • db: Deprecate db.jdbc.driver_classname attribute (#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 adds messaging.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: Align system.cpu.state's definition with this of process.cpu.state. (#563)
  • container: Add new container metrics for cpu, memory, disk and network (#282, #72)
  • url: Sensitive content provided in url.full, url.path, and url.query SHOULD 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: Add http.request.size and http.response.size attributes 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 for service.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: Make network.protocol.name conditionally required for messaging (#644)
  • cloud: Add azure_container_apps to cloud.platform semantic conventions (#615)
  • user_agent: Add user_agent.name and user_agent.version attributes (#452)
  • messaging: Add an example for gcp_pubsub asynchronous batch publish (#545)
  • aws: Add aws.ecs.task.id attribute, corrected description for aws.ecs.task.arn (#597)
  • messaging: Add Azure Service Bus and Event Hubs messaging attributes (#572)

🧰 Bug fixes 🧰

  • aws-lambda: Fix problem in xray-lambda propagator 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.duration histogram buckets to [ 0.01, 0.1, 1, 10 ] (#317)
  • BREAKING: Change type of host.cpu.model.id and host.cpu.model.family to string. (#499)
  • Changed messaging.system attribute type to an open enum (#517)
  • Rename metrics jvm.memory.usage to jvm.memory.used and jvm.memory.usage_after_last_gc to jvm.memory.used_after_last_gc (#536)
  • BREAKING: Change event.name definition to include namespace and remove event.domain from log event attributes. (#473)
  • BREAKING: Change system.disk.io.direction and system.network.io.direction to global attributes disk.io.direction and network.io.direction (#530)
  • BREAKING: Change messaging.kafka.partition to messaging.kafka.destination.partition (#547)

Features

  • Adds labels attribute to k8s.pod resource (#494)
  • Change Erlang managed thread attribute to be the Erlang process (#491)
  • Add gcp_pubsub as a messaging system (#490)
  • Adds annotation attribute to k8s.pod resource (#494)
  • Add code.stacktrace attribute (#435)
  • Add http.flavor and http.user_agent to list of deprecated attributes (#503)
  • Add Semantic conventions for TLS/SSL encrypted communication. (#21)
  • Add messaging.gcp_pubsub.message.ordering_key attribute. (#528)
  • Define how to set process.runtime.name, process.runtime.version, process.runtime.description for .NET runtime. (#561)
  • Add db.instance.id attribute. (#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 deprecated property to mark attributes as deprecated instead of stability (#588)

v1.23.1 (2023-11-17)

Breaking

Features

Fixes

  • [backport to 1.23.x] Temp fix for separation of resource and semantic attributes (#524) via (#537)

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.name from 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.transport from recommended to opt-in in HTTP semconv. (#402)
  • BREAKING: Change network.type from recommended to opt-in in HTTP semconv. (#410)
  • BREAKING: Factor in X-Forwarded-Host / Forwarded when capturing server.address and server.port. (#411)
  • Remove thread.daemon, and introduce jvm.thread.daemon instead. Introduce jvm.thread.state attribute and add it to jvm.thread.count metric. (#297)
  • Fix server.port to be not required when server.address is not set. (#429)
  • Use seconds as default duration for FaaS duration histograms (#384)
  • BREAKING: Remove total from list of well-known values of system.memory.state attribute. (#409)
  • Remove url.path default value. (#462)
  • Remove conditional requirement on network.peer.address and network.peer.port (#449)
  • Change user_agent.original from recommended to opt-in on HTTP client spans. (#468)
  • Change http.request.body.size and http.response.body.size from recommended to opt-in. (#460)
  • Clarify that client.port is the port of whichever client was captured in client.address. (#471)
  • Change client.port from recommended to opt-in on HTTP server spans (#472)
  • BREAKING: Make url.scheme opt_in for HTTP client and remove default value for server.port making it required on the client. (#459)
  • Make client.address sampling relevant on HTTP server spans. (#469)
  • Change network.protocol.name from opt-in to conditionally required. (#478)
  • Remove outdated http.request.header.host guidance (#479)
  • Change sampling relevant from MUST to SHOULD (#486)
  • Make user_agent.original and http.request.header.* sampling relevant on HTTP server spans. (#467)

Features

  • Adds session.previous_id to session.md (#348)
  • Metric namespaces SHOULD NOT be pluralized. (#267)
  • Add opt-in system.memory.limit metric. (#409)
  • Add host.mac resource attribute convention. (#340)
  • Mark HTTP semantic conventions as stable. (#377)

Fixes

  • Clarify that error.type should 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.port from 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.address when only IP address available. (#413)
  • Clarify HTTP server definitions and server.address|port notes. (#423)
  • Change the precedence between :authority and Host headers when populating server.address and server.port attributes. (#455)
  • Explain deployment.environment impact on service identity. (#481)

v1.22.0 (2023-10-12)

  • Remove experimental Kafka metrics (#338)
  • Adds session.id and session.md to general docs and model (#215)
  • Add container.labels.<key> attributes. (#125)
  • Add cluster.name and node.name attributes to Elasticsearch semantic conventions. (#285)
  • Fix the unit of metric.process.runtime.jvm.system.cpu.load_1m to be {run_queue_item} (#95)
  • Update .count metric naming convention so that it only applies to UpDownCounters, and add that .total should not be used by either Counters or UpDownCounters (#107)
  • Add oci.manifest.digest, container.image.repo_digests attributes. Make container.image.tag array and in plural form. (#159)
  • BREAKING: Rename http.client.duration and http.server.duration metrics to http.client.request.duration and http.server.request.duration respectively. (#224)
  • Update HTTP network.protocol.version examples 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.* to jvm.* (#241)
  • BREAKING: Add namespaces to JVM metric attributes (#20).
    • Rename attributes type to jvm.memory.type, pool to jvm.memory.pool.name
    • Applies to metrics:
      • jvm.memory.usage
      • jvm.memory.init
      • jvm.memory.committed
      • jvm.memory.limit
      • jvm.memory.usage_after_last_gc
    • Rename attributes gc to jvm.gc.name, action to jvm.gc.action
    • Applies to metrics:
      • jvm.gc.duration
    • Rename attribute daemon to thread.daemon
    • Applies to metrics:
      • jvm.threads.count
    • Rename attribute pool to jvm.buffer.pool.name
    • Applies to metrics:
      • jvm.buffer.usage
      • jvm.buffer.limit
      • jvm.buffer.count
  • Clarify that http/dup has higher precedence than http in case both values are present in OTEL_SEMCONV_STABILITY_OPT_IN (#249)
  • Add jvm.cpu.count metric. (#52)
  • BREAKING: Rename metrics jvm.buffer.usage to jvm.buffer.memory.usage and jvm.buffer.limit to jvm.buffer.memory.limit. (#253)
  • BREAKING: Rename jvm.classes.current_loaded metrics to jvm.classes.count (#60)
  • BREAKING: Remove pluralization from JVM metric namespaces. (#252)
  • Simplify HTTP metric briefs. (#276)
  • Add host cpu resource attributes. (#209)
  • Introduce error.type attribute and use it in HTTP conventions (#205)
  • BREAKING: Change HTTP span name when method is unknown (use HTTP instead of _OTHER) (#270)
  • Moved RPC streaming notes from metric brief section to notes section. (#275)
  • Updates client.address to allow domain names for consistency with server.address. (#302)
  • BREAKING: Generate System metrics semconv from YAML. (#89)
    • Rename attributes for system.cpu.* metrics:
      • state to system.cpu.state
      • cpu to system.cpu.logical_number
    • Rename attributes for system.memory.* metrics:
      • state to system.memory.state
    • Rename attributes for system.paging.* metrics:
      • state to system.paging.state
      • type to system.paging.type
      • direction to system.paging.direction
    • Rename attributes for system.disk.* metrics:
      • device to system.device
      • direction to system.disk.direction
    • Rename attributes for system.filesystem.* metrics:
      • device to system.device
      • state to system.filesystem.state
      • type to system.filesystem.type
      • mode to system.filesystem.mode
      • mountpoint to system.filesystem.mountpoint
    • Rename attributes for system.network.* metrics:
      • device to system.device
      • direction to system.network.direction
      • protocol to network.protocol
      • state to system.network.state
    • Rename attributes for system.processes.* metrics:
      • status to system.processes.status
  • BREAKING: Rename messaging.message.payload_size_bytes to messaging.message.body.size, remove messaging.message.payload_compressed_size_bytes. (#229)
  • Add system.linux.memory.available metric. (#323)
  • BREAKING: Rename http.server.request.size metric to http.server.request.body.size and http.server.response.size metric to http.server.response.body.size (#247)
  • Move non-network.* attributes out of network.yaml. (#296)
  • Introducing Android android.os.api_level resource attribute. (#328)
  • Added os.build_id resource attribute. (#293)
  • BREAKING: Remove the zero bucket boundary from http.server.request.duration and http.client.request.duration. (#318)
  • Encourage setting network.transport when reporting port numbers (#289)
  • BREAKING: Add url.scheme to http.client.* metrics (#357)
  • BREAKING: Remove server.socket.address from HTTP and RPC client metrics. (#350)
  • Improve network attribute briefs. (#352)
  • Document the difference between host and system metrics (#324)
  • BREAKING: Rename telemetry.auto.version resource attribute to telemetry.distro.version and add telemetry.distro.name resource attribute (#178)
  • Add system.cpu.frequency metric. (#337)
  • Improve HTTP metric briefs. (#366)
  • Add host.ip resource 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 with network.(peer|local).(address|port). (#342)
  • Make network.protocol.name|version description 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 1 and 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, make messaging.client_id generic (#3336)
  • Add transition plan for upcoming breaking changes to the unstable HTTP semantic conventions. (#3443)
  • Rename net.peer.*, net.host.*, and net.sock.* attributes to align with ECS (#3402) BREAKING: rename net.peer.name to server.address on client side and to client.address on server side, net.peer.port to server.port on client side and to client.port on server side, net.host.name and net.host.port to server.address and server.port (since net.host.* attributes only applied to server instrumentation), net.sock.peer.addr to server.socket.address on client side and to client.socket.address on server side, net.sock.peer.port to server.socket.port on client side and to client.socket.port on server side, net.sock.peer.name to server.socket.domain (since net.sock.peer.name only applied to client instrumentation), net.sock.host.addr to server.socket.address (since net.sock.host.* only applied to server instrumentation), net.sock.host.port to server.socket.port (similarly since net.sock.host.* only applied to server instrumentation), http.client_ip to client.address
  • BREAKING: Introduce network.transport defined as OSI Transport Layer or Inter-process Communication method. Introduce network.type defined as OSI Network Layer or non-OSI equivalent. Remove net.transport and net.sock.family. Rename net.protocol.* to network.protocol.*, net.host.connection.* to network.connection.*, and net.host.carrier.* to network.carrier.*. (#3426)
  • BREAKING: Adopt ECS attributes in HTTP semantic conventions. Renames: http.method to http.request.method, http.status_code to http.response.status_code, http.request_content_length to http.request.body.size, http.response_content_length to http.response.body.size, http.url to url.full, http.scheme to url.scheme, and removes http.target breaking it down to http.target to url.path, url.query, and url.fragment. (#3355)
  • Add gcp.cloud_run.job.execution and gcp.cloud_run.job.task_id resource attributes for GCP Cloud Run Jobs (#3378)
  • Specify second unit (s) and advice bucket boundaries of [] for process.runtime.jvm.gc.duration. (#3458)
  • Specify the value range for JVM CPU metrics. (#13)
  • Rename process.runtime.jvm.cpu.utilization to process.runtime.jvm.cpu.recent_utilization. (#53)
  • Clarify process.runtime.jvm.threads.count refers to platform threads. (#54)
  • Add gcp.gce.instance.name and gcp.gce.instance.hostname resource 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.time metric. (#55)
  • Split out sections for proposed stable JVM metrics and experimental JVM metrics. (#56)
  • Make url.query conditionally required for HTTP spans. (#118)
  • Change server.address and server.port requirement levels on HTTP server metrics from required to opt_in. (#109)
  • Updated AWS Java Lambda guidance - using system properties. (#27)
  • Limit http.request.method values to a closed set of known values, introduce http.request.method_original for 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 use messaging.destination.* attributes on producer and consumer to describe messaging queue or topic. (#100)
  • Mark process.runtime.jvm.system.cpu.load_1m and process.runtime.jvm.system.cpu.utilization metrics as opt-in. (#57)
  • Add container image.id, command, command_line and command_args resource 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.count and system.cpu.logical.count metrics. (#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) to net.protocol.(name|version) (#3272)
  • Replace http.flavor with net.protocol.(name|version) (#3272)
  • Metric requirement levels are now stable (#3271)
  • BREAKING: remove messaging.destination.kind and messaging.source.kind. (#3214, #3348)
  • Define attributes collected for cosmosdb by 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.* and telemetry.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.statement to only be collected if there is sanitization. (#3127)
  • BREAKING: Remove http.status_code attribute from the http.server.active_requests metric. (#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 nonheap to non_heap (#3250)
  • Mark the attribute naming guidelines in the specification as stable. (#3220)
  • Mark telemetry schema readme stable. (#3221)
  • Remove mention of net.transport from 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, then net.peer.name SHOULD be the IP address x.x.x.x (#3276)
  • Mark net.sock.host.port as conditionally required. (#3246)
  • Rename Optional attribute requirement level to Opt-In. (#3228)
  • Rename http.user_agent to user_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_openshift to gcp_openshift to match the existing cloud.provider prefix. (#3095)
  • Changes http server span names from {http.route} to {http.method} {http.route} (when route is available), and from HTTP {http.method} to {http.method} (when route is not available). Changes http client span names from HTTP {http.method} to {http.method}. (#3165)
  • Mark http.server.duration and http.client.duration metrics as required, and mark all other HTTP metrics as optional. #3158
  • Add net.host.port to http.server.active_requests metrics attributes. #3158
  • http.route SHOULD 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.lineno source 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_id to messaging.consumer.id, messaging.destination to messaging.destination.name, messaging.temp_destination to messaging.destination.temporary, messaging.destination_kind to messaging.destination.kind, messaging.message_id to messaging.message.id, messaging.protocol to net.app.protocol.name, messaging.protocol_version, net.app.protocol.version, messaging.conversation_id to messaging.message.conversation_id, messaging.message_payload_size_bytes to messaging.message.payload_size_bytes, messaging.message_payload_compressed_size_bytes to messaging.message.payload_compressed_size_bytes, messaging.rabbitmq.routing_key: messaging.rabbitmq.destination.routing_key, messaging.kafka.message_key to messaging.kafka.message.key, messaging.kafka.consumer_group to messaging.kafka.consumer.group, messaging.kafka.partition to messaging.kafka.destination.partition, messaging.kafka.tombstone to messaging.kafka.message.tombstone, messaging.rocketmq.message_type to messaging.rocketmq.message.type, messaging.rocketmq.message_tag to messaging.rocketmq.message.tag, messaging.rocketmq.message_keys to messaging.rocketmq.message.keys; Removed messaging.url; Renamed send operation to publish; Split destination and source namespaces and clarify per-message attributes in batching scenarios.

v1.16.0 (2022-12-08)

  • Add process.runtime.jvm.gc.duration metric 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> and rpc.response.metadata.<key> to rpc.grpc.request.metadata.<key> and rpc.grpc.response.metadata.<key> (#2981)
  • List the machine-id as potential source for a unique host.id (#2978)
  • Add messaging.kafka.message.offset attribute. (#2982)
  • Update hardware metrics to use direction as 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.faults metric 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_gc metric to semantic conventions. (#2901)

v1.14.0 (2022-10-04)

  • Add process.context_switches, and process.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.route instead of http.target for servers, drop http.url for 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_version and cloudevents.event_type level from required to recommended (#2618)
  • Change faas.document.time and faas.time level from required to recommended (#2627)
  • Add rpc.grpc.status_code to RPC metric semantic conventions (#2604)
  • Add http.*.*.size metric semantic conventions for tracking size of requests / responses for http servers / clients (#2588)
  • BREAKING: rename net.peer.ip to net.sock.peer.addr, net.host.ip to net.sock.host.addr, net.peer.name to net.sock.peer.name for 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 state attribute for metric system.network.connections (#2663)
  • Add process.parent_pid attribute 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.max to process.runtime.jvm.memory.limit (#2605).
  • Add semantic conventions for hardware metrics (#2518).

v1.11.0 (2022-05-04)

  • Note added that net.peer.name SHOULD NOT be set if capturing it would require an extra reverse DNS lookup. And moved net.peer.name from common http attributes to just client http attributes. (#2446)
  • Add net.host.name and net.host.ip conventions 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.system to an enum (allowing custom values), and changed the rpc.system value for .NET WCF from wcf to dotnet_wcf. (#2377)
  • Define JavaScript runtime semantic conventions. (#2290)
  • Add semantic conventions for CloudEvents. (#1978)
  • Add process.cpu.utilization metric. (#2436)
  • Add rpc.system value 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.manufacturer to 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_count Resource attribute. (#1945)
  • Add "IBM z/Architecture" (s390x) to host.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.trigger for 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.subtype to 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_id to differentiate between message consumers. (#1810)
  • Clarifications for http.client_ip and http.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 that rpc.method should 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_key span attribute key to the respective YAML file. (#1651)
  • Clarify usage of "otel." attribute namespace. (#1640)
  • Add possibility to disable db.statement via 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 elasticsearch to db.system semantic conventions (#1463)
  • Add arch to host semantic conventions (#1483)
  • Add runtime to container semantic conventions (#1482)
  • Rename gcp_gke to gcp_kubernetes_engine to have consistency with other Google products under cloud.infrastructure_service (#1496)
  • http.url MUST NOT contain credentials (#1502)
  • Add aws.eks.cluster.arn to EKS specific semantic conventions (#1484)
  • Rename zone to availability_zone in cloud semantic conventions (#1495)
  • Rename cloud.infrastructure_service to cloud.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.