Skip to content

Releases: open-telemetry/semantic-conventions

v1.25.0

04 Apr 16:48
f1be151
Compare
Choose a tag to compare

🛑 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

15 Dec 18:51
cafda71
Compare
Choose a tag to compare

This release marks JVM metrics stable.

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)

Full Changelog: v1.23.1...v1.24.0

v1.23.1

17 Nov 15:54
7372058
Compare
Choose a tag to compare

This patch releases fixes an issue that caused code generation using the tooling provided in https://github.com/open-telemetry/build-tools/tree/main/semantic-conventions#code-generator to fail. See #524 for details.

Changes

  • [backport to 1.23.x] Temp fix for separation of resource and semantic attributes (#524) by @arminru in #537
  • Add 1.23.1 schema and prepare changelog for patch release by @arminru in #538

Full Changelog: v1.23.0...v1.23.1

v1.23.0

03 Nov 16:56
da1dbb5
Compare
Choose a tag to compare

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)

New Contributors

Full Changelog: v1.22.0...v1.23.0

v1.22.0

12 Oct 14:09
cadfe53
Compare
Choose a tag to compare

Breaking

  • 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
  • BREAKING: Rename http.client.duration and http.server.duration metrics to
    http.client.request.duration and http.server.request.duration respectively.
    (#224)
  • BREAKING: Rename jvm.classes.current_loaded metrics to jvm.classes.count
    (#60)
  • BREAKING: Remove pluralization from JVM metric namespaces.
    (#252)
  • BREAKING: Rename metrics jvm.buffer.usage to jvm.buffer.memory.usage
    and jvm.buffer.limit to jvm.buffer.memory.limit.
    (#253)
  • BREAKING: Change HTTP span name when method is unknown (use HTTP instead of _OTHER)
    (#270)
  • 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)
  • 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)
  • BREAKING: Remove the zero bucket boundary from http.server.request.duration
    and http.client.request.duration.
    (#318)
  • BREAKING: Rename telemetry.auto.version resource attribute to telemetry.distro.version
    and add telemetry.distro.name resource attribute
    (#178)
  • BREAKING: Add url.scheme to http.client.* metrics
    (#357)
  • BREAKING: Remove server.socket.address from HTTP and RPC client metrics.
    (#350)
  • BREAKING: Rename/replace (client|server).socket.(address|port) attributes
    with network.(peer|local).(address|port).
    (#342)

Non-Breaking

  • 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)
  • 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.
  • 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)
  • Simplify HTTP metric briefs.
    (#276)
  • Add host cpu resource attributes.
    (#209)
  • Introduce error.type attribute and use it in HTTP conventions
    (#205)
  • 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)
  • Add system.linux.memory.available metric.
    (#323)
  • 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)
  • Encourage setting network.transport when reporting port numbers
    (#289)
  • Improve network attribute briefs.
    (#352)
  • Document the difference between host and system metrics
    (#324)
  • Improve HTTP metric briefs.
    (#366)
  • Add host.ip resource attribute convention.
    (#203)
  • Make network.protocol.name|version description consistent between HTTP
    spans and metrics.
    (#367)

v1.21.0

13 Jul 18:49
e531541
Compare
Choose a tag to compare

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)