From dfb3bfcc9c1962e0ff96ed7fef7316c4b8235e2b Mon Sep 17 00:00:00 2001 From: James Thompson Date: Sat, 9 Aug 2025 13:42:03 +1000 Subject: [PATCH 01/14] Introduce the new requirement levels --- docs/exceptions/exceptions-spans.md | 2 +- docs/general/attribute-requirement-level.md | 65 +++++++++++++++++++ .../registry/markdown/attribute_table.j2 | 2 +- templates/registry/markdown/requirement.j2 | 5 +- 4 files changed, 71 insertions(+), 3 deletions(-) diff --git a/docs/exceptions/exceptions-spans.md b/docs/exceptions/exceptions-spans.md index c39ca0ad7d..8e554db189 100644 --- a/docs/exceptions/exceptions-spans.md +++ b/docs/exceptions/exceptions-spans.md @@ -35,7 +35,7 @@ This event describes a single exception. |---|---|---|---|---|---| | [`exception.message`](/docs/registry/attributes/exception.md) | string | The exception message. | `Division by zero`; `Can't convert 'int' object to str implicitly` | `Conditionally Required` [1] | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`exception.type`](/docs/registry/attributes/exception.md) | string | The type of the exception (its fully-qualified class name, if applicable). The dynamic type of the exception should be preferred over the static type in languages that support it. | `java.net.ConnectException`; `OSError` | `Conditionally Required` [2] | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -| [`exception.escaped`](/docs/registry/attributes/exception.md) | boolean | Indicates that the exception is escaping the scope of the span. | | `Recommended` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
It's no longer recommended to record exceptions that are handled and do not escape the scope of a span. | +| [`exception.escaped`](/docs/registry/attributes/exception.md) | boolean | Indicates that the exception is escaping the scope of the span. | | `Remove` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
It's no longer recommended to record exceptions that are handled and do not escape the scope of a span. | | [`exception.stacktrace`](/docs/registry/attributes/exception.md) | string | A stacktrace as a string in the natural representation for the language runtime. The representation is to be determined and documented by each language SIG. | `Exception in thread "main" java.lang.RuntimeException: Test exception\n at com.example.GenerateTrace.methodB(GenerateTrace.java:13)\n at com.example.GenerateTrace.methodA(GenerateTrace.java:9)\n at com.example.GenerateTrace.main(GenerateTrace.java:5)` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | **[1] `exception.message`:** Required if `exception.type` is not set, recommended otherwise. diff --git a/docs/general/attribute-requirement-level.md b/docs/general/attribute-requirement-level.md index 5b3c7e4c33..8269436768 100644 --- a/docs/general/attribute-requirement-level.md +++ b/docs/general/attribute-requirement-level.md @@ -112,6 +112,71 @@ particularly expensive to retrieve or might pose a security or privacy risk. These should therefore only be enabled explicitly by a user making an informed decision. +## Migrate + +The migrate requirement level is reserved for deprecated attributes and is +designed to help support a allowing for a phased rollout of the stable semantic conventions. +Under no circumstances should this attribute be added to an existing instrumentation. + +The type of instrumentation helps to determine how the attribute should be handled, see below. + +### Stable Instrumentation + +Should continue emitting the attribute unless: +* User has set the domain ie `database` via the `OTEL_SEMCONV_STABILITY_OPT_IN` environment variable. +* User has excluded the attribute via explicit configuration +* The instrumentation bumps it's major version but will continue providing security patches for +the previous major version for at least 6 months. + +Removal can occur when the major version is bumped provided previous major version will/has recieved 6 months of security patches from the time the replacement attribute is introduced. + +### Long-term Unstable Instrumentation + +> [!NOTE] +> Example's of long term unstable instrumentation, would be the OpenTelemetry Contrib packages as +> their stability is following that of the signal they are implementing. + +Should stop emitting the attribute unless: +* User has set the domain ie `database/dup` via the `OTEL_SEMCONV_STABILITY_OPT_IN` environment variable. +* User has included the attribute via explicit configuration + +Removal can occur when the deployment level of the package changes. For instance a beta package moves to release candidate. + +### Unstable Instrumentation + +Removal can occur once the new attribute is implemented, +provided that the instrumentation does not fall into any of the other categories. +Should that be the case the guidance for that category should be followed. + +## Remove + +The remove requirement level is reserved for deprecated attributes that are no longer relevant. +Under no circumstances should this attribute be added to an existing instrumentation. + +The type of instrumentation helps to determine how the attribute should be handled, see below. + +### Stable Instrumentation + +Should continue emitting the attribute unless: +* User has excluded the attribute via explicit configuration +* The instrumentation bumps it's major version but will continue providing security patches for +the previous major version for at least 6 months. + +Removal can occur when the major version is bumped provided previous major version will/has recieved 6 months of security patches from the time the replacement attribute is introduced. + +### Long-term Unstable Instrumentation + +Should stop emitting the attribute unless: +* User has included the attribute via explicit configuration + +Removal can occur when the deployment level of the package changes. For instance a beta package moves to release candidate. + +### Unstable Instrumentation + +Can remove attribute at any time, +provided that the instrumentation does not fall into any of the other categories. +Should that be the case the guidance for that category should be followed. + ## Performance suggestions Here are several examples of expensive operations to be avoided by default: diff --git a/templates/registry/markdown/attribute_table.j2 b/templates/registry/markdown/attribute_table.j2 index 5b862dbd31..d15bdc3adc 100644 --- a/templates/registry/markdown/attribute_table.j2 +++ b/templates/registry/markdown/attribute_table.j2 @@ -8,6 +8,6 @@ {#- Macro for creating attribute table -#} {% macro generate(attributes, tag_filter, attribute_registry_base_url, lineage_attributes) %}{% if (tag_filter | length == 0) %}{% set filtered_attributes = attributes %}{% else %}{% set filtered_attributes = attributes | selectattr("tag", "in", tag_filter) %}{% endif %}{% if (filtered_attributes is defined) and (filtered_attributes | length > 0) %}| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability | |---|---|---|---|---|---| -{% for attribute in filtered_attributes | attribute_sort %}| {{ attrs.name_with_link(attribute, attribute_registry_base_url, lineage_attributes) }} | {{ attrs.type(attribute) }} | {{ attribute.brief | trim }}{{ notes.add({"note": attribute.note, "name": attrs.name(attribute)}) }} | {{ examples.format(attribute) | trim }} | {{ requirement.render({"level": attribute.requirement_level, "name": attrs.name(attribute)}, notes) | trim }} | {{ stability.badge(attribute.stability, attribute.deprecated, attribute.brief) | trim }} | +{% for attribute in filtered_attributes | attribute_sort %}| {{ attrs.name_with_link(attribute, attribute_registry_base_url, lineage_attributes) }} | {{ attrs.type(attribute) }} | {{ attribute.brief | trim }}{{ notes.add({"note": attribute.note, "name": attrs.name(attribute)}) }} | {{ examples.format(attribute) | trim }} | {{ requirement.render({"level": attribute.requirement_level, "name": attrs.name(attribute), "deprecated": attribute.deprecated}, notes) | trim }} | {{ stability.badge(attribute.stability, attribute.deprecated, attribute.brief) | trim }} | {% endfor %}{{ notes.render() }}{{ sampling.snippet(filtered_attributes, attribute_registry_base_url, lineage_attributes) }}{{ enums.tables(filtered_attributes | selectattr("type", "mapping"), notes) }} {% endif %}{% endmacro %} diff --git a/templates/registry/markdown/requirement.j2 b/templates/registry/markdown/requirement.j2 index 1f5714de33..92a18cfad3 100644 --- a/templates/registry/markdown/requirement.j2 +++ b/templates/registry/markdown/requirement.j2 @@ -1,5 +1,8 @@ {% macro render(attr, notes) -%} -{%- if attr.level == "recommended" %}`Recommended` +{%- if attr.deprecated and attr.deprecated.reason == "renamed" %}`Migrate` +{% elif attr.deprecated and attr.deprecated.reason == "obsoleted" %}`Remove` +{% elif attr.deprecated and attr.deprecated.reason == "uncategorized" %}`Migrate` +{% elif attr.level == "recommended" %}`Recommended` {% elif attr.level == "required" %}`Required` {% elif attr.level == "opt_in" %}`Opt-In` {% elif attr.level.conditionally_required %}`Conditionally Required`{{ notes.add_with_limit({"note": attr.level.conditionally_required, "name": attr.name}) }} From c32da7984a50d4fdfe08e2afa1ade5811c6bf2ca Mon Sep 17 00:00:00 2001 From: James Thompson Date: Sat, 9 Aug 2025 15:21:52 +1000 Subject: [PATCH 02/14] doc fixes --- docs/general/attribute-requirement-level.md | 22 ++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/docs/general/attribute-requirement-level.md b/docs/general/attribute-requirement-level.md index 8269436768..b7a9c2c756 100644 --- a/docs/general/attribute-requirement-level.md +++ b/docs/general/attribute-requirement-level.md @@ -11,6 +11,14 @@ - [Conditionally Required](#conditionally-required) - [Recommended](#recommended) - [Opt-In](#opt-in) +- [Migrate](#migrate) + - [Stable Instrumentation](#stable-instrumentation) + - [Long-term Unstable Instrumentation](#long-term-unstable-instrumentation) + - [Unstable Instrumentation](#unstable-instrumentation) +- [Remove](#remove) + - [Stable Instrumentation](#stable-instrumentation-1) + - [Long-term Unstable Instrumentation](#long-term-unstable-instrumentation-1) + - [Unstable Instrumentation](#unstable-instrumentation-1) - [Performance suggestions](#performance-suggestions) @@ -115,7 +123,7 @@ decision. ## Migrate The migrate requirement level is reserved for deprecated attributes and is -designed to help support a allowing for a phased rollout of the stable semantic conventions. +designed to help support a allowing for a phased rollout of the stable semantic conventions. Under no circumstances should this attribute be added to an existing instrumentation. The type of instrumentation helps to determine how the attribute should be handled, see below. @@ -123,20 +131,22 @@ The type of instrumentation helps to determine how the attribute should be handl ### Stable Instrumentation Should continue emitting the attribute unless: + * User has set the domain ie `database` via the `OTEL_SEMCONV_STABILITY_OPT_IN` environment variable. * User has excluded the attribute via explicit configuration * The instrumentation bumps it's major version but will continue providing security patches for the previous major version for at least 6 months. -Removal can occur when the major version is bumped provided previous major version will/has recieved 6 months of security patches from the time the replacement attribute is introduced. +Removal can occur when the major version is bumped provided previous major version will/has received 6 months of security patches from the time the replacement attribute is introduced. ### Long-term Unstable Instrumentation > [!NOTE] -> Example's of long term unstable instrumentation, would be the OpenTelemetry Contrib packages as +> Example's of long term unstable instrumentation, would be the OpenTelemetry Contrib packages as > their stability is following that of the signal they are implementing. Should stop emitting the attribute unless: + * User has set the domain ie `database/dup` via the `OTEL_SEMCONV_STABILITY_OPT_IN` environment variable. * User has included the attribute via explicit configuration @@ -144,7 +154,7 @@ Removal can occur when the deployment level of the package changes. For instance ### Unstable Instrumentation -Removal can occur once the new attribute is implemented, +Removal can occur once the new attribute is implemented, provided that the instrumentation does not fall into any of the other categories. Should that be the case the guidance for that category should be followed. @@ -158,15 +168,17 @@ The type of instrumentation helps to determine how the attribute should be handl ### Stable Instrumentation Should continue emitting the attribute unless: + * User has excluded the attribute via explicit configuration * The instrumentation bumps it's major version but will continue providing security patches for the previous major version for at least 6 months. -Removal can occur when the major version is bumped provided previous major version will/has recieved 6 months of security patches from the time the replacement attribute is introduced. +Removal can occur when the major version is bumped provided previous major version will/has received 6 months of security patches from the time the replacement attribute is introduced. ### Long-term Unstable Instrumentation Should stop emitting the attribute unless: + * User has included the attribute via explicit configuration Removal can occur when the deployment level of the package changes. For instance a beta package moves to release candidate. From eaf060e88786f13618f64f02984f2b2b4e9dde40 Mon Sep 17 00:00:00 2001 From: James Thompson Date: Sun, 10 Aug 2025 11:42:01 +1000 Subject: [PATCH 03/14] Review feedback --- docs/general/attribute-requirement-level.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/docs/general/attribute-requirement-level.md b/docs/general/attribute-requirement-level.md index b7a9c2c756..f450887c49 100644 --- a/docs/general/attribute-requirement-level.md +++ b/docs/general/attribute-requirement-level.md @@ -123,7 +123,7 @@ decision. ## Migrate The migrate requirement level is reserved for deprecated attributes and is -designed to help support a allowing for a phased rollout of the stable semantic conventions. +designed to help support achieving a phased rollout of the stable semantic conventions. Under no circumstances should this attribute be added to an existing instrumentation. The type of instrumentation helps to determine how the attribute should be handled, see below. @@ -132,9 +132,9 @@ The type of instrumentation helps to determine how the attribute should be handl Should continue emitting the attribute unless: -* User has set the domain ie `database` via the `OTEL_SEMCONV_STABILITY_OPT_IN` environment variable. +* User has set the domain e.g. `database` via the `OTEL_SEMCONV_STABILITY_OPT_IN` environment variable. * User has excluded the attribute via explicit configuration -* The instrumentation bumps it's major version but will continue providing security patches for +* The instrumentation bumps its major version but will continue providing security patches for the previous major version for at least 6 months. Removal can occur when the major version is bumped provided previous major version will/has received 6 months of security patches from the time the replacement attribute is introduced. @@ -142,12 +142,12 @@ Removal can occur when the major version is bumped provided previous major versi ### Long-term Unstable Instrumentation > [!NOTE] -> Example's of long term unstable instrumentation, would be the OpenTelemetry Contrib packages as +> Examples of long term unstable instrumentation, would be the OpenTelemetry Contrib packages as > their stability is following that of the signal they are implementing. Should stop emitting the attribute unless: -* User has set the domain ie `database/dup` via the `OTEL_SEMCONV_STABILITY_OPT_IN` environment variable. +* User has set the domain e.g. `database/dup` via the `OTEL_SEMCONV_STABILITY_OPT_IN` environment variable. * User has included the attribute via explicit configuration Removal can occur when the deployment level of the package changes. For instance a beta package moves to release candidate. @@ -170,10 +170,11 @@ The type of instrumentation helps to determine how the attribute should be handl Should continue emitting the attribute unless: * User has excluded the attribute via explicit configuration -* The instrumentation bumps it's major version but will continue providing security patches for +* The instrumentation bumps its major version but will continue providing security patches for the previous major version for at least 6 months. -Removal can occur when the major version is bumped provided previous major version will/has received 6 months of security patches from the time the replacement attribute is introduced. +Removal can occur when the major version is bumped provided that previous major version will/has +received 6 months of security patches from the time that the default behaviour was changed to not emit. ### Long-term Unstable Instrumentation From 39b42c7aaef02dbb15791054342fd0805e850c4f Mon Sep 17 00:00:00 2001 From: James Thompson Date: Sat, 9 Aug 2025 13:43:15 +1000 Subject: [PATCH 04/14] Update Db model to show deprecated --- docs/database/database-metrics.md | 114 ++++++++++++++++++++++++++++++ docs/database/database-spans.md | 60 ++++++++++++++++ model/database/metrics.yaml | 2 + model/database/spans.yaml | 4 ++ 4 files changed, 180 insertions(+) diff --git a/docs/database/database-metrics.md b/docs/database/database-metrics.md index c6a0cbecdf..00be3423ec 100644 --- a/docs/database/database-metrics.md +++ b/docs/database/database-metrics.md @@ -90,6 +90,7 @@ of `[ 0.001, 0.005, 0.01, 0.05, 0.1, 0.5, 1, 5, 10 ]`. | [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [10] | `80`; `8080`; `443` | `Conditionally Required` [11] | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`db.query.summary`](/docs/registry/attributes/db.md) | string | Low cardinality summary of a database query. [12] | `SELECT wuser_table`; `INSERT shipping_details SELECT orders`; `get user by id` | `Recommended` [13] | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`db.stored_procedure.name`](/docs/registry/attributes/db.md) | string | The name of a stored procedure within the database. [14] | `GetCustomer` | `Recommended` [15] | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`db.system`](/docs/registry/attributes/db.md) | string | Deprecated, use `db.system.name` instead. | `other_sql`; `adabas`; `cache` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `db.system.name`. | | [`network.peer.address`](/docs/registry/attributes/network.md) | string | Peer address of the database node where the operation was performed. [16] | `10.1.2.80`; `/tmp/my.sock` | `Recommended` If applicable for this database system. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`network.peer.port`](/docs/registry/attributes/network.md) | int | Peer port number of the network connection. | `65123` | `Recommended` If and only if `network.peer.address` is set. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`server.address`](/docs/registry/attributes/server.md) | string | Name of the database host. [17] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | @@ -174,6 +175,62 @@ Parameterized query text SHOULD NOT be sanitized. Even though parameterized quer --- +`db.system` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used. + +| Value | Description | Stability | +|---|---|---| +| `adabas` | Adabas (Adaptable Database System) | ![Development](https://img.shields.io/badge/-development-blue) | +| `cassandra` | Apache Cassandra | ![Development](https://img.shields.io/badge/-development-blue) | +| `clickhouse` | ClickHouse | ![Development](https://img.shields.io/badge/-development-blue) | +| `cockroachdb` | CockroachDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `cosmosdb` | Microsoft Azure Cosmos DB | ![Development](https://img.shields.io/badge/-development-blue) | +| `couchbase` | Couchbase | ![Development](https://img.shields.io/badge/-development-blue) | +| `couchdb` | CouchDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `db2` | IBM Db2 | ![Development](https://img.shields.io/badge/-development-blue) | +| `derby` | Apache Derby | ![Development](https://img.shields.io/badge/-development-blue) | +| `dynamodb` | Amazon DynamoDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `edb` | EnterpriseDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `elasticsearch` | Elasticsearch | ![Development](https://img.shields.io/badge/-development-blue) | +| `filemaker` | FileMaker | ![Development](https://img.shields.io/badge/-development-blue) | +| `firebird` | Firebird | ![Development](https://img.shields.io/badge/-development-blue) | +| `geode` | Apache Geode | ![Development](https://img.shields.io/badge/-development-blue) | +| `h2` | H2 | ![Development](https://img.shields.io/badge/-development-blue) | +| `hanadb` | SAP HANA | ![Development](https://img.shields.io/badge/-development-blue) | +| `hbase` | Apache HBase | ![Development](https://img.shields.io/badge/-development-blue) | +| `hive` | Apache Hive | ![Development](https://img.shields.io/badge/-development-blue) | +| `hsqldb` | HyperSQL DataBase | ![Development](https://img.shields.io/badge/-development-blue) | +| `influxdb` | InfluxDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `informix` | Informix | ![Development](https://img.shields.io/badge/-development-blue) | +| `ingres` | Ingres | ![Development](https://img.shields.io/badge/-development-blue) | +| `instantdb` | InstantDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `interbase` | InterBase | ![Development](https://img.shields.io/badge/-development-blue) | +| `intersystems_cache` | InterSystems Caché | ![Development](https://img.shields.io/badge/-development-blue) | +| `mariadb` | MariaDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `maxdb` | SAP MaxDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `memcached` | Memcached | ![Development](https://img.shields.io/badge/-development-blue) | +| `mongodb` | MongoDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `mssql` | Microsoft SQL Server | ![Development](https://img.shields.io/badge/-development-blue) | +| `mysql` | MySQL | ![Development](https://img.shields.io/badge/-development-blue) | +| `neo4j` | Neo4j | ![Development](https://img.shields.io/badge/-development-blue) | +| `netezza` | Netezza | ![Development](https://img.shields.io/badge/-development-blue) | +| `opensearch` | OpenSearch | ![Development](https://img.shields.io/badge/-development-blue) | +| `oracle` | Oracle Database | ![Development](https://img.shields.io/badge/-development-blue) | +| `other_sql` | Some other SQL database. Fallback only. See notes. | ![Development](https://img.shields.io/badge/-development-blue) | +| `pervasive` | Pervasive PSQL | ![Development](https://img.shields.io/badge/-development-blue) | +| `pointbase` | PointBase | ![Development](https://img.shields.io/badge/-development-blue) | +| `postgresql` | PostgreSQL | ![Development](https://img.shields.io/badge/-development-blue) | +| `progress` | Progress Database | ![Development](https://img.shields.io/badge/-development-blue) | +| `redis` | Redis | ![Development](https://img.shields.io/badge/-development-blue) | +| `redshift` | Amazon Redshift | ![Development](https://img.shields.io/badge/-development-blue) | +| `spanner` | Cloud Spanner | ![Development](https://img.shields.io/badge/-development-blue) | +| `sqlite` | SQLite | ![Development](https://img.shields.io/badge/-development-blue) | +| `sybase` | Sybase | ![Development](https://img.shields.io/badge/-development-blue) | +| `teradata` | Teradata | ![Development](https://img.shields.io/badge/-development-blue) | +| `trino` | Trino | ![Development](https://img.shields.io/badge/-development-blue) | +| `vertica` | Vertica | ![Development](https://img.shields.io/badge/-development-blue) | + +--- + `db.system.name` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used. | Value | Description | Stability | @@ -277,6 +334,7 @@ Explaining bucket configuration: | [`error.type`](/docs/registry/attributes/error.md) | string | Describes a class of error the operation ended with. [9] | `timeout`; `java.net.UnknownHostException`; `server_certificate_invalid`; `500` | `Conditionally Required` If and only if the operation failed. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [10] | `80`; `8080`; `443` | `Conditionally Required` [11] | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`db.query.summary`](/docs/registry/attributes/db.md) | string | Low cardinality summary of a database query. [12] | `SELECT wuser_table`; `INSERT shipping_details SELECT orders`; `get user by id` | `Recommended` [13] | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`db.system`](/docs/registry/attributes/db.md) | string | Deprecated, use `db.system.name` instead. | `other_sql`; `adabas`; `cache` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `db.system.name`. | | [`network.peer.address`](/docs/registry/attributes/network.md) | string | Peer address of the database node where the operation was performed. [14] | `10.1.2.80`; `/tmp/my.sock` | `Recommended` If applicable for this database system. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`network.peer.port`](/docs/registry/attributes/network.md) | int | Peer port number of the network connection. | `65123` | `Recommended` If and only if `network.peer.address` is set. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`server.address`](/docs/registry/attributes/server.md) | string | Name of the database host. [15] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | @@ -353,6 +411,62 @@ Parameterized query text SHOULD NOT be sanitized. Even though parameterized quer --- +`db.system` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used. + +| Value | Description | Stability | +|---|---|---| +| `adabas` | Adabas (Adaptable Database System) | ![Development](https://img.shields.io/badge/-development-blue) | +| `cassandra` | Apache Cassandra | ![Development](https://img.shields.io/badge/-development-blue) | +| `clickhouse` | ClickHouse | ![Development](https://img.shields.io/badge/-development-blue) | +| `cockroachdb` | CockroachDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `cosmosdb` | Microsoft Azure Cosmos DB | ![Development](https://img.shields.io/badge/-development-blue) | +| `couchbase` | Couchbase | ![Development](https://img.shields.io/badge/-development-blue) | +| `couchdb` | CouchDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `db2` | IBM Db2 | ![Development](https://img.shields.io/badge/-development-blue) | +| `derby` | Apache Derby | ![Development](https://img.shields.io/badge/-development-blue) | +| `dynamodb` | Amazon DynamoDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `edb` | EnterpriseDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `elasticsearch` | Elasticsearch | ![Development](https://img.shields.io/badge/-development-blue) | +| `filemaker` | FileMaker | ![Development](https://img.shields.io/badge/-development-blue) | +| `firebird` | Firebird | ![Development](https://img.shields.io/badge/-development-blue) | +| `geode` | Apache Geode | ![Development](https://img.shields.io/badge/-development-blue) | +| `h2` | H2 | ![Development](https://img.shields.io/badge/-development-blue) | +| `hanadb` | SAP HANA | ![Development](https://img.shields.io/badge/-development-blue) | +| `hbase` | Apache HBase | ![Development](https://img.shields.io/badge/-development-blue) | +| `hive` | Apache Hive | ![Development](https://img.shields.io/badge/-development-blue) | +| `hsqldb` | HyperSQL DataBase | ![Development](https://img.shields.io/badge/-development-blue) | +| `influxdb` | InfluxDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `informix` | Informix | ![Development](https://img.shields.io/badge/-development-blue) | +| `ingres` | Ingres | ![Development](https://img.shields.io/badge/-development-blue) | +| `instantdb` | InstantDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `interbase` | InterBase | ![Development](https://img.shields.io/badge/-development-blue) | +| `intersystems_cache` | InterSystems Caché | ![Development](https://img.shields.io/badge/-development-blue) | +| `mariadb` | MariaDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `maxdb` | SAP MaxDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `memcached` | Memcached | ![Development](https://img.shields.io/badge/-development-blue) | +| `mongodb` | MongoDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `mssql` | Microsoft SQL Server | ![Development](https://img.shields.io/badge/-development-blue) | +| `mysql` | MySQL | ![Development](https://img.shields.io/badge/-development-blue) | +| `neo4j` | Neo4j | ![Development](https://img.shields.io/badge/-development-blue) | +| `netezza` | Netezza | ![Development](https://img.shields.io/badge/-development-blue) | +| `opensearch` | OpenSearch | ![Development](https://img.shields.io/badge/-development-blue) | +| `oracle` | Oracle Database | ![Development](https://img.shields.io/badge/-development-blue) | +| `other_sql` | Some other SQL database. Fallback only. See notes. | ![Development](https://img.shields.io/badge/-development-blue) | +| `pervasive` | Pervasive PSQL | ![Development](https://img.shields.io/badge/-development-blue) | +| `pointbase` | PointBase | ![Development](https://img.shields.io/badge/-development-blue) | +| `postgresql` | PostgreSQL | ![Development](https://img.shields.io/badge/-development-blue) | +| `progress` | Progress Database | ![Development](https://img.shields.io/badge/-development-blue) | +| `redis` | Redis | ![Development](https://img.shields.io/badge/-development-blue) | +| `redshift` | Amazon Redshift | ![Development](https://img.shields.io/badge/-development-blue) | +| `spanner` | Cloud Spanner | ![Development](https://img.shields.io/badge/-development-blue) | +| `sqlite` | SQLite | ![Development](https://img.shields.io/badge/-development-blue) | +| `sybase` | Sybase | ![Development](https://img.shields.io/badge/-development-blue) | +| `teradata` | Teradata | ![Development](https://img.shields.io/badge/-development-blue) | +| `trino` | Trino | ![Development](https://img.shields.io/badge/-development-blue) | +| `vertica` | Vertica | ![Development](https://img.shields.io/badge/-development-blue) | + +--- + `db.system.name` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used. | Value | Description | Stability | diff --git a/docs/database/database-spans.md b/docs/database/database-spans.md index e705957975..ca337c321b 100644 --- a/docs/database/database-spans.md +++ b/docs/database/database-spans.md @@ -120,10 +120,14 @@ classify as errors. | [`db.response.status_code`](/docs/registry/attributes/db.md) | string | Database response status code. [7] | `102`; `ORA-17002`; `08P01`; `404` | `Conditionally Required` [8] | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`error.type`](/docs/registry/attributes/error.md) | string | Describes a class of error the operation ended with. [9] | `timeout`; `java.net.UnknownHostException`; `server_certificate_invalid`; `500` | `Conditionally Required` If and only if the operation failed. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [10] | `80`; `8080`; `443` | `Conditionally Required` [11] | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`db.connection_string`](/docs/registry/attributes/db.md) | string | Deprecated, use `server.address`, `server.port` attributes instead. | `Server=(localdb)\v11.0;Integrated Security=true;` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `server.address` and `server.port`. | +| [`db.instance.id`](/docs/registry/attributes/db.md) | string | Deprecated, no general replacement at this time. For Elasticsearch, use `db.elasticsearch.node.name` instead. | `mysql-e26b99z.example.com` | `Remove` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Removed, no general replacement at this time. For Elasticsearch, use `db.elasticsearch.node.name` instead. | | [`db.operation.batch.size`](/docs/registry/attributes/db.md) | int | The number of queries included in a batch operation. [12] | `2`; `3`; `4` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`db.query.summary`](/docs/registry/attributes/db.md) | string | Low cardinality summary of a database query. [13] | `SELECT wuser_table`; `INSERT shipping_details SELECT orders`; `get user by id` | `Recommended` [14] | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`db.query.text`](/docs/registry/attributes/db.md) | string | The database query being executed. [15] | `SELECT * FROM wuser_table where username = ?`; `SET mykey ?` | `Recommended` [16] | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`db.stored_procedure.name`](/docs/registry/attributes/db.md) | string | The name of a stored procedure within the database. [17] | `GetCustomer` | `Recommended` [18] | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`db.system`](/docs/registry/attributes/db.md) | string | Deprecated, use `db.system.name` instead. | `other_sql`; `adabas`; `cache` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `db.system.name`. | +| [`db.user`](/docs/registry/attributes/db.md) | string | Deprecated, no replacement at this time. | `readonly_user`; `reporting_user` | `Remove` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Removed, no replacement at this time. | | [`network.peer.address`](/docs/registry/attributes/network.md) | string | Peer address of the database node where the operation was performed. [19] | `10.1.2.80`; `/tmp/my.sock` | `Recommended` If applicable for this database system. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`network.peer.port`](/docs/registry/attributes/network.md) | int | Peer port number of the network connection. | `65123` | `Recommended` if and only if `network.peer.address` is set. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`server.address`](/docs/registry/attributes/server.md) | string | Name of the database host. [20] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | @@ -245,6 +249,62 @@ and SHOULD be provided **at span creation time** (if provided at all): --- +`db.system` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used. + +| Value | Description | Stability | +|---|---|---| +| `adabas` | Adabas (Adaptable Database System) | ![Development](https://img.shields.io/badge/-development-blue) | +| `cassandra` | Apache Cassandra | ![Development](https://img.shields.io/badge/-development-blue) | +| `clickhouse` | ClickHouse | ![Development](https://img.shields.io/badge/-development-blue) | +| `cockroachdb` | CockroachDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `cosmosdb` | Microsoft Azure Cosmos DB | ![Development](https://img.shields.io/badge/-development-blue) | +| `couchbase` | Couchbase | ![Development](https://img.shields.io/badge/-development-blue) | +| `couchdb` | CouchDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `db2` | IBM Db2 | ![Development](https://img.shields.io/badge/-development-blue) | +| `derby` | Apache Derby | ![Development](https://img.shields.io/badge/-development-blue) | +| `dynamodb` | Amazon DynamoDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `edb` | EnterpriseDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `elasticsearch` | Elasticsearch | ![Development](https://img.shields.io/badge/-development-blue) | +| `filemaker` | FileMaker | ![Development](https://img.shields.io/badge/-development-blue) | +| `firebird` | Firebird | ![Development](https://img.shields.io/badge/-development-blue) | +| `geode` | Apache Geode | ![Development](https://img.shields.io/badge/-development-blue) | +| `h2` | H2 | ![Development](https://img.shields.io/badge/-development-blue) | +| `hanadb` | SAP HANA | ![Development](https://img.shields.io/badge/-development-blue) | +| `hbase` | Apache HBase | ![Development](https://img.shields.io/badge/-development-blue) | +| `hive` | Apache Hive | ![Development](https://img.shields.io/badge/-development-blue) | +| `hsqldb` | HyperSQL DataBase | ![Development](https://img.shields.io/badge/-development-blue) | +| `influxdb` | InfluxDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `informix` | Informix | ![Development](https://img.shields.io/badge/-development-blue) | +| `ingres` | Ingres | ![Development](https://img.shields.io/badge/-development-blue) | +| `instantdb` | InstantDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `interbase` | InterBase | ![Development](https://img.shields.io/badge/-development-blue) | +| `intersystems_cache` | InterSystems Caché | ![Development](https://img.shields.io/badge/-development-blue) | +| `mariadb` | MariaDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `maxdb` | SAP MaxDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `memcached` | Memcached | ![Development](https://img.shields.io/badge/-development-blue) | +| `mongodb` | MongoDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `mssql` | Microsoft SQL Server | ![Development](https://img.shields.io/badge/-development-blue) | +| `mysql` | MySQL | ![Development](https://img.shields.io/badge/-development-blue) | +| `neo4j` | Neo4j | ![Development](https://img.shields.io/badge/-development-blue) | +| `netezza` | Netezza | ![Development](https://img.shields.io/badge/-development-blue) | +| `opensearch` | OpenSearch | ![Development](https://img.shields.io/badge/-development-blue) | +| `oracle` | Oracle Database | ![Development](https://img.shields.io/badge/-development-blue) | +| `other_sql` | Some other SQL database. Fallback only. See notes. | ![Development](https://img.shields.io/badge/-development-blue) | +| `pervasive` | Pervasive PSQL | ![Development](https://img.shields.io/badge/-development-blue) | +| `pointbase` | PointBase | ![Development](https://img.shields.io/badge/-development-blue) | +| `postgresql` | PostgreSQL | ![Development](https://img.shields.io/badge/-development-blue) | +| `progress` | Progress Database | ![Development](https://img.shields.io/badge/-development-blue) | +| `redis` | Redis | ![Development](https://img.shields.io/badge/-development-blue) | +| `redshift` | Amazon Redshift | ![Development](https://img.shields.io/badge/-development-blue) | +| `spanner` | Cloud Spanner | ![Development](https://img.shields.io/badge/-development-blue) | +| `sqlite` | SQLite | ![Development](https://img.shields.io/badge/-development-blue) | +| `sybase` | Sybase | ![Development](https://img.shields.io/badge/-development-blue) | +| `teradata` | Teradata | ![Development](https://img.shields.io/badge/-development-blue) | +| `trino` | Trino | ![Development](https://img.shields.io/badge/-development-blue) | +| `vertica` | Vertica | ![Development](https://img.shields.io/badge/-development-blue) | + +--- + `db.system.name` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used. | Value | Description | Stability | diff --git a/model/database/metrics.yaml b/model/database/metrics.yaml index 7498261e97..f54f6247c3 100644 --- a/model/database/metrics.yaml +++ b/model/database/metrics.yaml @@ -13,6 +13,7 @@ groups: stability: stable extends: attributes.db.client.with_query_and_collection attributes: + - ref: db.system - ref: db.system.name # TODO: Not adding to the minimal because of https://github.com/open-telemetry/weaver/issues/479 requirement_level: required @@ -177,6 +178,7 @@ groups: stability: development extends: attributes.db.client.with_query_and_collection attributes: + - ref: db.system - ref: db.system.name # TODO: Not adding to the minimal because of https://github.com/open-telemetry/weaver/issues/479 requirement_level: required diff --git a/model/database/spans.yaml b/model/database/spans.yaml index 70b1bd9c85..2b7193ca6c 100644 --- a/model/database/spans.yaml +++ b/model/database/spans.yaml @@ -94,6 +94,7 @@ groups: - ref: network.peer.port requirement_level: recommended: if and only if `network.peer.address` is set. + - ref: db.system - ref: db.system.name sampling_relevant: true # TODO: Not adding to the minimal because of https://github.com/open-telemetry/weaver/issues/479 @@ -105,6 +106,9 @@ groups: - ref: db.stored_procedure.name requirement_level: recommended: If operation applies to a specific stored procedure. + - ref: db.connection_string + - ref: db.instance.id + - ref: db.user - id: span.db.client type: span From 8c91cc84725fd7c7ab4c96ad72816fa3137798c0 Mon Sep 17 00:00:00 2001 From: James Thompson Date: Sat, 9 Aug 2025 13:58:39 +1000 Subject: [PATCH 05/14] Update http model to show deprecations --- docs/http/http-metrics.md | 4 ++++ docs/http/http-spans.md | 2 ++ model/http/metrics.yaml | 4 ++++ model/http/spans.yaml | 2 ++ 4 files changed, 12 insertions(+) diff --git a/docs/http/http-metrics.md b/docs/http/http-metrics.md index 5e4cfa2d5d..e410d5e7b3 100644 --- a/docs/http/http-metrics.md +++ b/docs/http/http-metrics.md @@ -214,6 +214,10 @@ This metric is optional. |---|---|---|---|---|---| | [`http.request.method`](/docs/registry/attributes/http.md) | string | HTTP request method. [1] | `GET`; `POST`; `HEAD` | `Required` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`url.scheme`](/docs/registry/attributes/url.md) | string | The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol. | `http`; `https` | `Required` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`http.method`](/docs/registry/attributes/http.md) | string | Deprecated, use `http.request.method` instead. | `GET`; `POST`; `HEAD` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `http.request.method`. | +| [`http.scheme`](/docs/registry/attributes/http.md) | string | Deprecated, use `url.scheme` instead. | `http`; `https` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `url.scheme`. | +| [`net.host.name`](/docs/registry/attributes/network.md) | string | Deprecated, use `server.address`. | `example.com` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `server.address`. | +| [`net.host.port`](/docs/registry/attributes/network.md) | int | Deprecated, use `server.port`. | `8080` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `server.port`. | | [`server.address`](/docs/registry/attributes/server.md) | string | Name of the local HTTP server that received the request. [2] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | `Opt-In` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`server.port`](/docs/registry/attributes/server.md) | int | Port of the local HTTP server that received the request. [3] | `80`; `8080`; `443` | `Opt-In` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | diff --git a/docs/http/http-spans.md b/docs/http/http-spans.md index 8b1b43c73c..c7e36cf7a1 100644 --- a/docs/http/http-spans.md +++ b/docs/http/http-spans.md @@ -154,6 +154,7 @@ There are two ways HTTP client spans can be implemented in an instrumentation: | [`http.request.method_original`](/docs/registry/attributes/http.md) | string | Original HTTP method sent by the client in the request line. | `GeT`; `ACL`; `foo` | `Conditionally Required` [6] | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`http.response.status_code`](/docs/registry/attributes/http.md) | int | [HTTP response status code](https://tools.ietf.org/html/rfc7231#section-6). | `200` | `Conditionally Required` If and only if one was received/sent. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`network.protocol.name`](/docs/registry/attributes/network.md) | string | [OSI application layer](https://wikipedia.org/wiki/Application_layer) or non-OSI equivalent. [7] | `http`; `spdy` | `Conditionally Required` [8] | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`http.method`](/docs/registry/attributes/http.md) | string | Deprecated, use `http.request.method` instead. | `GET`; `POST`; `HEAD` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `http.request.method`. | | [`http.request.resend_count`](/docs/registry/attributes/http.md) | int | The ordinal number of request resending attempt (for any reason, including redirects). [9] | `3` | `Recommended` if and only if request was retried. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`network.peer.address`](/docs/registry/attributes/network.md) | string | Peer address of the network connection - IP address or Unix domain socket name. | `10.1.2.80`; `/tmp/my.sock` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`network.peer.port`](/docs/registry/attributes/network.md) | int | Peer port number of the network connection. | `65123` | `Recommended` If `network.peer.address` is set. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | @@ -456,6 +457,7 @@ This span represents an inbound HTTP request. | [`server.port`](/docs/registry/attributes/server.md) | int | Port of the local HTTP server that received the request. [9] | `80`; `8080`; `443` | `Conditionally Required` If available and `server.address` is set. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`url.query`](/docs/registry/attributes/url.md) | string | The [URI query](https://www.rfc-editor.org/rfc/rfc3986#section-3.4) component [10] | `q=OpenTelemetry` | `Conditionally Required` If and only if one was received/sent. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`client.address`](/docs/registry/attributes/client.md) | string | Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [11] | `83.164.160.102` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`http.method`](/docs/registry/attributes/http.md) | string | Deprecated, use `http.request.method` instead. | `GET`; `POST`; `HEAD` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `http.request.method`. | | [`network.peer.address`](/docs/registry/attributes/network.md) | string | Peer address of the network connection - IP address or Unix domain socket name. | `10.1.2.80`; `/tmp/my.sock` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`network.peer.port`](/docs/registry/attributes/network.md) | int | Peer port number of the network connection. | `65123` | `Recommended` If `network.peer.address` is set. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`network.protocol.version`](/docs/registry/attributes/network.md) | string | The actual version of the protocol used for network communication. [12] | `1.0`; `1.1`; `2`; `3` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | diff --git a/model/http/metrics.yaml b/model/http/metrics.yaml index 3e1ba5fda5..eaebb31c14 100644 --- a/model/http/metrics.yaml +++ b/model/http/metrics.yaml @@ -59,8 +59,10 @@ groups: instrument: updowncounter unit: "{request}" attributes: + - ref: http.method - ref: http.request.method requirement_level: required + - ref: http.scheme - ref: url.scheme requirement_level: required examples: ["http", "https"] @@ -82,6 +84,8 @@ groups: > **Warning** > Since this attribute is based on HTTP headers, opting in to it may allow an attacker > to trigger cardinality limits, degrading the usefulness of the metric. + - ref: net.host.name + - ref: net.host.port - id: metric.http.server.request.body.size type: metric diff --git a/model/http/spans.yaml b/model/http/spans.yaml index dd49374df9..61b6d4fc85 100644 --- a/model/http/spans.yaml +++ b/model/http/spans.yaml @@ -23,6 +23,7 @@ groups: **Span status:** refer to the [Span Status](/docs/http/http-spans.md#status) section. attributes: + - ref: http.method - ref: http.request.method sampling_relevant: true - ref: http.request.method_original @@ -79,6 +80,7 @@ groups: **Span status:** refer to the [Span Status](/docs/http/http-spans.md#status) section. stability: stable attributes: + - ref: http.method - ref: http.request.method sampling_relevant: true - ref: http.request.method_original From ddaeacfa2fa37d123ba2f4b2f4c4a493ffffb8d5 Mon Sep 17 00:00:00 2001 From: James Thompson Date: Sat, 9 Aug 2025 14:18:33 +1000 Subject: [PATCH 06/14] Update messaging model to show deprecations --- docs/messaging/azure-messaging.md | 22 ++++++++++++++---- docs/messaging/gcp-pubsub.md | 11 +++++++-- docs/messaging/kafka.md | 15 ++++++++---- docs/messaging/messaging-metrics.md | 4 ++++ docs/messaging/messaging-spans.md | 23 ++++++++++++------- docs/messaging/rabbitmq.md | 19 ++++++++++----- docs/messaging/rocketmq.md | 15 ++++++++---- docs/messaging/sns.md | 11 +++++++-- docs/messaging/sqs.md | 11 +++++++-- model/messaging/common.yaml | 1 + .../deprecated/registry-deprecated.yaml | 21 +++++++++++++++++ model/messaging/spans.yaml | 2 ++ 12 files changed, 123 insertions(+), 32 deletions(-) diff --git a/docs/messaging/azure-messaging.md b/docs/messaging/azure-messaging.md index 341b3df7f6..42d30f9449 100644 --- a/docs/messaging/azure-messaging.md +++ b/docs/messaging/azure-messaging.md @@ -63,8 +63,11 @@ The following additional attributes are defined: | [`server.address`](/docs/registry/attributes/server.md) | string | Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [9] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | `Conditionally Required` If available. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`messaging.message.conversation_id`](/docs/registry/attributes/messaging.md) | string | Message [correlation Id](https://learn.microsoft.com/azure/service-bus-messaging/service-bus-messages-payloads#message-routing-and-correlation) property. | `MyConversationId` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.message.id`](/docs/registry/attributes/messaging.md) | string | A value used by the messaging system as an identifier for the message, represented as a string. | `452a7c7c7c7048c2f887f61572b18fc2` | `Recommended` If span describes operation on a single message. | ![Development](https://img.shields.io/badge/-development-blue) | +| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [10] | `2048` | `Remove` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Obsoleted. | +| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [11] | `2738` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.message.envelope.size`. | +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.operation.type`. | | [`messaging.servicebus.message.enqueued_time`](/docs/registry/attributes/messaging.md) | int | The UTC epoch seconds at which the message has been accepted and stored in the entity. | `1701393730` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | -| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [10] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [12] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | **[1] `messaging.operation.name`:** The operation name SHOULD match one of the following values: @@ -112,7 +115,11 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi **[9] `server.address`:** Server domain name of the broker if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. -**[10] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. +**[10] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. + +**[11] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. + +**[12] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. The following attributes can be important for making sampling decisions and SHOULD be provided **at span creation time** (if provided at all): @@ -186,7 +193,10 @@ The following additional attributes are defined: | [`server.address`](/docs/registry/attributes/server.md) | string | Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [8] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | `Conditionally Required` If available. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`messaging.eventhubs.message.enqueued_time`](/docs/registry/attributes/messaging.md) | int | The UTC epoch seconds at which the message has been accepted and stored in the entity. | `1701393730` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.message.id`](/docs/registry/attributes/messaging.md) | string | A value used by the messaging system as an identifier for the message, represented as a string. | `452a7c7c7c7048c2f887f61572b18fc2` | `Recommended` If span describes operation on a single message. | ![Development](https://img.shields.io/badge/-development-blue) | -| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [9] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [9] | `2048` | `Remove` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Obsoleted. | +| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [10] | `2738` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.message.envelope.size`. | +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.operation.type`. | +| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [11] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | **[1] `messaging.operation.name`:** The operation name SHOULD match one of the following values: @@ -233,7 +243,11 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi **[8] `server.address`:** Server domain name of the broker if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. -**[9] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. +**[9] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. + +**[10] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. + +**[11] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. The following attributes can be important for making sampling decisions and SHOULD be provided **at span creation time** (if provided at all): diff --git a/docs/messaging/gcp-pubsub.md b/docs/messaging/gcp-pubsub.md index dd0089f6d8..04bf68ea45 100644 --- a/docs/messaging/gcp-pubsub.md +++ b/docs/messaging/gcp-pubsub.md @@ -63,7 +63,10 @@ For Google Cloud Pub/Sub, the following additional attributes are defined: | [`messaging.gcp_pubsub.message.ack_id`](/docs/registry/attributes/messaging.md) | string | The ack id for a given message. | `ack_id` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.gcp_pubsub.message.delivery_attempt`](/docs/registry/attributes/messaging.md) | int | The delivery attempt for a given message. | `2` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.message.id`](/docs/registry/attributes/messaging.md) | string | A value used by the messaging system as an identifier for the message, represented as a string. | `452a7c7c7c7048c2f887f61572b18fc2` | `Recommended` If span describes operation on a single message. | ![Development](https://img.shields.io/badge/-development-blue) | -| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [9] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [9] | `2048` | `Remove` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Obsoleted. | +| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [10] | `2738` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.message.envelope.size`. | +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.operation.type`. | +| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [11] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | **[1] `messaging.operation.name`:** The `messaging.operation.name` has the following list of well-known values in the context of Google Pub/Sub. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used. @@ -107,7 +110,11 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi **[8] `server.address`:** Server domain name of the broker if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. -**[9] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. +**[9] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. + +**[10] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. + +**[11] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. The following attributes can be important for making sampling decisions and SHOULD be provided **at span creation time** (if provided at all): diff --git a/docs/messaging/kafka.md b/docs/messaging/kafka.md index 5259d16858..40e9fb11ff 100644 --- a/docs/messaging/kafka.md +++ b/docs/messaging/kafka.md @@ -72,8 +72,11 @@ For Apache Kafka, the following additional attributes are defined: | [`messaging.kafka.message.key`](/docs/registry/attributes/messaging.md) | string | Message keys in Kafka are used for grouping alike messages to ensure they're processed on the same partition. They differ from `messaging.message.id` in that they're not unique. If the key is `null`, the attribute MUST NOT be set. [9] | `myKey` | `Recommended` If span describes operation on a single message. | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.kafka.offset`](/docs/registry/attributes/messaging.md) | int | The offset of a record in the corresponding Kafka partition. | `42` | `Recommended` If span describes operation on a single message. | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.message.id`](/docs/registry/attributes/messaging.md) | string | A value used by the messaging system as an identifier for the message, represented as a string. | `452a7c7c7c7048c2f887f61572b18fc2` | `Recommended` If span describes operation on a single message. | ![Development](https://img.shields.io/badge/-development-blue) | -| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [10] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -| [`messaging.message.body.size`](/docs/registry/attributes/messaging.md) | int | The size of the message body in bytes. Only applicable for spans describing single message operations. [11] | `1439` | `Opt-In` | ![Development](https://img.shields.io/badge/-development-blue) | +| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [10] | `2048` | `Remove` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Obsoleted. | +| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [11] | `2738` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.message.envelope.size`. | +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.operation.type`. | +| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [12] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`messaging.message.body.size`](/docs/registry/attributes/messaging.md) | int | The size of the message body in bytes. Only applicable for spans describing single message operations. [13] | `1439` | `Opt-In` | ![Development](https://img.shields.io/badge/-development-blue) | **[1] `error.type`:** The `error.type` SHOULD be predictable, and SHOULD have low cardinality. @@ -112,9 +115,13 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi **[9] `messaging.kafka.message.key`:** If the key type is not string, it's string representation has to be supplied for the attribute. If the key has no unambiguous, canonical string form, don't include its value. -**[10] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. +**[10] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. -**[11] `messaging.message.body.size`:** This can refer to both the compressed or uncompressed body size. If both sizes are known, the uncompressed +**[11] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. + +**[12] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. + +**[13] `messaging.message.body.size`:** This can refer to both the compressed or uncompressed body size. If both sizes are known, the uncompressed body size should be used. The following attributes can be important for making sampling decisions diff --git a/docs/messaging/messaging-metrics.md b/docs/messaging/messaging-metrics.md index cecf8ba811..86dc33ddb7 100644 --- a/docs/messaging/messaging-metrics.md +++ b/docs/messaging/messaging-metrics.md @@ -83,6 +83,7 @@ of `[ 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10 | [`messaging.operation.type`](/docs/registry/attributes/messaging.md) | string | A string identifying the type of the messaging operation. [8] | `create`; `send`; `receive` | `Conditionally Required` If applicable. | ![Development](https://img.shields.io/badge/-development-blue) | | [`server.address`](/docs/registry/attributes/server.md) | string | Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [9] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | `Conditionally Required` If available. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`messaging.destination.partition.id`](/docs/registry/attributes/messaging.md) | string | The identifier of the partition messages are sent to or received from, unique within the `messaging.destination.name`. | `1` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.operation.type`. | | [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [10] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | **[1] `messaging.system`:** The actual messaging system may differ from the one known by the client. For example, when using Kafka client libraries to communicate with Azure Event Hubs, the `messaging.system` is set to `kafka` based on the instrumentation's best knowledge. @@ -196,6 +197,7 @@ This metric is [required][MetricRequired]. | [`messaging.destination.template`](/docs/registry/attributes/messaging.md) | string | Low cardinality representation of the messaging destination name [5] | `/customers/{customerId}` | `Conditionally Required` if available. | ![Development](https://img.shields.io/badge/-development-blue) | | [`server.address`](/docs/registry/attributes/server.md) | string | Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [6] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | `Conditionally Required` If available. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`messaging.destination.partition.id`](/docs/registry/attributes/messaging.md) | string | The identifier of the partition messages are sent to or received from, unique within the `messaging.destination.name`. | `1` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.operation.type`. | | [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [7] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | **[1] `messaging.system`:** The actual messaging system may differ from the one known by the client. For example, when using Kafka client libraries to communicate with Azure Event Hubs, the `messaging.system` is set to `kafka` based on the instrumentation's best knowledge. @@ -294,6 +296,7 @@ The metric SHOULD be reported once per message delivery. For example, if receivi | [`messaging.destination.template`](/docs/registry/attributes/messaging.md) | string | Low cardinality representation of the messaging destination name [7] | `/customers/{customerId}` | `Conditionally Required` if available. | ![Development](https://img.shields.io/badge/-development-blue) | | [`server.address`](/docs/registry/attributes/server.md) | string | Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [8] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | `Conditionally Required` If available. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`messaging.destination.partition.id`](/docs/registry/attributes/messaging.md) | string | The identifier of the partition messages are sent to or received from, unique within the `messaging.destination.name`. | `1` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.operation.type`. | | [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [9] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | **[1] `messaging.system`:** The actual messaging system may differ from the one known by the client. For example, when using Kafka client libraries to communicate with Azure Event Hubs, the `messaging.system` is set to `kafka` based on the instrumentation's best knowledge. @@ -399,6 +402,7 @@ of `[ 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10 | [`messaging.destination.template`](/docs/registry/attributes/messaging.md) | string | Low cardinality representation of the messaging destination name [7] | `/customers/{customerId}` | `Conditionally Required` if available. | ![Development](https://img.shields.io/badge/-development-blue) | | [`server.address`](/docs/registry/attributes/server.md) | string | Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [8] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | `Conditionally Required` If available. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`messaging.destination.partition.id`](/docs/registry/attributes/messaging.md) | string | The identifier of the partition messages are sent to or received from, unique within the `messaging.destination.name`. | `1` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.operation.type`. | | [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [9] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | **[1] `messaging.system`:** The actual messaging system may differ from the one known by the client. For example, when using Kafka client libraries to communicate with Azure Event Hubs, the `messaging.system` is set to `kafka` based on the instrumentation's best knowledge. diff --git a/docs/messaging/messaging-spans.md b/docs/messaging/messaging-spans.md index 8bbfbc695a..b342c348b8 100644 --- a/docs/messaging/messaging-spans.md +++ b/docs/messaging/messaging-spans.md @@ -391,11 +391,14 @@ Messaging system-specific attributes MUST be defined in the corresponding `messa | [`messaging.destination.partition.id`](/docs/registry/attributes/messaging.md) | string | The identifier of the partition messages are sent to or received from, unique within the `messaging.destination.name`. | `1` | `Recommended` When applicable. | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.message.conversation_id`](/docs/registry/attributes/messaging.md) | string | The conversation ID identifying the conversation to which the message belongs, represented as a string. Sometimes called "Correlation ID". | `MyConversationId` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.message.id`](/docs/registry/attributes/messaging.md) | string | A value used by the messaging system as an identifier for the message, represented as a string. | `452a7c7c7c7048c2f887f61572b18fc2` | `Recommended` If span describes operation on a single message. | ![Development](https://img.shields.io/badge/-development-blue) | -| [`network.peer.address`](/docs/registry/attributes/network.md) | string | Peer address of the messaging intermediary node where the operation was performed. [15] | `10.1.2.80`; `/tmp/my.sock` | `Recommended` If applicable for this messaging system. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [15] | `2048` | `Remove` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Obsoleted. | +| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [16] | `2738` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.message.envelope.size`. | +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.operation.type`. | +| [`network.peer.address`](/docs/registry/attributes/network.md) | string | Peer address of the messaging intermediary node where the operation was performed. [17] | `10.1.2.80`; `/tmp/my.sock` | `Recommended` If applicable for this messaging system. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`network.peer.port`](/docs/registry/attributes/network.md) | int | Peer port of the messaging intermediary node where the operation was performed. | `65123` | `Recommended` if and only if `network.peer.address` is set. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [16] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -| [`messaging.message.body.size`](/docs/registry/attributes/messaging.md) | int | The size of the message body in bytes. [17] | `1439` | `Opt-In` | ![Development](https://img.shields.io/badge/-development-blue) | -| [`messaging.message.envelope.size`](/docs/registry/attributes/messaging.md) | int | The size of the message body and metadata in bytes. [18] | `2738` | `Opt-In` | ![Development](https://img.shields.io/badge/-development-blue) | +| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [18] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`messaging.message.body.size`](/docs/registry/attributes/messaging.md) | int | The size of the message body in bytes. [19] | `1439` | `Opt-In` | ![Development](https://img.shields.io/badge/-development-blue) | +| [`messaging.message.envelope.size`](/docs/registry/attributes/messaging.md) | int | The size of the message body and metadata in bytes. [20] | `2738` | `Opt-In` | ![Development](https://img.shields.io/badge/-development-blue) | **[1] `messaging.system`:** The actual messaging system may differ from the one known by the client. For example, when using Kafka client libraries to communicate with Azure Event Hubs, the `messaging.system` is set to `kafka` based on the instrumentation's best knowledge. @@ -444,16 +447,20 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi **[14] `server.address`:** Server domain name of the broker if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. -**[15] `network.peer.address`:** Semantic conventions for individual messaging systems SHOULD document whether `network.peer.*` attributes are applicable. +**[15] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. + +**[16] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. + +**[17] `network.peer.address`:** Semantic conventions for individual messaging systems SHOULD document whether `network.peer.*` attributes are applicable. Network peer address and port are important when the application interacts with individual intermediary nodes directly, If a messaging operation involved multiple network calls (for example retries), the address of the last contacted node SHOULD be used. -**[16] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. +**[18] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. -**[17] `messaging.message.body.size`:** This can refer to both the compressed or uncompressed body size. If both sizes are known, the uncompressed +**[19] `messaging.message.body.size`:** This can refer to both the compressed or uncompressed body size. If both sizes are known, the uncompressed body size should be used. -**[18] `messaging.message.envelope.size`:** This can refer to both the compressed or uncompressed size. If both sizes are known, the uncompressed +**[20] `messaging.message.envelope.size`:** This can refer to both the compressed or uncompressed size. If both sizes are known, the uncompressed size should be used. The following attributes can be important for making sampling decisions diff --git a/docs/messaging/rabbitmq.md b/docs/messaging/rabbitmq.md index 1abf54c569..3cf4b38b2b 100644 --- a/docs/messaging/rabbitmq.md +++ b/docs/messaging/rabbitmq.md @@ -58,10 +58,13 @@ The Semantic Conventions for [RabbitMQ](https://www.rabbitmq.com/) extend and ov | [`server.address`](/docs/registry/attributes/server.md) | string | Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [4] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | `Conditionally Required` If available. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`messaging.message.conversation_id`](/docs/registry/attributes/messaging.md) | string | Message [correlation Id](https://www.rabbitmq.com/tutorials/tutorial-six-java#correlation-id) property. | `MyConversationId` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.message.id`](/docs/registry/attributes/messaging.md) | string | A value used by the messaging system as an identifier for the message, represented as a string. | `452a7c7c7c7048c2f887f61572b18fc2` | `Recommended` If span describes operation on a single message. | ![Development](https://img.shields.io/badge/-development-blue) | -| [`network.peer.address`](/docs/registry/attributes/network.md) | string | Peer address of the network connection - IP address or Unix domain socket name. [5] | `10.1.2.80`; `/tmp/my.sock` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [5] | `2048` | `Remove` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Obsoleted. | +| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [6] | `2738` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.message.envelope.size`. | +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.operation.type`. | +| [`network.peer.address`](/docs/registry/attributes/network.md) | string | Peer address of the network connection - IP address or Unix domain socket name. [7] | `10.1.2.80`; `/tmp/my.sock` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`network.peer.port`](/docs/registry/attributes/network.md) | int | Peer port number of the network connection. | `65123` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [6] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -| [`messaging.message.body.size`](/docs/registry/attributes/messaging.md) | int | The size of the message body in bytes. [7] | `1439` | `Opt-In` | ![Development](https://img.shields.io/badge/-development-blue) | +| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [8] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`messaging.message.body.size`](/docs/registry/attributes/messaging.md) | int | The size of the message body in bytes. [9] | `1439` | `Opt-In` | ![Development](https://img.shields.io/badge/-development-blue) | **[1] `messaging.destination.name`:** In RabbitMQ, the destination is defined by an *exchange*, a *routing key* and for consumers, a *queue*. @@ -100,11 +103,15 @@ it's RECOMMENDED to: **[4] `server.address`:** Server domain name of the broker if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. -**[5] `network.peer.address`:** If an operation involved multiple network calls (for example retries), the address of the last contacted node SHOULD be used. +**[5] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. -**[6] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. +**[6] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. -**[7] `messaging.message.body.size`:** This can refer to both the compressed or uncompressed body size. If both sizes are known, the uncompressed +**[7] `network.peer.address`:** If an operation involved multiple network calls (for example retries), the address of the last contacted node SHOULD be used. + +**[8] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. + +**[9] `messaging.message.body.size`:** This can refer to both the compressed or uncompressed body size. If both sizes are known, the uncompressed body size should be used. The following attributes can be important for making sampling decisions diff --git a/docs/messaging/rocketmq.md b/docs/messaging/rocketmq.md index 5683e4dac8..9338f8624e 100644 --- a/docs/messaging/rocketmq.md +++ b/docs/messaging/rocketmq.md @@ -64,12 +64,15 @@ Specific attributes for Apache RocketMQ are defined below. | [`server.address`](/docs/registry/attributes/server.md) | string | Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [9] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | `Conditionally Required` If available. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`messaging.client.id`](/docs/registry/attributes/messaging.md) | string | A unique identifier for the client that consumes or produces a message. | `client-5`; `myhost@8742@s8083jm` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.message.id`](/docs/registry/attributes/messaging.md) | string | A value used by the messaging system as an identifier for the message, represented as a string. | `452a7c7c7c7048c2f887f61572b18fc2` | `Recommended` If span describes operation on a single message. | ![Development](https://img.shields.io/badge/-development-blue) | +| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [10] | `2048` | `Remove` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Obsoleted. | +| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [11] | `2738` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.message.envelope.size`. | +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.operation.type`. | | [`messaging.rocketmq.consumption_model`](/docs/registry/attributes/messaging.md) | string | Model of message consumption. This only applies to consumer spans. | `clustering`; `broadcasting` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.rocketmq.message.keys`](/docs/registry/attributes/messaging.md) | string[] | Key(s) of message, another way to mark message besides message id. | `["keyA", "keyB"]` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.rocketmq.message.tag`](/docs/registry/attributes/messaging.md) | string | The secondary classifier of message besides topic. | `tagA` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.rocketmq.message.type`](/docs/registry/attributes/messaging.md) | string | Type of message. | `normal`; `fifo`; `delay` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | -| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [10] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -| [`messaging.message.body.size`](/docs/registry/attributes/messaging.md) | int | The size of the message body in bytes. [11] | `1439` | `Opt-In` | ![Development](https://img.shields.io/badge/-development-blue) | +| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [12] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`messaging.message.body.size`](/docs/registry/attributes/messaging.md) | int | The size of the message body in bytes. [13] | `1439` | `Opt-In` | ![Development](https://img.shields.io/badge/-development-blue) | **[1] `error.type`:** The `error.type` SHOULD be predictable, and SHOULD have low cardinality. @@ -108,9 +111,13 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi **[9] `server.address`:** Server domain name of the broker if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. -**[10] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. +**[10] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. -**[11] `messaging.message.body.size`:** This can refer to both the compressed or uncompressed body size. If both sizes are known, the uncompressed +**[11] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. + +**[12] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. + +**[13] `messaging.message.body.size`:** This can refer to both the compressed or uncompressed body size. If both sizes are known, the uncompressed body size should be used. The following attributes can be important for making sampling decisions diff --git a/docs/messaging/sns.md b/docs/messaging/sns.md index 27b9e2b83b..459434af9b 100644 --- a/docs/messaging/sns.md +++ b/docs/messaging/sns.md @@ -28,7 +28,10 @@ described on this page. | [`aws.request_id`](/docs/registry/attributes/aws.md) | string | The AWS request ID as returned in the response headers `x-amzn-requestid`, `x-amzn-request-id` or `x-amz-request-id`. | `79b9da39-b7ae-508a-a6bc-864b2829c622`; `C9ER4AJX75574TDJ` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | | [`aws.sns.topic.arn`](/docs/registry/attributes/aws.md) | string | The ARN of the AWS SNS Topic. An Amazon SNS [topic](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html) is a logical access point that acts as a communication channel. | `arn:aws:sns:us-east-1:123456789012:mystack-mytopic-NZJ5JSMVGFIE` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.message.id`](/docs/registry/attributes/messaging.md) | string | A value used by the messaging system as an identifier for the message, represented as a string. | `452a7c7c7c7048c2f887f61572b18fc2` | `Recommended` If span describes operation on a single message. | ![Development](https://img.shields.io/badge/-development-blue) | -| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [6] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [6] | `2048` | `Remove` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Obsoleted. | +| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [7] | `2738` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.message.envelope.size`. | +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.operation.type`. | +| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [8] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | **[1] `error.type`:** The `error.type` SHOULD be predictable, and SHOULD have low cardinality. @@ -59,7 +62,11 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi **[5] `server.address`:** Server domain name of the broker if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. -**[6] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. +**[6] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. + +**[7] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. + +**[8] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. The following attributes can be important for making sampling decisions and SHOULD be provided **at span creation time** (if provided at all): diff --git a/docs/messaging/sqs.md b/docs/messaging/sqs.md index fd65fa277b..69289deb8d 100644 --- a/docs/messaging/sqs.md +++ b/docs/messaging/sqs.md @@ -28,7 +28,10 @@ described on this page. | [`aws.request_id`](/docs/registry/attributes/aws.md) | string | The AWS request ID as returned in the response headers `x-amzn-requestid`, `x-amzn-request-id` or `x-amz-request-id`. | `79b9da39-b7ae-508a-a6bc-864b2829c622`; `C9ER4AJX75574TDJ` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | | [`aws.sqs.queue.url`](/docs/registry/attributes/aws.md) | string | The URL of the AWS SQS Queue. It's a unique identifier for a queue in Amazon Simple Queue Service (SQS) and is used to access the queue and perform actions on it. | `https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.message.id`](/docs/registry/attributes/messaging.md) | string | A value used by the messaging system as an identifier for the message, represented as a string. | `452a7c7c7c7048c2f887f61572b18fc2` | `Recommended` If span describes operation on a single message. | ![Development](https://img.shields.io/badge/-development-blue) | -| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [6] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [6] | `2048` | `Remove` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Obsoleted. | +| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [7] | `2738` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.message.envelope.size`. | +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.operation.type`. | +| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [8] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | **[1] `error.type`:** The `error.type` SHOULD be predictable, and SHOULD have low cardinality. @@ -59,7 +62,11 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi **[5] `server.address`:** Server domain name of the broker if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. -**[6] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. +**[6] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. + +**[7] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. + +**[8] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. The following attributes can be important for making sampling decisions and SHOULD be provided **at span creation time** (if provided at all): diff --git a/model/messaging/common.yaml b/model/messaging/common.yaml index 108b75445a..baa0dbdafc 100644 --- a/model/messaging/common.yaml +++ b/model/messaging/common.yaml @@ -17,3 +17,4 @@ groups: - ref: server.port - ref: messaging.operation.name requirement_level: required + - ref: messaging.operation diff --git a/model/messaging/deprecated/registry-deprecated.yaml b/model/messaging/deprecated/registry-deprecated.yaml index a543f7fb10..da3922b169 100644 --- a/model/messaging/deprecated/registry-deprecated.yaml +++ b/model/messaging/deprecated/registry-deprecated.yaml @@ -5,6 +5,27 @@ groups: display_name: Deprecated Messaging Attributes brief: "Describes deprecated messaging attributes." attributes: + - id: messaging.message.payload_compressed_size_bytes + type: int + stability: development + deprecated: + reason: obsoleted + brief: > + The compressed size of the message payload in bytes. + note: | + Only if span represents operation on a single message. + examples: 2048 + - id: messaging.message.payload_size_bytes + type: int + stability: development + deprecated: + reason: renamed + renamed_to: messaging.message.envelope.size + brief: > + The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. + note: | + Only if span represents operation on a single message. + examples: 2738 - id: messaging.kafka.destination.partition type: int brief: > diff --git a/model/messaging/spans.yaml b/model/messaging/spans.yaml index 62e3293d7d..e5c89ca04b 100644 --- a/model/messaging/spans.yaml +++ b/model/messaging/spans.yaml @@ -27,6 +27,8 @@ groups: # TODO: add messaging.system once https://github.com/open-telemetry/weaver/issues/479 is implemented # - ref: messaging.system # sampling_relevant: true + - ref: messaging.message.payload_compressed_size_bytes + - ref: messaging.message.payload_size_bytes - id: messaging.attributes type: attribute_group # TODO: this should be a span - https://github.com/open-telemetry/semantic-conventions/issues/1891 From 5b7c13ffb2f7eb1282308e39e2516799dbc40751 Mon Sep 17 00:00:00 2001 From: James Thompson Date: Sat, 9 Aug 2025 15:21:35 +1000 Subject: [PATCH 07/14] fix messaging --- docs/registry/attributes/messaging.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/registry/attributes/messaging.md b/docs/registry/attributes/messaging.md index 362c111201..8107830fbb 100644 --- a/docs/registry/attributes/messaging.md +++ b/docs/registry/attributes/messaging.md @@ -196,6 +196,12 @@ Describes deprecated messaging attributes. | `messaging.kafka.consumer.group` | string | Deprecated, use `messaging.consumer.group.name` instead. | `my-group` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.consumer.group.name`. | | `messaging.kafka.destination.partition` | int | Deprecated, use `messaging.destination.partition.id` instead. | `2` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Record string representation of the partition id in `messaging.destination.partition.id` attribute. | | `messaging.kafka.message.offset` | int | Deprecated, use `messaging.kafka.offset` instead. | `42` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.kafka.offset`. | +| `messaging.message.payload_compressed_size_bytes` | int | The compressed size of the message payload in bytes. [11] | `2048` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Obsoleted. | +| `messaging.message.payload_size_bytes` | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [12] | `2738` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.message.envelope.size`. | | `messaging.operation` | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.operation.type`. | | `messaging.rocketmq.client_group` | string | Deprecated, use `messaging.consumer.group.name` instead. | `myConsumerGroup` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.consumer.group.name` on the consumer spans. No replacement for producer spans. | | `messaging.servicebus.destination.subscription_name` | string | Deprecated, use `messaging.destination.subscription.name` instead. | `subscription-a` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.destination.subscription.name`. | + +**[11] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. + +**[12] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. From 3d1e7ea1a7bc698110fc7be2e931bb75f336515b Mon Sep 17 00:00:00 2001 From: James Thompson Date: Sat, 9 Aug 2025 15:02:17 +1000 Subject: [PATCH 08/14] Add changelog --- .chloggen/add_back_deprecated_migrations.yaml | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .chloggen/add_back_deprecated_migrations.yaml diff --git a/.chloggen/add_back_deprecated_migrations.yaml b/.chloggen/add_back_deprecated_migrations.yaml new file mode 100644 index 0000000000..4fb2160912 --- /dev/null +++ b/.chloggen/add_back_deprecated_migrations.yaml @@ -0,0 +1,22 @@ +# Use this changelog template to create an entry for release notes. +# +# If your change doesn't affect end users you should instead start +# your pull request title with [chore] or use the "Skip Changelog" label. + +# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' +change_type: enhancement + +# The name of the area of concern in the attributes-registry, (e.g. http, cloud, db) +component: db, http, messaging + +# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). +note: This enables a user to see which attributes are no longer applicable and support a migration + +# Mandatory: One or more tracking issues related to the change. You can use the PR number here if no issue exists. +# The values here must be integers. +issues: [2601] + +# (Optional) One or more lines of additional information to render under the primary note. +# These lines will be padded with 2 spaces and then inserted directly into the document. +# Use pipe (|) for multiline entries. +subtext: From 14aa2dab180f747a6a580c75ccd71e6557eb19ab Mon Sep 17 00:00:00 2001 From: James Thompson Date: Sat, 23 Aug 2025 14:54:29 +1000 Subject: [PATCH 09/14] Move to deprecation actions --- docs/database/database-metrics.md | 124 +++++++++++++++++- docs/database/database-spans.md | 70 +++++++++- docs/exceptions/exceptions-spans.md | 7 +- docs/general/attribute-deprecation-action.md | 114 ++++++++++++++++ docs/general/attribute-requirement-level.md | 78 ----------- docs/http/http-metrics.md | 12 +- docs/http/http-spans.md | 12 +- docs/messaging/azure-messaging.md | 44 ++++--- docs/messaging/gcp-pubsub.md | 22 ++-- docs/messaging/kafka.md | 26 ++-- docs/messaging/messaging-metrics.md | 24 +++- docs/messaging/messaging-spans.md | 34 ++--- docs/messaging/rabbitmq.md | 30 +++-- docs/messaging/rocketmq.md | 26 ++-- docs/messaging/sns.md | 22 ++-- docs/messaging/sqs.md | 22 ++-- .../deprecated/registry-deprecated.yaml | 2 + .../registry/markdown/attribute_macros.j2 | 2 + .../registry/markdown/attribute_table.j2 | 13 +- .../registry/markdown/deprecation_action.j2 | 9 ++ templates/registry/markdown/requirement.j2 | 5 +- 21 files changed, 502 insertions(+), 196 deletions(-) create mode 100644 docs/general/attribute-deprecation-action.md create mode 100644 templates/registry/markdown/deprecation_action.j2 diff --git a/docs/database/database-metrics.md b/docs/database/database-metrics.md index 00be3423ec..a6a6a804d4 100644 --- a/docs/database/database-metrics.md +++ b/docs/database/database-metrics.md @@ -90,7 +90,6 @@ of `[ 0.001, 0.005, 0.01, 0.05, 0.1, 0.5, 1, 5, 10 ]`. | [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [10] | `80`; `8080`; `443` | `Conditionally Required` [11] | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`db.query.summary`](/docs/registry/attributes/db.md) | string | Low cardinality summary of a database query. [12] | `SELECT wuser_table`; `INSERT shipping_details SELECT orders`; `get user by id` | `Recommended` [13] | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`db.stored_procedure.name`](/docs/registry/attributes/db.md) | string | The name of a stored procedure within the database. [14] | `GetCustomer` | `Recommended` [15] | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -| [`db.system`](/docs/registry/attributes/db.md) | string | Deprecated, use `db.system.name` instead. | `other_sql`; `adabas`; `cache` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `db.system.name`. | | [`network.peer.address`](/docs/registry/attributes/network.md) | string | Peer address of the database node where the operation was performed. [16] | `10.1.2.80`; `/tmp/my.sock` | `Recommended` If applicable for this database system. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`network.peer.port`](/docs/registry/attributes/network.md) | int | Peer port number of the network connection. | `65123` | `Recommended` If and only if `network.peer.address` is set. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`server.address`](/docs/registry/attributes/server.md) | string | Name of the database host. [17] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | @@ -285,6 +284,67 @@ Parameterized query text SHOULD NOT be sanitized. Even though parameterized quer |---|---|---| | `_OTHER` | A fallback error value to be used when the instrumentation doesn't define a custom value. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +**Past Attributes:** +| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +|---|---|---|---|---|---| +| [`db.system`](/docs/registry/attributes/db.md) | string | Deprecated, use `db.system.name` instead. | `other_sql`; `adabas`; `intersystems_cache` | `Rename` | Use [`db.system.name`](/docs/registry/attributes/db.md) instead. | + +--- + +`db.system` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used. + +| Value | Description | Stability | +|---|---|---| +| `adabas` | Adabas (Adaptable Database System) | ![Development](https://img.shields.io/badge/-development-blue) | +| `cassandra` | Apache Cassandra | ![Development](https://img.shields.io/badge/-development-blue) | +| `clickhouse` | ClickHouse | ![Development](https://img.shields.io/badge/-development-blue) | +| `cockroachdb` | CockroachDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `cosmosdb` | Microsoft Azure Cosmos DB | ![Development](https://img.shields.io/badge/-development-blue) | +| `couchbase` | Couchbase | ![Development](https://img.shields.io/badge/-development-blue) | +| `couchdb` | CouchDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `db2` | IBM Db2 | ![Development](https://img.shields.io/badge/-development-blue) | +| `derby` | Apache Derby | ![Development](https://img.shields.io/badge/-development-blue) | +| `dynamodb` | Amazon DynamoDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `edb` | EnterpriseDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `elasticsearch` | Elasticsearch | ![Development](https://img.shields.io/badge/-development-blue) | +| `filemaker` | FileMaker | ![Development](https://img.shields.io/badge/-development-blue) | +| `firebird` | Firebird | ![Development](https://img.shields.io/badge/-development-blue) | +| `geode` | Apache Geode | ![Development](https://img.shields.io/badge/-development-blue) | +| `h2` | H2 | ![Development](https://img.shields.io/badge/-development-blue) | +| `hanadb` | SAP HANA | ![Development](https://img.shields.io/badge/-development-blue) | +| `hbase` | Apache HBase | ![Development](https://img.shields.io/badge/-development-blue) | +| `hive` | Apache Hive | ![Development](https://img.shields.io/badge/-development-blue) | +| `hsqldb` | HyperSQL DataBase | ![Development](https://img.shields.io/badge/-development-blue) | +| `influxdb` | InfluxDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `informix` | Informix | ![Development](https://img.shields.io/badge/-development-blue) | +| `ingres` | Ingres | ![Development](https://img.shields.io/badge/-development-blue) | +| `instantdb` | InstantDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `interbase` | InterBase | ![Development](https://img.shields.io/badge/-development-blue) | +| `intersystems_cache` | InterSystems Caché | ![Development](https://img.shields.io/badge/-development-blue) | +| `mariadb` | MariaDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `maxdb` | SAP MaxDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `memcached` | Memcached | ![Development](https://img.shields.io/badge/-development-blue) | +| `mongodb` | MongoDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `mssql` | Microsoft SQL Server | ![Development](https://img.shields.io/badge/-development-blue) | +| `mysql` | MySQL | ![Development](https://img.shields.io/badge/-development-blue) | +| `neo4j` | Neo4j | ![Development](https://img.shields.io/badge/-development-blue) | +| `netezza` | Netezza | ![Development](https://img.shields.io/badge/-development-blue) | +| `opensearch` | OpenSearch | ![Development](https://img.shields.io/badge/-development-blue) | +| `oracle` | Oracle Database | ![Development](https://img.shields.io/badge/-development-blue) | +| `other_sql` | Some other SQL database. Fallback only. See notes. | ![Development](https://img.shields.io/badge/-development-blue) | +| `pervasive` | Pervasive PSQL | ![Development](https://img.shields.io/badge/-development-blue) | +| `pointbase` | PointBase | ![Development](https://img.shields.io/badge/-development-blue) | +| `postgresql` | PostgreSQL | ![Development](https://img.shields.io/badge/-development-blue) | +| `progress` | Progress Database | ![Development](https://img.shields.io/badge/-development-blue) | +| `redis` | Redis | ![Development](https://img.shields.io/badge/-development-blue) | +| `redshift` | Amazon Redshift | ![Development](https://img.shields.io/badge/-development-blue) | +| `spanner` | Cloud Spanner | ![Development](https://img.shields.io/badge/-development-blue) | +| `sqlite` | SQLite | ![Development](https://img.shields.io/badge/-development-blue) | +| `sybase` | Sybase | ![Development](https://img.shields.io/badge/-development-blue) | +| `teradata` | Teradata | ![Development](https://img.shields.io/badge/-development-blue) | +| `trino` | Trino | ![Development](https://img.shields.io/badge/-development-blue) | +| `vertica` | Vertica | ![Development](https://img.shields.io/badge/-development-blue) | + @@ -334,7 +394,6 @@ Explaining bucket configuration: | [`error.type`](/docs/registry/attributes/error.md) | string | Describes a class of error the operation ended with. [9] | `timeout`; `java.net.UnknownHostException`; `server_certificate_invalid`; `500` | `Conditionally Required` If and only if the operation failed. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [10] | `80`; `8080`; `443` | `Conditionally Required` [11] | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`db.query.summary`](/docs/registry/attributes/db.md) | string | Low cardinality summary of a database query. [12] | `SELECT wuser_table`; `INSERT shipping_details SELECT orders`; `get user by id` | `Recommended` [13] | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -| [`db.system`](/docs/registry/attributes/db.md) | string | Deprecated, use `db.system.name` instead. | `other_sql`; `adabas`; `cache` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `db.system.name`. | | [`network.peer.address`](/docs/registry/attributes/network.md) | string | Peer address of the database node where the operation was performed. [14] | `10.1.2.80`; `/tmp/my.sock` | `Recommended` If applicable for this database system. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`network.peer.port`](/docs/registry/attributes/network.md) | int | Peer port number of the network connection. | `65123` | `Recommended` If and only if `network.peer.address` is set. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`server.address`](/docs/registry/attributes/server.md) | string | Name of the database host. [15] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | @@ -521,6 +580,67 @@ Parameterized query text SHOULD NOT be sanitized. Even though parameterized quer |---|---|---| | `_OTHER` | A fallback error value to be used when the instrumentation doesn't define a custom value. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +**Past Attributes:** +| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +|---|---|---|---|---|---| +| [`db.system`](/docs/registry/attributes/db.md) | string | Deprecated, use `db.system.name` instead. | `other_sql`; `adabas`; `intersystems_cache` | `Rename` | Use [`db.system.name`](/docs/registry/attributes/db.md) instead. | + +--- + +`db.system` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used. + +| Value | Description | Stability | +|---|---|---| +| `adabas` | Adabas (Adaptable Database System) | ![Development](https://img.shields.io/badge/-development-blue) | +| `cassandra` | Apache Cassandra | ![Development](https://img.shields.io/badge/-development-blue) | +| `clickhouse` | ClickHouse | ![Development](https://img.shields.io/badge/-development-blue) | +| `cockroachdb` | CockroachDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `cosmosdb` | Microsoft Azure Cosmos DB | ![Development](https://img.shields.io/badge/-development-blue) | +| `couchbase` | Couchbase | ![Development](https://img.shields.io/badge/-development-blue) | +| `couchdb` | CouchDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `db2` | IBM Db2 | ![Development](https://img.shields.io/badge/-development-blue) | +| `derby` | Apache Derby | ![Development](https://img.shields.io/badge/-development-blue) | +| `dynamodb` | Amazon DynamoDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `edb` | EnterpriseDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `elasticsearch` | Elasticsearch | ![Development](https://img.shields.io/badge/-development-blue) | +| `filemaker` | FileMaker | ![Development](https://img.shields.io/badge/-development-blue) | +| `firebird` | Firebird | ![Development](https://img.shields.io/badge/-development-blue) | +| `geode` | Apache Geode | ![Development](https://img.shields.io/badge/-development-blue) | +| `h2` | H2 | ![Development](https://img.shields.io/badge/-development-blue) | +| `hanadb` | SAP HANA | ![Development](https://img.shields.io/badge/-development-blue) | +| `hbase` | Apache HBase | ![Development](https://img.shields.io/badge/-development-blue) | +| `hive` | Apache Hive | ![Development](https://img.shields.io/badge/-development-blue) | +| `hsqldb` | HyperSQL DataBase | ![Development](https://img.shields.io/badge/-development-blue) | +| `influxdb` | InfluxDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `informix` | Informix | ![Development](https://img.shields.io/badge/-development-blue) | +| `ingres` | Ingres | ![Development](https://img.shields.io/badge/-development-blue) | +| `instantdb` | InstantDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `interbase` | InterBase | ![Development](https://img.shields.io/badge/-development-blue) | +| `intersystems_cache` | InterSystems Caché | ![Development](https://img.shields.io/badge/-development-blue) | +| `mariadb` | MariaDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `maxdb` | SAP MaxDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `memcached` | Memcached | ![Development](https://img.shields.io/badge/-development-blue) | +| `mongodb` | MongoDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `mssql` | Microsoft SQL Server | ![Development](https://img.shields.io/badge/-development-blue) | +| `mysql` | MySQL | ![Development](https://img.shields.io/badge/-development-blue) | +| `neo4j` | Neo4j | ![Development](https://img.shields.io/badge/-development-blue) | +| `netezza` | Netezza | ![Development](https://img.shields.io/badge/-development-blue) | +| `opensearch` | OpenSearch | ![Development](https://img.shields.io/badge/-development-blue) | +| `oracle` | Oracle Database | ![Development](https://img.shields.io/badge/-development-blue) | +| `other_sql` | Some other SQL database. Fallback only. See notes. | ![Development](https://img.shields.io/badge/-development-blue) | +| `pervasive` | Pervasive PSQL | ![Development](https://img.shields.io/badge/-development-blue) | +| `pointbase` | PointBase | ![Development](https://img.shields.io/badge/-development-blue) | +| `postgresql` | PostgreSQL | ![Development](https://img.shields.io/badge/-development-blue) | +| `progress` | Progress Database | ![Development](https://img.shields.io/badge/-development-blue) | +| `redis` | Redis | ![Development](https://img.shields.io/badge/-development-blue) | +| `redshift` | Amazon Redshift | ![Development](https://img.shields.io/badge/-development-blue) | +| `spanner` | Cloud Spanner | ![Development](https://img.shields.io/badge/-development-blue) | +| `sqlite` | SQLite | ![Development](https://img.shields.io/badge/-development-blue) | +| `sybase` | Sybase | ![Development](https://img.shields.io/badge/-development-blue) | +| `teradata` | Teradata | ![Development](https://img.shields.io/badge/-development-blue) | +| `trino` | Trino | ![Development](https://img.shields.io/badge/-development-blue) | +| `vertica` | Vertica | ![Development](https://img.shields.io/badge/-development-blue) | + diff --git a/docs/database/database-spans.md b/docs/database/database-spans.md index ca337c321b..8d0c28ef83 100644 --- a/docs/database/database-spans.md +++ b/docs/database/database-spans.md @@ -120,14 +120,10 @@ classify as errors. | [`db.response.status_code`](/docs/registry/attributes/db.md) | string | Database response status code. [7] | `102`; `ORA-17002`; `08P01`; `404` | `Conditionally Required` [8] | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`error.type`](/docs/registry/attributes/error.md) | string | Describes a class of error the operation ended with. [9] | `timeout`; `java.net.UnknownHostException`; `server_certificate_invalid`; `500` | `Conditionally Required` If and only if the operation failed. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [10] | `80`; `8080`; `443` | `Conditionally Required` [11] | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -| [`db.connection_string`](/docs/registry/attributes/db.md) | string | Deprecated, use `server.address`, `server.port` attributes instead. | `Server=(localdb)\v11.0;Integrated Security=true;` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `server.address` and `server.port`. | -| [`db.instance.id`](/docs/registry/attributes/db.md) | string | Deprecated, no general replacement at this time. For Elasticsearch, use `db.elasticsearch.node.name` instead. | `mysql-e26b99z.example.com` | `Remove` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Removed, no general replacement at this time. For Elasticsearch, use `db.elasticsearch.node.name` instead. | | [`db.operation.batch.size`](/docs/registry/attributes/db.md) | int | The number of queries included in a batch operation. [12] | `2`; `3`; `4` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`db.query.summary`](/docs/registry/attributes/db.md) | string | Low cardinality summary of a database query. [13] | `SELECT wuser_table`; `INSERT shipping_details SELECT orders`; `get user by id` | `Recommended` [14] | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`db.query.text`](/docs/registry/attributes/db.md) | string | The database query being executed. [15] | `SELECT * FROM wuser_table where username = ?`; `SET mykey ?` | `Recommended` [16] | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`db.stored_procedure.name`](/docs/registry/attributes/db.md) | string | The name of a stored procedure within the database. [17] | `GetCustomer` | `Recommended` [18] | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -| [`db.system`](/docs/registry/attributes/db.md) | string | Deprecated, use `db.system.name` instead. | `other_sql`; `adabas`; `cache` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `db.system.name`. | -| [`db.user`](/docs/registry/attributes/db.md) | string | Deprecated, no replacement at this time. | `readonly_user`; `reporting_user` | `Remove` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Removed, no replacement at this time. | | [`network.peer.address`](/docs/registry/attributes/network.md) | string | Peer address of the database node where the operation was performed. [19] | `10.1.2.80`; `/tmp/my.sock` | `Recommended` If applicable for this database system. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`network.peer.port`](/docs/registry/attributes/network.md) | int | Peer port number of the network connection. | `65123` | `Recommended` if and only if `network.peer.address` is set. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`server.address`](/docs/registry/attributes/server.md) | string | Name of the database host. [20] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | @@ -359,6 +355,72 @@ and SHOULD be provided **at span creation time** (if provided at all): |---|---|---| | `_OTHER` | A fallback error value to be used when the instrumentation doesn't define a custom value. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +**Past Attributes:** +| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +|---|---|---|---|---|---| +| [`db.connection_string`](/docs/registry/attributes/db.md) | string | Deprecated, use `server.address`, `server.port` attributes instead. | `Server=(localdb)\v11.0;Integrated Security=true;` | `Update` | Replaced by `server.address` and `server.port`. + | +| [`db.instance.id`](/docs/registry/attributes/db.md) | string | Deprecated, no general replacement at this time. For Elasticsearch, use `db.elasticsearch.node.name` instead. | `mysql-e26b99z.example.com` | `Drop` | Removed, no general replacement at this time. For Elasticsearch, use `db.elasticsearch.node.name` instead. + | +| [`db.system`](/docs/registry/attributes/db.md) | string | Deprecated, use `db.system.name` instead. | `other_sql`; `adabas`; `intersystems_cache` | `Rename` | Use [`db.system.name`](/docs/registry/attributes/db.md) instead. | +| [`db.user`](/docs/registry/attributes/db.md) | string | Deprecated, no replacement at this time. | `readonly_user`; `reporting_user` | `Drop` | Removed, no replacement at this time. | + +--- + +`db.system` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used. + +| Value | Description | Stability | +|---|---|---| +| `adabas` | Adabas (Adaptable Database System) | ![Development](https://img.shields.io/badge/-development-blue) | +| `cassandra` | Apache Cassandra | ![Development](https://img.shields.io/badge/-development-blue) | +| `clickhouse` | ClickHouse | ![Development](https://img.shields.io/badge/-development-blue) | +| `cockroachdb` | CockroachDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `cosmosdb` | Microsoft Azure Cosmos DB | ![Development](https://img.shields.io/badge/-development-blue) | +| `couchbase` | Couchbase | ![Development](https://img.shields.io/badge/-development-blue) | +| `couchdb` | CouchDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `db2` | IBM Db2 | ![Development](https://img.shields.io/badge/-development-blue) | +| `derby` | Apache Derby | ![Development](https://img.shields.io/badge/-development-blue) | +| `dynamodb` | Amazon DynamoDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `edb` | EnterpriseDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `elasticsearch` | Elasticsearch | ![Development](https://img.shields.io/badge/-development-blue) | +| `filemaker` | FileMaker | ![Development](https://img.shields.io/badge/-development-blue) | +| `firebird` | Firebird | ![Development](https://img.shields.io/badge/-development-blue) | +| `geode` | Apache Geode | ![Development](https://img.shields.io/badge/-development-blue) | +| `h2` | H2 | ![Development](https://img.shields.io/badge/-development-blue) | +| `hanadb` | SAP HANA | ![Development](https://img.shields.io/badge/-development-blue) | +| `hbase` | Apache HBase | ![Development](https://img.shields.io/badge/-development-blue) | +| `hive` | Apache Hive | ![Development](https://img.shields.io/badge/-development-blue) | +| `hsqldb` | HyperSQL DataBase | ![Development](https://img.shields.io/badge/-development-blue) | +| `influxdb` | InfluxDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `informix` | Informix | ![Development](https://img.shields.io/badge/-development-blue) | +| `ingres` | Ingres | ![Development](https://img.shields.io/badge/-development-blue) | +| `instantdb` | InstantDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `interbase` | InterBase | ![Development](https://img.shields.io/badge/-development-blue) | +| `intersystems_cache` | InterSystems Caché | ![Development](https://img.shields.io/badge/-development-blue) | +| `mariadb` | MariaDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `maxdb` | SAP MaxDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `memcached` | Memcached | ![Development](https://img.shields.io/badge/-development-blue) | +| `mongodb` | MongoDB | ![Development](https://img.shields.io/badge/-development-blue) | +| `mssql` | Microsoft SQL Server | ![Development](https://img.shields.io/badge/-development-blue) | +| `mysql` | MySQL | ![Development](https://img.shields.io/badge/-development-blue) | +| `neo4j` | Neo4j | ![Development](https://img.shields.io/badge/-development-blue) | +| `netezza` | Netezza | ![Development](https://img.shields.io/badge/-development-blue) | +| `opensearch` | OpenSearch | ![Development](https://img.shields.io/badge/-development-blue) | +| `oracle` | Oracle Database | ![Development](https://img.shields.io/badge/-development-blue) | +| `other_sql` | Some other SQL database. Fallback only. See notes. | ![Development](https://img.shields.io/badge/-development-blue) | +| `pervasive` | Pervasive PSQL | ![Development](https://img.shields.io/badge/-development-blue) | +| `pointbase` | PointBase | ![Development](https://img.shields.io/badge/-development-blue) | +| `postgresql` | PostgreSQL | ![Development](https://img.shields.io/badge/-development-blue) | +| `progress` | Progress Database | ![Development](https://img.shields.io/badge/-development-blue) | +| `redis` | Redis | ![Development](https://img.shields.io/badge/-development-blue) | +| `redshift` | Amazon Redshift | ![Development](https://img.shields.io/badge/-development-blue) | +| `spanner` | Cloud Spanner | ![Development](https://img.shields.io/badge/-development-blue) | +| `sqlite` | SQLite | ![Development](https://img.shields.io/badge/-development-blue) | +| `sybase` | Sybase | ![Development](https://img.shields.io/badge/-development-blue) | +| `teradata` | Teradata | ![Development](https://img.shields.io/badge/-development-blue) | +| `trino` | Trino | ![Development](https://img.shields.io/badge/-development-blue) | +| `vertica` | Vertica | ![Development](https://img.shields.io/badge/-development-blue) | + diff --git a/docs/exceptions/exceptions-spans.md b/docs/exceptions/exceptions-spans.md index 8e554db189..fb9d047a32 100644 --- a/docs/exceptions/exceptions-spans.md +++ b/docs/exceptions/exceptions-spans.md @@ -35,13 +35,18 @@ This event describes a single exception. |---|---|---|---|---|---| | [`exception.message`](/docs/registry/attributes/exception.md) | string | The exception message. | `Division by zero`; `Can't convert 'int' object to str implicitly` | `Conditionally Required` [1] | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`exception.type`](/docs/registry/attributes/exception.md) | string | The type of the exception (its fully-qualified class name, if applicable). The dynamic type of the exception should be preferred over the static type in languages that support it. | `java.net.ConnectException`; `OSError` | `Conditionally Required` [2] | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -| [`exception.escaped`](/docs/registry/attributes/exception.md) | boolean | Indicates that the exception is escaping the scope of the span. | | `Remove` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
It's no longer recommended to record exceptions that are handled and do not escape the scope of a span. | | [`exception.stacktrace`](/docs/registry/attributes/exception.md) | string | A stacktrace as a string in the natural representation for the language runtime. The representation is to be determined and documented by each language SIG. | `Exception in thread "main" java.lang.RuntimeException: Test exception\n at com.example.GenerateTrace.methodB(GenerateTrace.java:13)\n at com.example.GenerateTrace.methodA(GenerateTrace.java:9)\n at com.example.GenerateTrace.main(GenerateTrace.java:5)` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | **[1] `exception.message`:** Required if `exception.type` is not set, recommended otherwise. **[2] `exception.type`:** Required if `exception.message` is not set, recommended otherwise. +**Past Attributes:** +| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +|---|---|---|---|---|---| +| [`exception.escaped`](/docs/registry/attributes/exception.md) | boolean | Indicates that the exception is escaping the scope of the span. | | `Drop` | It's no longer recommended to record exceptions that are handled and do not escape the scope of a span. + | + diff --git a/docs/general/attribute-deprecation-action.md b/docs/general/attribute-deprecation-action.md new file mode 100644 index 0000000000..c6d3eb33ff --- /dev/null +++ b/docs/general/attribute-deprecation-action.md @@ -0,0 +1,114 @@ +# Attribute deprecation actions + +**Status**: [Stable][DocumentStatus] + +
+Table of Contents + + + +- [Migrate](#migrate) + - [Stable Instrumentation](#stable-instrumentation) + - [Long-term Unstable Instrumentation](#long-term-unstable-instrumentation) + - [Unstable Instrumentation](#unstable-instrumentation) +- [Rename](#rename) +- [Remove](#remove) + - [Stable Instrumentation](#stable-instrumentation-1) + - [Long-term Unstable Instrumentation](#long-term-unstable-instrumentation-1) + - [Unstable Instrumentation](#unstable-instrumentation-1) +- [Update](#update) +- [Drop](#drop) + + + +
+ +## Migrate + +The migrate action helps to facilitate a tranisition +from a deprecated attribute to the replacement attribute. +Under no circumstances should this attribute be added to an existing instrumentation. + +The type of instrumentation helps to determine how the attribute should be handled, see below. + +### Stable Instrumentation + +Should continue emitting the attribute unless: + +* User has set the domain e.g. `database` via the `OTEL_SEMCONV_STABILITY_OPT_IN` environment variable. +* User has excluded the attribute via explicit configuration +* The instrumentation bumps its major version but will continue providing security patches for +the previous major version for at least 6 months. + +The [Drop Action](#drop) can occur when the major version is bumped provided that the previous major version will/has received 6 months of security patches from the time the replacement attribute is introduced. + +### Long-term Unstable Instrumentation + +> [!NOTE] +> Examples of long term unstable instrumentation, would be the OpenTelemetry Contrib packages as +> their stability is following that of the signal they are implementing. + +Should stop emitting the attribute unless: + +* User has set the domain e.g. `database/dup` via the `OTEL_SEMCONV_STABILITY_OPT_IN` environment variable. +* User has included the attribute via explicit configuration + +The [Drop Action](#drop) can occur when the deployment level of the package changes. +For instance a beta package moves to release candidate. + +### Unstable Instrumentation + +Should follow the definition of the [Drop Action](#drop) for how to proceed. + +## Rename + +The implementation is able to rename the attribute currently being emitted without needing to support the existing attribute anymore. + +This equivilant to adding a new attribute and performing the [Drop Action](#drop) on the old attribute. + +## Remove + +The remove action helps to facilitate the removal of a deprecated attribute. +Under no circumstances should this attribute be added to an existing instrumentation. + +The type of instrumentation helps to determine how the attribute should be handled, see below. + +### Stable Instrumentation + +Should continue emitting the attribute unless: + +* User has excluded the attribute via explicit configuration +* The instrumentation bumps its major version but will continue providing security patches for +the previous major version for at least 6 months. + +The [Drop Action](#drop) can occur when the major version is bumped provided that previous major version will/has +received 6 months of security patches from the time that the default behaviour was changed to not emit. + +### Long-term Unstable Instrumentation + +Should stop emitting the attribute unless: + +* User has included the attribute via explicit configuration + +The [Drop Action](#drop) can occur when the deployment level of the package changes. For instance a beta package moves to release candidate. + +### Unstable Instrumentation + +Should follow the definition of the [Drop Action](#drop) for how to proceed. + +## Update + +The update action indicates that the replacement attribute is not just a rename of the existing attribute but something more. +This could be a split of the value into multiple attributes, change in units/type of the value or something else. +The deprecation note should provide more details of the change required and it is assumed that this action behaves just like the [Migrate action](#migrate) unless stated otherwise. + +## Drop + +The drop action is where an attribute can be removed from the implementation so that the signal will not natively emit that attribute again. +There is no ability for a user to configure that attribute to be emitted. + +Under no circumstances should this attribute be added to an existing instrumentation. + + +[DocumentStatus]: + https://opentelemetry.io/docs/specs/otel/document-status diff --git a/docs/general/attribute-requirement-level.md b/docs/general/attribute-requirement-level.md index f450887c49..5b3c7e4c33 100644 --- a/docs/general/attribute-requirement-level.md +++ b/docs/general/attribute-requirement-level.md @@ -11,14 +11,6 @@ - [Conditionally Required](#conditionally-required) - [Recommended](#recommended) - [Opt-In](#opt-in) -- [Migrate](#migrate) - - [Stable Instrumentation](#stable-instrumentation) - - [Long-term Unstable Instrumentation](#long-term-unstable-instrumentation) - - [Unstable Instrumentation](#unstable-instrumentation) -- [Remove](#remove) - - [Stable Instrumentation](#stable-instrumentation-1) - - [Long-term Unstable Instrumentation](#long-term-unstable-instrumentation-1) - - [Unstable Instrumentation](#unstable-instrumentation-1) - [Performance suggestions](#performance-suggestions) @@ -120,76 +112,6 @@ particularly expensive to retrieve or might pose a security or privacy risk. These should therefore only be enabled explicitly by a user making an informed decision. -## Migrate - -The migrate requirement level is reserved for deprecated attributes and is -designed to help support achieving a phased rollout of the stable semantic conventions. -Under no circumstances should this attribute be added to an existing instrumentation. - -The type of instrumentation helps to determine how the attribute should be handled, see below. - -### Stable Instrumentation - -Should continue emitting the attribute unless: - -* User has set the domain e.g. `database` via the `OTEL_SEMCONV_STABILITY_OPT_IN` environment variable. -* User has excluded the attribute via explicit configuration -* The instrumentation bumps its major version but will continue providing security patches for -the previous major version for at least 6 months. - -Removal can occur when the major version is bumped provided previous major version will/has received 6 months of security patches from the time the replacement attribute is introduced. - -### Long-term Unstable Instrumentation - -> [!NOTE] -> Examples of long term unstable instrumentation, would be the OpenTelemetry Contrib packages as -> their stability is following that of the signal they are implementing. - -Should stop emitting the attribute unless: - -* User has set the domain e.g. `database/dup` via the `OTEL_SEMCONV_STABILITY_OPT_IN` environment variable. -* User has included the attribute via explicit configuration - -Removal can occur when the deployment level of the package changes. For instance a beta package moves to release candidate. - -### Unstable Instrumentation - -Removal can occur once the new attribute is implemented, -provided that the instrumentation does not fall into any of the other categories. -Should that be the case the guidance for that category should be followed. - -## Remove - -The remove requirement level is reserved for deprecated attributes that are no longer relevant. -Under no circumstances should this attribute be added to an existing instrumentation. - -The type of instrumentation helps to determine how the attribute should be handled, see below. - -### Stable Instrumentation - -Should continue emitting the attribute unless: - -* User has excluded the attribute via explicit configuration -* The instrumentation bumps its major version but will continue providing security patches for -the previous major version for at least 6 months. - -Removal can occur when the major version is bumped provided that previous major version will/has -received 6 months of security patches from the time that the default behaviour was changed to not emit. - -### Long-term Unstable Instrumentation - -Should stop emitting the attribute unless: - -* User has included the attribute via explicit configuration - -Removal can occur when the deployment level of the package changes. For instance a beta package moves to release candidate. - -### Unstable Instrumentation - -Can remove attribute at any time, -provided that the instrumentation does not fall into any of the other categories. -Should that be the case the guidance for that category should be followed. - ## Performance suggestions Here are several examples of expensive operations to be avoided by default: diff --git a/docs/http/http-metrics.md b/docs/http/http-metrics.md index e410d5e7b3..4f6ec12842 100644 --- a/docs/http/http-metrics.md +++ b/docs/http/http-metrics.md @@ -214,10 +214,6 @@ This metric is optional. |---|---|---|---|---|---| | [`http.request.method`](/docs/registry/attributes/http.md) | string | HTTP request method. [1] | `GET`; `POST`; `HEAD` | `Required` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`url.scheme`](/docs/registry/attributes/url.md) | string | The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol. | `http`; `https` | `Required` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -| [`http.method`](/docs/registry/attributes/http.md) | string | Deprecated, use `http.request.method` instead. | `GET`; `POST`; `HEAD` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `http.request.method`. | -| [`http.scheme`](/docs/registry/attributes/http.md) | string | Deprecated, use `url.scheme` instead. | `http`; `https` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `url.scheme`. | -| [`net.host.name`](/docs/registry/attributes/network.md) | string | Deprecated, use `server.address`. | `example.com` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `server.address`. | -| [`net.host.port`](/docs/registry/attributes/network.md) | int | Deprecated, use `server.port`. | `8080` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `server.port`. | | [`server.address`](/docs/registry/attributes/server.md) | string | Name of the local HTTP server that received the request. [2] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | `Opt-In` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`server.port`](/docs/registry/attributes/server.md) | int | Port of the local HTTP server that received the request. [3] | `80`; `8080`; `443` | `Opt-In` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | @@ -265,6 +261,14 @@ Tracing instrumentations that do so, MUST also set `http.request.method_original | `QUERY` | QUERY method. | ![Development](https://img.shields.io/badge/-development-blue) | | `TRACE` | TRACE method. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +**Past Attributes:** +| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +|---|---|---|---|---|---| +| [`http.method`](/docs/registry/attributes/http.md) | string | Deprecated, use `http.request.method` instead. | `GET`; `POST`; `HEAD` | `Rename` | Use [`http.request.method`](/docs/registry/attributes/http.md) instead. | +| [`http.scheme`](/docs/registry/attributes/http.md) | string | Deprecated, use `url.scheme` instead. | `http`; `https` | `Rename` | Use [`url.scheme`](/docs/registry/attributes/url.md) instead. | +| [`net.host.name`](/docs/registry/attributes/network.md) | string | Deprecated, use `server.address`. | `example.com` | `Rename` | Use [`server.address`](/docs/registry/attributes/server.md) instead. | +| [`net.host.port`](/docs/registry/attributes/network.md) | int | Deprecated, use `server.port`. | `8080` | `Rename` | Use [`server.port`](/docs/registry/attributes/server.md) instead. | + diff --git a/docs/http/http-spans.md b/docs/http/http-spans.md index c7e36cf7a1..3e51134c6c 100644 --- a/docs/http/http-spans.md +++ b/docs/http/http-spans.md @@ -154,7 +154,6 @@ There are two ways HTTP client spans can be implemented in an instrumentation: | [`http.request.method_original`](/docs/registry/attributes/http.md) | string | Original HTTP method sent by the client in the request line. | `GeT`; `ACL`; `foo` | `Conditionally Required` [6] | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`http.response.status_code`](/docs/registry/attributes/http.md) | int | [HTTP response status code](https://tools.ietf.org/html/rfc7231#section-6). | `200` | `Conditionally Required` If and only if one was received/sent. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`network.protocol.name`](/docs/registry/attributes/network.md) | string | [OSI application layer](https://wikipedia.org/wiki/Application_layer) or non-OSI equivalent. [7] | `http`; `spdy` | `Conditionally Required` [8] | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -| [`http.method`](/docs/registry/attributes/http.md) | string | Deprecated, use `http.request.method` instead. | `GET`; `POST`; `HEAD` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `http.request.method`. | | [`http.request.resend_count`](/docs/registry/attributes/http.md) | int | The ordinal number of request resending attempt (for any reason, including redirects). [9] | `3` | `Recommended` if and only if request was retried. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`network.peer.address`](/docs/registry/attributes/network.md) | string | Peer address of the network connection - IP address or Unix domain socket name. | `10.1.2.80`; `/tmp/my.sock` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`network.peer.port`](/docs/registry/attributes/network.md) | int | Peer port number of the network connection. | `65123` | `Recommended` If `network.peer.address` is set. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | @@ -346,6 +345,11 @@ and SHOULD be provided **at span creation time** (if provided at all): | `bot` | Bot source. | ![Development](https://img.shields.io/badge/-development-blue) | | `test` | Synthetic test source. | ![Development](https://img.shields.io/badge/-development-blue) | +**Past Attributes:** +| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +|---|---|---|---|---|---| +| [`http.method`](/docs/registry/attributes/http.md) | string | Deprecated, use `http.request.method` instead. | `GET`; `POST`; `HEAD` | `Rename` | Use [`http.request.method`](/docs/registry/attributes/http.md) instead. | + @@ -457,7 +461,6 @@ This span represents an inbound HTTP request. | [`server.port`](/docs/registry/attributes/server.md) | int | Port of the local HTTP server that received the request. [9] | `80`; `8080`; `443` | `Conditionally Required` If available and `server.address` is set. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`url.query`](/docs/registry/attributes/url.md) | string | The [URI query](https://www.rfc-editor.org/rfc/rfc3986#section-3.4) component [10] | `q=OpenTelemetry` | `Conditionally Required` If and only if one was received/sent. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`client.address`](/docs/registry/attributes/client.md) | string | Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [11] | `83.164.160.102` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -| [`http.method`](/docs/registry/attributes/http.md) | string | Deprecated, use `http.request.method` instead. | `GET`; `POST`; `HEAD` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `http.request.method`. | | [`network.peer.address`](/docs/registry/attributes/network.md) | string | Peer address of the network connection - IP address or Unix domain socket name. | `10.1.2.80`; `/tmp/my.sock` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`network.peer.port`](/docs/registry/attributes/network.md) | int | Peer port number of the network connection. | `65123` | `Recommended` If `network.peer.address` is set. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`network.protocol.version`](/docs/registry/attributes/network.md) | string | The actual version of the protocol used for network communication. [12] | `1.0`; `1.1`; `2`; `3` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | @@ -651,6 +654,11 @@ and SHOULD be provided **at span creation time** (if provided at all): | `bot` | Bot source. | ![Development](https://img.shields.io/badge/-development-blue) | | `test` | Synthetic test source. | ![Development](https://img.shields.io/badge/-development-blue) | +**Past Attributes:** +| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +|---|---|---|---|---|---| +| [`http.method`](/docs/registry/attributes/http.md) | string | Deprecated, use `http.request.method` instead. | `GET`; `POST`; `HEAD` | `Rename` | Use [`http.request.method`](/docs/registry/attributes/http.md) instead. | + diff --git a/docs/messaging/azure-messaging.md b/docs/messaging/azure-messaging.md index 42d30f9449..187e78f6b4 100644 --- a/docs/messaging/azure-messaging.md +++ b/docs/messaging/azure-messaging.md @@ -63,11 +63,8 @@ The following additional attributes are defined: | [`server.address`](/docs/registry/attributes/server.md) | string | Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [9] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | `Conditionally Required` If available. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`messaging.message.conversation_id`](/docs/registry/attributes/messaging.md) | string | Message [correlation Id](https://learn.microsoft.com/azure/service-bus-messaging/service-bus-messages-payloads#message-routing-and-correlation) property. | `MyConversationId` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.message.id`](/docs/registry/attributes/messaging.md) | string | A value used by the messaging system as an identifier for the message, represented as a string. | `452a7c7c7c7048c2f887f61572b18fc2` | `Recommended` If span describes operation on a single message. | ![Development](https://img.shields.io/badge/-development-blue) | -| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [10] | `2048` | `Remove` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Obsoleted. | -| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [11] | `2738` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.message.envelope.size`. | -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.operation.type`. | | [`messaging.servicebus.message.enqueued_time`](/docs/registry/attributes/messaging.md) | int | The UTC epoch seconds at which the message has been accepted and stored in the entity. | `1701393730` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | -| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [12] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [10] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | **[1] `messaging.operation.name`:** The operation name SHOULD match one of the following values: @@ -115,11 +112,7 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi **[9] `server.address`:** Server domain name of the broker if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. -**[10] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. - -**[11] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. - -**[12] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. +**[10] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. The following attributes can be important for making sampling decisions and SHOULD be provided **at span creation time** (if provided at all): @@ -162,6 +155,17 @@ and SHOULD be provided **at span creation time** (if provided at all): | `dead_letter` | Message is sent to dead letter queue | ![Development](https://img.shields.io/badge/-development-blue) | | `defer` | Message is deferred | ![Development](https://img.shields.io/badge/-development-blue) | +**Past Attributes:** +| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +|---|---|---|---|---|---| +| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [11] | `2048` | `Drop` | Obsoleted. | +| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [12] | `2738` | `Rename` | Use [`messaging.message.envelope.size`](/docs/registry/attributes/.md) instead. | +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | + +**[11] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. + +**[12] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. + @@ -193,10 +197,7 @@ The following additional attributes are defined: | [`server.address`](/docs/registry/attributes/server.md) | string | Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [8] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | `Conditionally Required` If available. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`messaging.eventhubs.message.enqueued_time`](/docs/registry/attributes/messaging.md) | int | The UTC epoch seconds at which the message has been accepted and stored in the entity. | `1701393730` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.message.id`](/docs/registry/attributes/messaging.md) | string | A value used by the messaging system as an identifier for the message, represented as a string. | `452a7c7c7c7048c2f887f61572b18fc2` | `Recommended` If span describes operation on a single message. | ![Development](https://img.shields.io/badge/-development-blue) | -| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [9] | `2048` | `Remove` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Obsoleted. | -| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [10] | `2738` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.message.envelope.size`. | -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.operation.type`. | -| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [11] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [9] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | **[1] `messaging.operation.name`:** The operation name SHOULD match one of the following values: @@ -243,11 +244,7 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi **[8] `server.address`:** Server domain name of the broker if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. -**[9] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. - -**[10] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. - -**[11] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. +**[9] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. The following attributes can be important for making sampling decisions and SHOULD be provided **at span creation time** (if provided at all): @@ -280,6 +277,17 @@ and SHOULD be provided **at span creation time** (if provided at all): | `send` | One or more messages are provided for sending to an intermediary. If a single message is sent, the context of the "Send" span can be used as the creation context and no "Create" span needs to be created. | ![Development](https://img.shields.io/badge/-development-blue) | | `settle` | One or more messages are settled. | ![Development](https://img.shields.io/badge/-development-blue) | +**Past Attributes:** +| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +|---|---|---|---|---|---| +| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [10] | `2048` | `Drop` | Obsoleted. | +| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [11] | `2738` | `Rename` | Use [`messaging.message.envelope.size`](/docs/registry/attributes/.md) instead. | +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | + +**[10] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. + +**[11] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. + diff --git a/docs/messaging/gcp-pubsub.md b/docs/messaging/gcp-pubsub.md index 04bf68ea45..eeee6ed7b2 100644 --- a/docs/messaging/gcp-pubsub.md +++ b/docs/messaging/gcp-pubsub.md @@ -63,10 +63,7 @@ For Google Cloud Pub/Sub, the following additional attributes are defined: | [`messaging.gcp_pubsub.message.ack_id`](/docs/registry/attributes/messaging.md) | string | The ack id for a given message. | `ack_id` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.gcp_pubsub.message.delivery_attempt`](/docs/registry/attributes/messaging.md) | int | The delivery attempt for a given message. | `2` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.message.id`](/docs/registry/attributes/messaging.md) | string | A value used by the messaging system as an identifier for the message, represented as a string. | `452a7c7c7c7048c2f887f61572b18fc2` | `Recommended` If span describes operation on a single message. | ![Development](https://img.shields.io/badge/-development-blue) | -| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [9] | `2048` | `Remove` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Obsoleted. | -| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [10] | `2738` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.message.envelope.size`. | -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.operation.type`. | -| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [11] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [9] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | **[1] `messaging.operation.name`:** The `messaging.operation.name` has the following list of well-known values in the context of Google Pub/Sub. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used. @@ -110,11 +107,7 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi **[8] `server.address`:** Server domain name of the broker if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. -**[9] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. - -**[10] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. - -**[11] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. +**[9] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. The following attributes can be important for making sampling decisions and SHOULD be provided **at span creation time** (if provided at all): @@ -146,6 +139,17 @@ and SHOULD be provided **at span creation time** (if provided at all): | `send` | One or more messages are provided for sending to an intermediary. If a single message is sent, the context of the "Send" span can be used as the creation context and no "Create" span needs to be created. | ![Development](https://img.shields.io/badge/-development-blue) | | `settle` | One or more messages are settled. | ![Development](https://img.shields.io/badge/-development-blue) | +**Past Attributes:** +| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +|---|---|---|---|---|---| +| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [10] | `2048` | `Drop` | Obsoleted. | +| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [11] | `2738` | `Rename` | Use [`messaging.message.envelope.size`](/docs/registry/attributes/.md) instead. | +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | + +**[10] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. + +**[11] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. + diff --git a/docs/messaging/kafka.md b/docs/messaging/kafka.md index 40e9fb11ff..127cde417e 100644 --- a/docs/messaging/kafka.md +++ b/docs/messaging/kafka.md @@ -72,11 +72,8 @@ For Apache Kafka, the following additional attributes are defined: | [`messaging.kafka.message.key`](/docs/registry/attributes/messaging.md) | string | Message keys in Kafka are used for grouping alike messages to ensure they're processed on the same partition. They differ from `messaging.message.id` in that they're not unique. If the key is `null`, the attribute MUST NOT be set. [9] | `myKey` | `Recommended` If span describes operation on a single message. | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.kafka.offset`](/docs/registry/attributes/messaging.md) | int | The offset of a record in the corresponding Kafka partition. | `42` | `Recommended` If span describes operation on a single message. | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.message.id`](/docs/registry/attributes/messaging.md) | string | A value used by the messaging system as an identifier for the message, represented as a string. | `452a7c7c7c7048c2f887f61572b18fc2` | `Recommended` If span describes operation on a single message. | ![Development](https://img.shields.io/badge/-development-blue) | -| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [10] | `2048` | `Remove` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Obsoleted. | -| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [11] | `2738` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.message.envelope.size`. | -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.operation.type`. | -| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [12] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -| [`messaging.message.body.size`](/docs/registry/attributes/messaging.md) | int | The size of the message body in bytes. Only applicable for spans describing single message operations. [13] | `1439` | `Opt-In` | ![Development](https://img.shields.io/badge/-development-blue) | +| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [10] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`messaging.message.body.size`](/docs/registry/attributes/messaging.md) | int | The size of the message body in bytes. Only applicable for spans describing single message operations. [11] | `1439` | `Opt-In` | ![Development](https://img.shields.io/badge/-development-blue) | **[1] `error.type`:** The `error.type` SHOULD be predictable, and SHOULD have low cardinality. @@ -115,13 +112,9 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi **[9] `messaging.kafka.message.key`:** If the key type is not string, it's string representation has to be supplied for the attribute. If the key has no unambiguous, canonical string form, don't include its value. -**[10] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. +**[10] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. -**[11] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. - -**[12] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. - -**[13] `messaging.message.body.size`:** This can refer to both the compressed or uncompressed body size. If both sizes are known, the uncompressed +**[11] `messaging.message.body.size`:** This can refer to both the compressed or uncompressed body size. If both sizes are known, the uncompressed body size should be used. The following attributes can be important for making sampling decisions @@ -155,6 +148,17 @@ and SHOULD be provided **at span creation time** (if provided at all): | `send` | One or more messages are provided for sending to an intermediary. If a single message is sent, the context of the "Send" span can be used as the creation context and no "Create" span needs to be created. | ![Development](https://img.shields.io/badge/-development-blue) | | `settle` | One or more messages are settled. | ![Development](https://img.shields.io/badge/-development-blue) | +**Past Attributes:** +| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +|---|---|---|---|---|---| +| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [12] | `2048` | `Drop` | Obsoleted. | +| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [13] | `2738` | `Rename` | Use [`messaging.message.envelope.size`](/docs/registry/attributes/.md) instead. | +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | + +**[12] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. + +**[13] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. + diff --git a/docs/messaging/messaging-metrics.md b/docs/messaging/messaging-metrics.md index 86dc33ddb7..87cf816752 100644 --- a/docs/messaging/messaging-metrics.md +++ b/docs/messaging/messaging-metrics.md @@ -83,7 +83,6 @@ of `[ 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10 | [`messaging.operation.type`](/docs/registry/attributes/messaging.md) | string | A string identifying the type of the messaging operation. [8] | `create`; `send`; `receive` | `Conditionally Required` If applicable. | ![Development](https://img.shields.io/badge/-development-blue) | | [`server.address`](/docs/registry/attributes/server.md) | string | Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [9] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | `Conditionally Required` If available. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`messaging.destination.partition.id`](/docs/registry/attributes/messaging.md) | string | The identifier of the partition messages are sent to or received from, unique within the `messaging.destination.name`. | `1` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.operation.type`. | | [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [10] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | **[1] `messaging.system`:** The actual messaging system may differ from the one known by the client. For example, when using Kafka client libraries to communicate with Azure Event Hubs, the `messaging.system` is set to `kafka` based on the instrumentation's best knowledge. @@ -164,6 +163,11 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi | `rocketmq` | Apache RocketMQ | ![Development](https://img.shields.io/badge/-development-blue) | | `servicebus` | Azure Service Bus | ![Development](https://img.shields.io/badge/-development-blue) | +**Past Attributes:** +| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +|---|---|---|---|---|---| +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | + @@ -197,7 +201,6 @@ This metric is [required][MetricRequired]. | [`messaging.destination.template`](/docs/registry/attributes/messaging.md) | string | Low cardinality representation of the messaging destination name [5] | `/customers/{customerId}` | `Conditionally Required` if available. | ![Development](https://img.shields.io/badge/-development-blue) | | [`server.address`](/docs/registry/attributes/server.md) | string | Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [6] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | `Conditionally Required` If available. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`messaging.destination.partition.id`](/docs/registry/attributes/messaging.md) | string | The identifier of the partition messages are sent to or received from, unique within the `messaging.destination.name`. | `1` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.operation.type`. | | [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [7] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | **[1] `messaging.system`:** The actual messaging system may differ from the one known by the client. For example, when using Kafka client libraries to communicate with Azure Event Hubs, the `messaging.system` is set to `kafka` based on the instrumentation's best knowledge. @@ -260,6 +263,11 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi | `rocketmq` | Apache RocketMQ | ![Development](https://img.shields.io/badge/-development-blue) | | `servicebus` | Azure Service Bus | ![Development](https://img.shields.io/badge/-development-blue) | +**Past Attributes:** +| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +|---|---|---|---|---|---| +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/.md) instead. | + @@ -296,7 +304,6 @@ The metric SHOULD be reported once per message delivery. For example, if receivi | [`messaging.destination.template`](/docs/registry/attributes/messaging.md) | string | Low cardinality representation of the messaging destination name [7] | `/customers/{customerId}` | `Conditionally Required` if available. | ![Development](https://img.shields.io/badge/-development-blue) | | [`server.address`](/docs/registry/attributes/server.md) | string | Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [8] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | `Conditionally Required` If available. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`messaging.destination.partition.id`](/docs/registry/attributes/messaging.md) | string | The identifier of the partition messages are sent to or received from, unique within the `messaging.destination.name`. | `1` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.operation.type`. | | [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [9] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | **[1] `messaging.system`:** The actual messaging system may differ from the one known by the client. For example, when using Kafka client libraries to communicate with Azure Event Hubs, the `messaging.system` is set to `kafka` based on the instrumentation's best knowledge. @@ -363,6 +370,11 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi | `rocketmq` | Apache RocketMQ | ![Development](https://img.shields.io/badge/-development-blue) | | `servicebus` | Azure Service Bus | ![Development](https://img.shields.io/badge/-development-blue) | +**Past Attributes:** +| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +|---|---|---|---|---|---| +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/.md) instead. | + @@ -402,7 +414,6 @@ of `[ 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10 | [`messaging.destination.template`](/docs/registry/attributes/messaging.md) | string | Low cardinality representation of the messaging destination name [7] | `/customers/{customerId}` | `Conditionally Required` if available. | ![Development](https://img.shields.io/badge/-development-blue) | | [`server.address`](/docs/registry/attributes/server.md) | string | Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [8] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | `Conditionally Required` If available. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`messaging.destination.partition.id`](/docs/registry/attributes/messaging.md) | string | The identifier of the partition messages are sent to or received from, unique within the `messaging.destination.name`. | `1` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.operation.type`. | | [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [9] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | **[1] `messaging.system`:** The actual messaging system may differ from the one known by the client. For example, when using Kafka client libraries to communicate with Azure Event Hubs, the `messaging.system` is set to `kafka` based on the instrumentation's best knowledge. @@ -469,6 +480,11 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi | `rocketmq` | Apache RocketMQ | ![Development](https://img.shields.io/badge/-development-blue) | | `servicebus` | Azure Service Bus | ![Development](https://img.shields.io/badge/-development-blue) | +**Past Attributes:** +| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +|---|---|---|---|---|---| +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/.md) instead. | + diff --git a/docs/messaging/messaging-spans.md b/docs/messaging/messaging-spans.md index b342c348b8..4b53c38506 100644 --- a/docs/messaging/messaging-spans.md +++ b/docs/messaging/messaging-spans.md @@ -391,14 +391,11 @@ Messaging system-specific attributes MUST be defined in the corresponding `messa | [`messaging.destination.partition.id`](/docs/registry/attributes/messaging.md) | string | The identifier of the partition messages are sent to or received from, unique within the `messaging.destination.name`. | `1` | `Recommended` When applicable. | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.message.conversation_id`](/docs/registry/attributes/messaging.md) | string | The conversation ID identifying the conversation to which the message belongs, represented as a string. Sometimes called "Correlation ID". | `MyConversationId` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.message.id`](/docs/registry/attributes/messaging.md) | string | A value used by the messaging system as an identifier for the message, represented as a string. | `452a7c7c7c7048c2f887f61572b18fc2` | `Recommended` If span describes operation on a single message. | ![Development](https://img.shields.io/badge/-development-blue) | -| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [15] | `2048` | `Remove` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Obsoleted. | -| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [16] | `2738` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.message.envelope.size`. | -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.operation.type`. | -| [`network.peer.address`](/docs/registry/attributes/network.md) | string | Peer address of the messaging intermediary node where the operation was performed. [17] | `10.1.2.80`; `/tmp/my.sock` | `Recommended` If applicable for this messaging system. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`network.peer.address`](/docs/registry/attributes/network.md) | string | Peer address of the messaging intermediary node where the operation was performed. [15] | `10.1.2.80`; `/tmp/my.sock` | `Recommended` If applicable for this messaging system. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`network.peer.port`](/docs/registry/attributes/network.md) | int | Peer port of the messaging intermediary node where the operation was performed. | `65123` | `Recommended` if and only if `network.peer.address` is set. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [18] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -| [`messaging.message.body.size`](/docs/registry/attributes/messaging.md) | int | The size of the message body in bytes. [19] | `1439` | `Opt-In` | ![Development](https://img.shields.io/badge/-development-blue) | -| [`messaging.message.envelope.size`](/docs/registry/attributes/messaging.md) | int | The size of the message body and metadata in bytes. [20] | `2738` | `Opt-In` | ![Development](https://img.shields.io/badge/-development-blue) | +| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [16] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`messaging.message.body.size`](/docs/registry/attributes/messaging.md) | int | The size of the message body in bytes. [17] | `1439` | `Opt-In` | ![Development](https://img.shields.io/badge/-development-blue) | +| [`messaging.message.envelope.size`](/docs/registry/attributes/messaging.md) | int | The size of the message body and metadata in bytes. [18] | `2738` | `Opt-In` | ![Development](https://img.shields.io/badge/-development-blue) | **[1] `messaging.system`:** The actual messaging system may differ from the one known by the client. For example, when using Kafka client libraries to communicate with Azure Event Hubs, the `messaging.system` is set to `kafka` based on the instrumentation's best knowledge. @@ -447,20 +444,16 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi **[14] `server.address`:** Server domain name of the broker if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. -**[15] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. - -**[16] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. - -**[17] `network.peer.address`:** Semantic conventions for individual messaging systems SHOULD document whether `network.peer.*` attributes are applicable. +**[15] `network.peer.address`:** Semantic conventions for individual messaging systems SHOULD document whether `network.peer.*` attributes are applicable. Network peer address and port are important when the application interacts with individual intermediary nodes directly, If a messaging operation involved multiple network calls (for example retries), the address of the last contacted node SHOULD be used. -**[18] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. +**[16] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. -**[19] `messaging.message.body.size`:** This can refer to both the compressed or uncompressed body size. If both sizes are known, the uncompressed +**[17] `messaging.message.body.size`:** This can refer to both the compressed or uncompressed body size. If both sizes are known, the uncompressed body size should be used. -**[20] `messaging.message.envelope.size`:** This can refer to both the compressed or uncompressed size. If both sizes are known, the uncompressed +**[18] `messaging.message.envelope.size`:** This can refer to both the compressed or uncompressed size. If both sizes are known, the uncompressed size should be used. The following attributes can be important for making sampling decisions @@ -516,6 +509,17 @@ and SHOULD be provided **at span creation time** (if provided at all): | `rocketmq` | Apache RocketMQ | ![Development](https://img.shields.io/badge/-development-blue) | | `servicebus` | Azure Service Bus | ![Development](https://img.shields.io/badge/-development-blue) | +**Past Attributes:** +| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +|---|---|---|---|---|---| +| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [19] | `2048` | `Drop` | Obsoleted. | +| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [20] | `2738` | `Rename` | Use [`messaging.message.envelope.size`](/docs/registry/attributes/messaging.md) instead. | +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | + +**[19] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. + +**[20] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. + diff --git a/docs/messaging/rabbitmq.md b/docs/messaging/rabbitmq.md index 3cf4b38b2b..8174bebd11 100644 --- a/docs/messaging/rabbitmq.md +++ b/docs/messaging/rabbitmq.md @@ -58,13 +58,10 @@ The Semantic Conventions for [RabbitMQ](https://www.rabbitmq.com/) extend and ov | [`server.address`](/docs/registry/attributes/server.md) | string | Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [4] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | `Conditionally Required` If available. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`messaging.message.conversation_id`](/docs/registry/attributes/messaging.md) | string | Message [correlation Id](https://www.rabbitmq.com/tutorials/tutorial-six-java#correlation-id) property. | `MyConversationId` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.message.id`](/docs/registry/attributes/messaging.md) | string | A value used by the messaging system as an identifier for the message, represented as a string. | `452a7c7c7c7048c2f887f61572b18fc2` | `Recommended` If span describes operation on a single message. | ![Development](https://img.shields.io/badge/-development-blue) | -| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [5] | `2048` | `Remove` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Obsoleted. | -| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [6] | `2738` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.message.envelope.size`. | -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.operation.type`. | -| [`network.peer.address`](/docs/registry/attributes/network.md) | string | Peer address of the network connection - IP address or Unix domain socket name. [7] | `10.1.2.80`; `/tmp/my.sock` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`network.peer.address`](/docs/registry/attributes/network.md) | string | Peer address of the network connection - IP address or Unix domain socket name. [5] | `10.1.2.80`; `/tmp/my.sock` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`network.peer.port`](/docs/registry/attributes/network.md) | int | Peer port number of the network connection. | `65123` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [8] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -| [`messaging.message.body.size`](/docs/registry/attributes/messaging.md) | int | The size of the message body in bytes. [9] | `1439` | `Opt-In` | ![Development](https://img.shields.io/badge/-development-blue) | +| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [6] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`messaging.message.body.size`](/docs/registry/attributes/messaging.md) | int | The size of the message body in bytes. [7] | `1439` | `Opt-In` | ![Development](https://img.shields.io/badge/-development-blue) | **[1] `messaging.destination.name`:** In RabbitMQ, the destination is defined by an *exchange*, a *routing key* and for consumers, a *queue*. @@ -103,15 +100,11 @@ it's RECOMMENDED to: **[4] `server.address`:** Server domain name of the broker if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. -**[5] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. +**[5] `network.peer.address`:** If an operation involved multiple network calls (for example retries), the address of the last contacted node SHOULD be used. -**[6] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. +**[6] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. -**[7] `network.peer.address`:** If an operation involved multiple network calls (for example retries), the address of the last contacted node SHOULD be used. - -**[8] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. - -**[9] `messaging.message.body.size`:** This can refer to both the compressed or uncompressed body size. If both sizes are known, the uncompressed +**[7] `messaging.message.body.size`:** This can refer to both the compressed or uncompressed body size. If both sizes are known, the uncompressed body size should be used. The following attributes can be important for making sampling decisions @@ -143,6 +136,17 @@ and SHOULD be provided **at span creation time** (if provided at all): | `send` | One or more messages are provided for sending to an intermediary. If a single message is sent, the context of the "Send" span can be used as the creation context and no "Create" span needs to be created. | ![Development](https://img.shields.io/badge/-development-blue) | | `settle` | One or more messages are settled. | ![Development](https://img.shields.io/badge/-development-blue) | +**Past Attributes:** +| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +|---|---|---|---|---|---| +| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [8] | `2048` | `Drop` | Obsoleted. | +| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [9] | `2738` | `Rename` | Use [`messaging.message.envelope.size`](/docs/registry/attributes/.md) instead. | +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | + +**[8] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. + +**[9] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. + diff --git a/docs/messaging/rocketmq.md b/docs/messaging/rocketmq.md index 9338f8624e..14ccc03495 100644 --- a/docs/messaging/rocketmq.md +++ b/docs/messaging/rocketmq.md @@ -64,15 +64,12 @@ Specific attributes for Apache RocketMQ are defined below. | [`server.address`](/docs/registry/attributes/server.md) | string | Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [9] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | `Conditionally Required` If available. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | [`messaging.client.id`](/docs/registry/attributes/messaging.md) | string | A unique identifier for the client that consumes or produces a message. | `client-5`; `myhost@8742@s8083jm` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.message.id`](/docs/registry/attributes/messaging.md) | string | A value used by the messaging system as an identifier for the message, represented as a string. | `452a7c7c7c7048c2f887f61572b18fc2` | `Recommended` If span describes operation on a single message. | ![Development](https://img.shields.io/badge/-development-blue) | -| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [10] | `2048` | `Remove` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Obsoleted. | -| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [11] | `2738` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.message.envelope.size`. | -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.operation.type`. | | [`messaging.rocketmq.consumption_model`](/docs/registry/attributes/messaging.md) | string | Model of message consumption. This only applies to consumer spans. | `clustering`; `broadcasting` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.rocketmq.message.keys`](/docs/registry/attributes/messaging.md) | string[] | Key(s) of message, another way to mark message besides message id. | `["keyA", "keyB"]` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.rocketmq.message.tag`](/docs/registry/attributes/messaging.md) | string | The secondary classifier of message besides topic. | `tagA` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.rocketmq.message.type`](/docs/registry/attributes/messaging.md) | string | Type of message. | `normal`; `fifo`; `delay` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | -| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [12] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -| [`messaging.message.body.size`](/docs/registry/attributes/messaging.md) | int | The size of the message body in bytes. [13] | `1439` | `Opt-In` | ![Development](https://img.shields.io/badge/-development-blue) | +| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [10] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`messaging.message.body.size`](/docs/registry/attributes/messaging.md) | int | The size of the message body in bytes. [11] | `1439` | `Opt-In` | ![Development](https://img.shields.io/badge/-development-blue) | **[1] `error.type`:** The `error.type` SHOULD be predictable, and SHOULD have low cardinality. @@ -111,13 +108,9 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi **[9] `server.address`:** Server domain name of the broker if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. -**[10] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. +**[10] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. -**[11] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. - -**[12] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. - -**[13] `messaging.message.body.size`:** This can refer to both the compressed or uncompressed body size. If both sizes are known, the uncompressed +**[11] `messaging.message.body.size`:** This can refer to both the compressed or uncompressed body size. If both sizes are known, the uncompressed body size should be used. The following attributes can be important for making sampling decisions @@ -170,6 +163,17 @@ and SHOULD be provided **at span creation time** (if provided at all): | `normal` | Normal message | ![Development](https://img.shields.io/badge/-development-blue) | | `transaction` | Transaction message | ![Development](https://img.shields.io/badge/-development-blue) | +**Past Attributes:** +| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +|---|---|---|---|---|---| +| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [12] | `2048` | `Drop` | Obsoleted. | +| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [13] | `2738` | `Rename` | Use [`messaging.message.envelope.size`](/docs/registry/attributes/.md) instead. | +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | + +**[12] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. + +**[13] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. + diff --git a/docs/messaging/sns.md b/docs/messaging/sns.md index 459434af9b..8c1e111c12 100644 --- a/docs/messaging/sns.md +++ b/docs/messaging/sns.md @@ -28,10 +28,7 @@ described on this page. | [`aws.request_id`](/docs/registry/attributes/aws.md) | string | The AWS request ID as returned in the response headers `x-amzn-requestid`, `x-amzn-request-id` or `x-amz-request-id`. | `79b9da39-b7ae-508a-a6bc-864b2829c622`; `C9ER4AJX75574TDJ` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | | [`aws.sns.topic.arn`](/docs/registry/attributes/aws.md) | string | The ARN of the AWS SNS Topic. An Amazon SNS [topic](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html) is a logical access point that acts as a communication channel. | `arn:aws:sns:us-east-1:123456789012:mystack-mytopic-NZJ5JSMVGFIE` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.message.id`](/docs/registry/attributes/messaging.md) | string | A value used by the messaging system as an identifier for the message, represented as a string. | `452a7c7c7c7048c2f887f61572b18fc2` | `Recommended` If span describes operation on a single message. | ![Development](https://img.shields.io/badge/-development-blue) | -| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [6] | `2048` | `Remove` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Obsoleted. | -| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [7] | `2738` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.message.envelope.size`. | -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.operation.type`. | -| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [8] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [6] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | **[1] `error.type`:** The `error.type` SHOULD be predictable, and SHOULD have low cardinality. @@ -62,11 +59,7 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi **[5] `server.address`:** Server domain name of the broker if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. -**[6] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. - -**[7] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. - -**[8] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. +**[6] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. The following attributes can be important for making sampling decisions and SHOULD be provided **at span creation time** (if provided at all): @@ -97,6 +90,17 @@ and SHOULD be provided **at span creation time** (if provided at all): | `send` | One or more messages are provided for sending to an intermediary. If a single message is sent, the context of the "Send" span can be used as the creation context and no "Create" span needs to be created. | ![Development](https://img.shields.io/badge/-development-blue) | | `settle` | One or more messages are settled. | ![Development](https://img.shields.io/badge/-development-blue) | +**Past Attributes:** +| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +|---|---|---|---|---|---| +| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [7] | `2048` | `Drop` | Obsoleted. | +| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [8] | `2738` | `Rename` | Use [`messaging.message.envelope.size`](/docs/registry/attributes/.md) instead. | +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | + +**[7] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. + +**[8] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. + diff --git a/docs/messaging/sqs.md b/docs/messaging/sqs.md index 69289deb8d..96b9abdf69 100644 --- a/docs/messaging/sqs.md +++ b/docs/messaging/sqs.md @@ -28,10 +28,7 @@ described on this page. | [`aws.request_id`](/docs/registry/attributes/aws.md) | string | The AWS request ID as returned in the response headers `x-amzn-requestid`, `x-amzn-request-id` or `x-amz-request-id`. | `79b9da39-b7ae-508a-a6bc-864b2829c622`; `C9ER4AJX75574TDJ` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | | [`aws.sqs.queue.url`](/docs/registry/attributes/aws.md) | string | The URL of the AWS SQS Queue. It's a unique identifier for a queue in Amazon Simple Queue Service (SQS) and is used to access the queue and perform actions on it. | `https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) | | [`messaging.message.id`](/docs/registry/attributes/messaging.md) | string | A value used by the messaging system as an identifier for the message, represented as a string. | `452a7c7c7c7048c2f887f61572b18fc2` | `Recommended` If span describes operation on a single message. | ![Development](https://img.shields.io/badge/-development-blue) | -| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [6] | `2048` | `Remove` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Obsoleted. | -| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [7] | `2738` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.message.envelope.size`. | -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Replaced by `messaging.operation.type`. | -| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [8] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +| [`server.port`](/docs/registry/attributes/server.md) | int | Server port number. [6] | `80`; `8080`; `443` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | **[1] `error.type`:** The `error.type` SHOULD be predictable, and SHOULD have low cardinality. @@ -62,11 +59,7 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi **[5] `server.address`:** Server domain name of the broker if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. -**[6] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. - -**[7] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. - -**[8] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. +**[6] `server.port`:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available. The following attributes can be important for making sampling decisions and SHOULD be provided **at span creation time** (if provided at all): @@ -97,6 +90,17 @@ and SHOULD be provided **at span creation time** (if provided at all): | `send` | One or more messages are provided for sending to an intermediary. If a single message is sent, the context of the "Send" span can be used as the creation context and no "Create" span needs to be created. | ![Development](https://img.shields.io/badge/-development-blue) | | `settle` | One or more messages are settled. | ![Development](https://img.shields.io/badge/-development-blue) | +**Past Attributes:** +| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +|---|---|---|---|---|---| +| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [7] | `2048` | `Drop` | Obsoleted. | +| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [8] | `2738` | `Rename` | Use [`messaging.message.envelope.size`](/docs/registry/attributes/.md) instead. | +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | + +**[7] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. + +**[8] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. + diff --git a/model/messaging/deprecated/registry-deprecated.yaml b/model/messaging/deprecated/registry-deprecated.yaml index da3922b169..40c7b24d6e 100644 --- a/model/messaging/deprecated/registry-deprecated.yaml +++ b/model/messaging/deprecated/registry-deprecated.yaml @@ -44,6 +44,8 @@ groups: deprecated: reason: renamed renamed_to: messaging.operation.type + annotations: + stability_envvar: true - id: messaging.client_id type: string stability: development diff --git a/templates/registry/markdown/attribute_macros.j2 b/templates/registry/markdown/attribute_macros.j2 index cc05fcb679..b9884ffe08 100644 --- a/templates/registry/markdown/attribute_macros.j2 +++ b/templates/registry/markdown/attribute_macros.j2 @@ -20,6 +20,8 @@ {% macro name_with_link(attribute, attribute_registry_base_url, lineage_attributes) %}[`{{name(attribute)}}`]({{attribute_registry_base_url}}/{{ find_lineage(attribute.name, lineage_attributes) | split_id | list | reject("eq", "registry")| first | kebab_case }}.md){% endmacro %} +{% macro renamed_to_with_link(attribute, attribute_registry_base_url, lineage_attributes) %}[`{{attribute}}`]({{attribute_registry_base_url}}/{{ find_lineage(attribute, lineage_attributes) | split_id | list | reject("eq", "registry")| first | kebab_case }}.md){% endmacro %} + {% macro display_name(group) %} {%- if 'display_name' in group %}{{ group.display_name }} {%- else %}{{ group.id | split_id | list | reject("eq", "registry") | join(" ") | title_case | acronym }} Attributes diff --git a/templates/registry/markdown/attribute_table.j2 b/templates/registry/markdown/attribute_table.j2 index d15bdc3adc..ff7f7bab81 100644 --- a/templates/registry/markdown/attribute_table.j2 +++ b/templates/registry/markdown/attribute_table.j2 @@ -1,13 +1,22 @@ {% import 'requirement.j2' as requirement %} {% import 'stability.j2' as stability %} +{% import 'deprecation_action.j2' as action %} {% import 'notes.j2' as notes %} {% import 'attribute_macros.j2' as attrs %} {% import 'enum_macros.j2' as enums %} {% import 'sampling_macros.j2' as sampling %} {% import 'examples_macros.j2' as examples %} {#- Macro for creating attribute table -#} -{% macro generate(attributes, tag_filter, attribute_registry_base_url, lineage_attributes) %}{% if (tag_filter | length == 0) %}{% set filtered_attributes = attributes %}{% else %}{% set filtered_attributes = attributes | selectattr("tag", "in", tag_filter) %}{% endif %}{% if (filtered_attributes is defined) and (filtered_attributes | length > 0) %}| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability | +{% macro generate(attributes, tag_filter, attribute_registry_base_url, lineage_attributes) %}{% if (tag_filter | length == 0) %}{% set filtered_attributes = attributes | attribute_sort %}{% else %}{% set filtered_attributes = attributes | selectattr("tag", "in", tag_filter) | attribute_sort %}{% endif %}{% if (filtered_attributes is defined) and (filtered_attributes | length > 0) %}| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability | |---|---|---|---|---|---| -{% for attribute in filtered_attributes | attribute_sort %}| {{ attrs.name_with_link(attribute, attribute_registry_base_url, lineage_attributes) }} | {{ attrs.type(attribute) }} | {{ attribute.brief | trim }}{{ notes.add({"note": attribute.note, "name": attrs.name(attribute)}) }} | {{ examples.format(attribute) | trim }} | {{ requirement.render({"level": attribute.requirement_level, "name": attrs.name(attribute), "deprecated": attribute.deprecated}, notes) | trim }} | {{ stability.badge(attribute.stability, attribute.deprecated, attribute.brief) | trim }} | +{% for attribute in filtered_attributes if attribute.deprecated is not defined or attribute.deprecated is none %}| {{ attrs.name_with_link(attribute, attribute_registry_base_url, lineage_attributes) }} | {{ attrs.type(attribute) }} | {{ attribute.brief | trim }}{{ notes.add({"note": attribute.note, "name": attrs.name(attribute)}) }} | {{ examples.format(attribute) | trim }} | {{ requirement.render({"level": attribute.requirement_level, "name": attrs.name(attribute), "deprecated": attribute.deprecated}, notes) | trim }} | {{ stability.badge(attribute.stability, attribute.deprecated, attribute.brief) | trim }} | +{% endfor %}{{ notes.render() }}{{ sampling.snippet(filtered_attributes, attribute_registry_base_url, lineage_attributes) }}{{ enums.tables(filtered_attributes | selectattr("type", "mapping"), notes) }} +{% endif %}{{ generate_deprecated(attributes, tag_filter, attribute_registry_base_url, lineage_attributes)}}{% endmacro %} + +{#- Macro for creating attribute table -#} +{% macro generate_deprecated(attributes, tag_filter, attribute_registry_base_url, lineage_attributes) %}{% if (tag_filter | length == 0) %}{% set filtered_attributes = attributes | selectattr("deprecated") | attribute_sort %}{% else %}{% set filtered_attributes = attributes | selectattr("tag", "in", tag_filter) | attribute_sort %}{% endif %}{% if filtered_attributes | length > 0 %}**Past Attributes:** +| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +|---|---|---|---|---|---| +{% for attribute in filtered_attributes %}| {{ attrs.name_with_link(attribute, attribute_registry_base_url, lineage_attributes) }} | {{ attrs.type(attribute) }} | {{ attribute.brief | trim }}{{ notes.add({"note": attribute.note, "name": attrs.name(attribute)}) }} | {{ examples.format(attribute) | trim }} | {{ action.render({"level": attribute.requirement_level, "name": attrs.name(attribute), "deprecated": attribute.deprecated, "annotations": attribute.annotations}, notes) | trim }} | {% if attribute.deprecated.reason == "renamed" %} Use {{ attrs.renamed_to_with_link(attribute.deprecated.renamed_to, attribute_registry_base_url, lineage_attributes) }} instead. {% else %} {{attribute.deprecated.note}} {% endif %} | {% endfor %}{{ notes.render() }}{{ sampling.snippet(filtered_attributes, attribute_registry_base_url, lineage_attributes) }}{{ enums.tables(filtered_attributes | selectattr("type", "mapping"), notes) }} {% endif %}{% endmacro %} diff --git a/templates/registry/markdown/deprecation_action.j2 b/templates/registry/markdown/deprecation_action.j2 new file mode 100644 index 0000000000..25df50e735 --- /dev/null +++ b/templates/registry/markdown/deprecation_action.j2 @@ -0,0 +1,9 @@ +{% macro render(attr, notes) -%} +{%- if attr.annotations is defined and attr.annotations.stability_envvar == true and attr.deprecated.reason == "renamed" %}`Migrate` +{% elif attr.annotations is not defined and attr.deprecated.reason == "renamed" %}`Rename` +{% elif attr.annotations is defined and attr.annotations.stability_envvar == true and attr.deprecated.reason == "obsoleted" %}`Remove` +{% elif attr.deprecated.reason == "obsoleted" %}`Drop` +{% elif attr.deprecated.reason == "uncategorized" %}`Update` +{% else %}Unknown +{%- endif %} +{% endmacro %} diff --git a/templates/registry/markdown/requirement.j2 b/templates/registry/markdown/requirement.j2 index 92a18cfad3..1f5714de33 100644 --- a/templates/registry/markdown/requirement.j2 +++ b/templates/registry/markdown/requirement.j2 @@ -1,8 +1,5 @@ {% macro render(attr, notes) -%} -{%- if attr.deprecated and attr.deprecated.reason == "renamed" %}`Migrate` -{% elif attr.deprecated and attr.deprecated.reason == "obsoleted" %}`Remove` -{% elif attr.deprecated and attr.deprecated.reason == "uncategorized" %}`Migrate` -{% elif attr.level == "recommended" %}`Recommended` +{%- if attr.level == "recommended" %}`Recommended` {% elif attr.level == "required" %}`Required` {% elif attr.level == "opt_in" %}`Opt-In` {% elif attr.level.conditionally_required %}`Conditionally Required`{{ notes.add_with_limit({"note": attr.level.conditionally_required, "name": attr.name}) }} From 90d278943b61a53181adcad5dd8cc003bf10278f Mon Sep 17 00:00:00 2001 From: James Thompson Date: Sat, 23 Aug 2025 17:29:24 +1000 Subject: [PATCH 10/14] Doc fix --- docs/database/database-metrics.md | 4 ++-- docs/database/database-spans.md | 2 +- docs/exceptions/exceptions-spans.md | 2 +- docs/general/attribute-deprecation-action.md | 5 ++--- docs/http/http-metrics.md | 2 +- docs/http/http-spans.md | 4 ++-- docs/messaging/azure-messaging.md | 8 ++++---- docs/messaging/gcp-pubsub.md | 4 ++-- docs/messaging/kafka.md | 4 ++-- docs/messaging/messaging-metrics.md | 14 +++++++------- docs/messaging/messaging-spans.md | 4 ++-- docs/messaging/rabbitmq.md | 4 ++-- docs/messaging/rocketmq.md | 4 ++-- docs/messaging/sns.md | 4 ++-- docs/messaging/sqs.md | 4 ++-- model/messaging/metrics.yaml | 12 ++++++++++++ model/messaging/spans.yaml | 2 ++ templates/registry/markdown/attribute_table.j2 | 4 ++-- 18 files changed, 50 insertions(+), 37 deletions(-) diff --git a/docs/database/database-metrics.md b/docs/database/database-metrics.md index a6a6a804d4..b34ac02b62 100644 --- a/docs/database/database-metrics.md +++ b/docs/database/database-metrics.md @@ -285,7 +285,7 @@ Parameterized query text SHOULD NOT be sanitized. Even though parameterized quer | `_OTHER` | A fallback error value to be used when the instrumentation doesn't define a custom value. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | **Past Attributes:** -| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`db.system`](/docs/registry/attributes/db.md) | string | Deprecated, use `db.system.name` instead. | `other_sql`; `adabas`; `intersystems_cache` | `Rename` | Use [`db.system.name`](/docs/registry/attributes/db.md) instead. | @@ -581,7 +581,7 @@ Parameterized query text SHOULD NOT be sanitized. Even though parameterized quer | `_OTHER` | A fallback error value to be used when the instrumentation doesn't define a custom value. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | **Past Attributes:** -| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`db.system`](/docs/registry/attributes/db.md) | string | Deprecated, use `db.system.name` instead. | `other_sql`; `adabas`; `intersystems_cache` | `Rename` | Use [`db.system.name`](/docs/registry/attributes/db.md) instead. | diff --git a/docs/database/database-spans.md b/docs/database/database-spans.md index 8d0c28ef83..64fcb3e3f4 100644 --- a/docs/database/database-spans.md +++ b/docs/database/database-spans.md @@ -356,7 +356,7 @@ and SHOULD be provided **at span creation time** (if provided at all): | `_OTHER` | A fallback error value to be used when the instrumentation doesn't define a custom value. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | **Past Attributes:** -| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`db.connection_string`](/docs/registry/attributes/db.md) | string | Deprecated, use `server.address`, `server.port` attributes instead. | `Server=(localdb)\v11.0;Integrated Security=true;` | `Update` | Replaced by `server.address` and `server.port`. | diff --git a/docs/exceptions/exceptions-spans.md b/docs/exceptions/exceptions-spans.md index fb9d047a32..07bb5fe610 100644 --- a/docs/exceptions/exceptions-spans.md +++ b/docs/exceptions/exceptions-spans.md @@ -42,7 +42,7 @@ This event describes a single exception. **[2] `exception.type`:** Required if `exception.message` is not set, recommended otherwise. **Past Attributes:** -| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`exception.escaped`](/docs/registry/attributes/exception.md) | boolean | Indicates that the exception is escaping the scope of the span. | | `Drop` | It's no longer recommended to record exceptions that are handled and do not escape the scope of a span. | diff --git a/docs/general/attribute-deprecation-action.md b/docs/general/attribute-deprecation-action.md index c6d3eb33ff..789c9cddc1 100644 --- a/docs/general/attribute-deprecation-action.md +++ b/docs/general/attribute-deprecation-action.md @@ -62,9 +62,9 @@ Should follow the definition of the [Drop Action](#drop) for how to proceed. ## Rename -The implementation is able to rename the attribute currently being emitted without needing to support the existing attribute anymore. +The implementation is able to rename the attribute currently being emitted without needing to support the existing attribute anymore. -This equivilant to adding a new attribute and performing the [Drop Action](#drop) on the old attribute. +This equivalent to adding a new attribute and performing the [Drop Action](#drop) on the old attribute. ## Remove @@ -109,6 +109,5 @@ There is no ability for a user to configure that attribute to be emitted. Under no circumstances should this attribute be added to an existing instrumentation. - [DocumentStatus]: https://opentelemetry.io/docs/specs/otel/document-status diff --git a/docs/http/http-metrics.md b/docs/http/http-metrics.md index 4f6ec12842..d76678b1f0 100644 --- a/docs/http/http-metrics.md +++ b/docs/http/http-metrics.md @@ -262,7 +262,7 @@ Tracing instrumentations that do so, MUST also set `http.request.method_original | `TRACE` | TRACE method. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | **Past Attributes:** -| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`http.method`](/docs/registry/attributes/http.md) | string | Deprecated, use `http.request.method` instead. | `GET`; `POST`; `HEAD` | `Rename` | Use [`http.request.method`](/docs/registry/attributes/http.md) instead. | | [`http.scheme`](/docs/registry/attributes/http.md) | string | Deprecated, use `url.scheme` instead. | `http`; `https` | `Rename` | Use [`url.scheme`](/docs/registry/attributes/url.md) instead. | diff --git a/docs/http/http-spans.md b/docs/http/http-spans.md index 3e51134c6c..65be124bf8 100644 --- a/docs/http/http-spans.md +++ b/docs/http/http-spans.md @@ -346,7 +346,7 @@ and SHOULD be provided **at span creation time** (if provided at all): | `test` | Synthetic test source. | ![Development](https://img.shields.io/badge/-development-blue) | **Past Attributes:** -| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`http.method`](/docs/registry/attributes/http.md) | string | Deprecated, use `http.request.method` instead. | `GET`; `POST`; `HEAD` | `Rename` | Use [`http.request.method`](/docs/registry/attributes/http.md) instead. | @@ -655,7 +655,7 @@ and SHOULD be provided **at span creation time** (if provided at all): | `test` | Synthetic test source. | ![Development](https://img.shields.io/badge/-development-blue) | **Past Attributes:** -| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`http.method`](/docs/registry/attributes/http.md) | string | Deprecated, use `http.request.method` instead. | `GET`; `POST`; `HEAD` | `Rename` | Use [`http.request.method`](/docs/registry/attributes/http.md) instead. | diff --git a/docs/messaging/azure-messaging.md b/docs/messaging/azure-messaging.md index 187e78f6b4..f36a9ee593 100644 --- a/docs/messaging/azure-messaging.md +++ b/docs/messaging/azure-messaging.md @@ -156,10 +156,10 @@ and SHOULD be provided **at span creation time** (if provided at all): | `defer` | Message is deferred | ![Development](https://img.shields.io/badge/-development-blue) | **Past Attributes:** -| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [11] | `2048` | `Drop` | Obsoleted. | -| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [12] | `2738` | `Rename` | Use [`messaging.message.envelope.size`](/docs/registry/attributes/.md) instead. | +| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [12] | `2738` | `Drop` | Obsoleted. | | [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | **[11] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. @@ -278,10 +278,10 @@ and SHOULD be provided **at span creation time** (if provided at all): | `settle` | One or more messages are settled. | ![Development](https://img.shields.io/badge/-development-blue) | **Past Attributes:** -| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [10] | `2048` | `Drop` | Obsoleted. | -| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [11] | `2738` | `Rename` | Use [`messaging.message.envelope.size`](/docs/registry/attributes/.md) instead. | +| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [11] | `2738` | `Drop` | Obsoleted. | | [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | **[10] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. diff --git a/docs/messaging/gcp-pubsub.md b/docs/messaging/gcp-pubsub.md index eeee6ed7b2..904e9b0461 100644 --- a/docs/messaging/gcp-pubsub.md +++ b/docs/messaging/gcp-pubsub.md @@ -140,10 +140,10 @@ and SHOULD be provided **at span creation time** (if provided at all): | `settle` | One or more messages are settled. | ![Development](https://img.shields.io/badge/-development-blue) | **Past Attributes:** -| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [10] | `2048` | `Drop` | Obsoleted. | -| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [11] | `2738` | `Rename` | Use [`messaging.message.envelope.size`](/docs/registry/attributes/.md) instead. | +| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [11] | `2738` | `Drop` | Obsoleted. | | [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | **[10] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. diff --git a/docs/messaging/kafka.md b/docs/messaging/kafka.md index 127cde417e..c021fc318d 100644 --- a/docs/messaging/kafka.md +++ b/docs/messaging/kafka.md @@ -149,10 +149,10 @@ and SHOULD be provided **at span creation time** (if provided at all): | `settle` | One or more messages are settled. | ![Development](https://img.shields.io/badge/-development-blue) | **Past Attributes:** -| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [12] | `2048` | `Drop` | Obsoleted. | -| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [13] | `2738` | `Rename` | Use [`messaging.message.envelope.size`](/docs/registry/attributes/.md) instead. | +| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [13] | `2738` | `Drop` | Obsoleted. | | [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | **[12] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. diff --git a/docs/messaging/messaging-metrics.md b/docs/messaging/messaging-metrics.md index 87cf816752..783cc47ab9 100644 --- a/docs/messaging/messaging-metrics.md +++ b/docs/messaging/messaging-metrics.md @@ -164,7 +164,7 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi | `servicebus` | Azure Service Bus | ![Development](https://img.shields.io/badge/-development-blue) | **Past Attributes:** -| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | @@ -264,9 +264,9 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi | `servicebus` | Azure Service Bus | ![Development](https://img.shields.io/badge/-development-blue) | **Past Attributes:** -| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/.md) instead. | +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.name`](/docs/registry/attributes/messaging.md) instead. | @@ -371,9 +371,9 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi | `servicebus` | Azure Service Bus | ![Development](https://img.shields.io/badge/-development-blue) | **Past Attributes:** -| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/.md) instead. | +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.name`](/docs/registry/attributes/messaging.md) instead. | @@ -481,9 +481,9 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi | `servicebus` | Azure Service Bus | ![Development](https://img.shields.io/badge/-development-blue) | **Past Attributes:** -| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/.md) instead. | +| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.name`](/docs/registry/attributes/messaging.md) instead. | diff --git a/docs/messaging/messaging-spans.md b/docs/messaging/messaging-spans.md index 4b53c38506..35e0521da4 100644 --- a/docs/messaging/messaging-spans.md +++ b/docs/messaging/messaging-spans.md @@ -510,10 +510,10 @@ and SHOULD be provided **at span creation time** (if provided at all): | `servicebus` | Azure Service Bus | ![Development](https://img.shields.io/badge/-development-blue) | **Past Attributes:** -| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [19] | `2048` | `Drop` | Obsoleted. | -| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [20] | `2738` | `Rename` | Use [`messaging.message.envelope.size`](/docs/registry/attributes/messaging.md) instead. | +| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [20] | `2738` | `Drop` | Obsoleted. | | [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | **[19] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. diff --git a/docs/messaging/rabbitmq.md b/docs/messaging/rabbitmq.md index 8174bebd11..52824383f9 100644 --- a/docs/messaging/rabbitmq.md +++ b/docs/messaging/rabbitmq.md @@ -137,10 +137,10 @@ and SHOULD be provided **at span creation time** (if provided at all): | `settle` | One or more messages are settled. | ![Development](https://img.shields.io/badge/-development-blue) | **Past Attributes:** -| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [8] | `2048` | `Drop` | Obsoleted. | -| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [9] | `2738` | `Rename` | Use [`messaging.message.envelope.size`](/docs/registry/attributes/.md) instead. | +| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [9] | `2738` | `Drop` | Obsoleted. | | [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | **[8] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. diff --git a/docs/messaging/rocketmq.md b/docs/messaging/rocketmq.md index 14ccc03495..851de1bb12 100644 --- a/docs/messaging/rocketmq.md +++ b/docs/messaging/rocketmq.md @@ -164,10 +164,10 @@ and SHOULD be provided **at span creation time** (if provided at all): | `transaction` | Transaction message | ![Development](https://img.shields.io/badge/-development-blue) | **Past Attributes:** -| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [12] | `2048` | `Drop` | Obsoleted. | -| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [13] | `2738` | `Rename` | Use [`messaging.message.envelope.size`](/docs/registry/attributes/.md) instead. | +| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [13] | `2738` | `Drop` | Obsoleted. | | [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | **[12] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. diff --git a/docs/messaging/sns.md b/docs/messaging/sns.md index 8c1e111c12..3643bbc360 100644 --- a/docs/messaging/sns.md +++ b/docs/messaging/sns.md @@ -91,10 +91,10 @@ and SHOULD be provided **at span creation time** (if provided at all): | `settle` | One or more messages are settled. | ![Development](https://img.shields.io/badge/-development-blue) | **Past Attributes:** -| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [7] | `2048` | `Drop` | Obsoleted. | -| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [8] | `2738` | `Rename` | Use [`messaging.message.envelope.size`](/docs/registry/attributes/.md) instead. | +| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [8] | `2738` | `Drop` | Obsoleted. | | [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | **[7] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. diff --git a/docs/messaging/sqs.md b/docs/messaging/sqs.md index 96b9abdf69..27dad46ec0 100644 --- a/docs/messaging/sqs.md +++ b/docs/messaging/sqs.md @@ -91,10 +91,10 @@ and SHOULD be provided **at span creation time** (if provided at all): | `settle` | One or more messages are settled. | ![Development](https://img.shields.io/badge/-development-blue) | **Past Attributes:** -| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [7] | `2048` | `Drop` | Obsoleted. | -| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [8] | `2738` | `Rename` | Use [`messaging.message.envelope.size`](/docs/registry/attributes/.md) instead. | +| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [8] | `2738` | `Drop` | Obsoleted. | | [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | **[7] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. diff --git a/model/messaging/metrics.yaml b/model/messaging/metrics.yaml index 12fc71e411..18e201e8e9 100644 --- a/model/messaging/metrics.yaml +++ b/model/messaging/metrics.yaml @@ -65,6 +65,10 @@ groups: attributes: - ref: messaging.operation.name examples: ["process", "consume", "handle"] + - ref: messaging.operation + deprecated: + reason: renamed + renamed_to: messaging.operation.name # counters - id: metric.messaging.client.sent.messages @@ -83,6 +87,10 @@ groups: attributes: - ref: messaging.operation.name examples: ["send", "schedule", "enqueue"] + - ref: messaging.operation + deprecated: + reason: renamed + renamed_to: messaging.operation.name - id: metric.messaging.client.consumed.messages type: metric @@ -104,3 +112,7 @@ groups: attributes: - ref: messaging.operation.name examples: ["receive", "peek", "poll", "consume"] + - ref: messaging.operation + deprecated: + reason: renamed + renamed_to: messaging.operation.name diff --git a/model/messaging/spans.yaml b/model/messaging/spans.yaml index e5c89ca04b..8ec42ee591 100644 --- a/model/messaging/spans.yaml +++ b/model/messaging/spans.yaml @@ -29,6 +29,8 @@ groups: # sampling_relevant: true - ref: messaging.message.payload_compressed_size_bytes - ref: messaging.message.payload_size_bytes + deprecated: + reason: obsoleted - id: messaging.attributes type: attribute_group # TODO: this should be a span - https://github.com/open-telemetry/semantic-conventions/issues/1891 diff --git a/templates/registry/markdown/attribute_table.j2 b/templates/registry/markdown/attribute_table.j2 index ff7f7bab81..85cfa27257 100644 --- a/templates/registry/markdown/attribute_table.j2 +++ b/templates/registry/markdown/attribute_table.j2 @@ -14,8 +14,8 @@ {% endif %}{{ generate_deprecated(attributes, tag_filter, attribute_registry_base_url, lineage_attributes)}}{% endmacro %} {#- Macro for creating attribute table -#} -{% macro generate_deprecated(attributes, tag_filter, attribute_registry_base_url, lineage_attributes) %}{% if (tag_filter | length == 0) %}{% set filtered_attributes = attributes | selectattr("deprecated") | attribute_sort %}{% else %}{% set filtered_attributes = attributes | selectattr("tag", "in", tag_filter) | attribute_sort %}{% endif %}{% if filtered_attributes | length > 0 %}**Past Attributes:** -| Attribute | Type | Description | Examples | [Deprecation Action](https://opentelemetry.io/docs/specs/semconv/general/attribute-deprecation-action/) | Deprecation Explanation | +{% macro generate_deprecated(attributes, tag_filter, attribute_registry_base_url, lineage_attributes) %}{% if (tag_filter | length == 0) %}{% set filtered_attributes = attributes | selectattr("deprecated") | attribute_sort %}{% else %}{% set filtered_attributes = attributes | selectattr("tag", "in", tag_filter) | attribute_sort %}{% endif %}{% if (filtered_attributes is defined) and (filtered_attributes | length > 0) %}**Past Attributes:** +| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| {% for attribute in filtered_attributes %}| {{ attrs.name_with_link(attribute, attribute_registry_base_url, lineage_attributes) }} | {{ attrs.type(attribute) }} | {{ attribute.brief | trim }}{{ notes.add({"note": attribute.note, "name": attrs.name(attribute)}) }} | {{ examples.format(attribute) | trim }} | {{ action.render({"level": attribute.requirement_level, "name": attrs.name(attribute), "deprecated": attribute.deprecated, "annotations": attribute.annotations}, notes) | trim }} | {% if attribute.deprecated.reason == "renamed" %} Use {{ attrs.renamed_to_with_link(attribute.deprecated.renamed_to, attribute_registry_base_url, lineage_attributes) }} instead. {% else %} {{attribute.deprecated.note}} {% endif %} | {% endfor %}{{ notes.render() }}{{ sampling.snippet(filtered_attributes, attribute_registry_base_url, lineage_attributes) }}{{ enums.tables(filtered_attributes | selectattr("type", "mapping"), notes) }} From 2abc7e5bf52d511cf2ceb9eb7840d8870d2c7983 Mon Sep 17 00:00:00 2001 From: James Thompson Date: Sun, 24 Aug 2025 12:16:10 +1000 Subject: [PATCH 11/14] Use summary details for past attributes --- docs/database/database-metrics.md | 128 ++---------------- docs/database/database-spans.md | 70 ++-------- docs/exceptions/exceptions-spans.md | 11 +- docs/http/http-metrics.md | 8 +- docs/http/http-spans.md | 16 ++- docs/messaging/azure-messaging.md | 16 ++- docs/messaging/gcp-pubsub.md | 8 +- docs/messaging/kafka.md | 8 +- docs/messaging/messaging-metrics.md | 32 +++-- docs/messaging/messaging-spans.md | 8 +- docs/messaging/rabbitmq.md | 8 +- docs/messaging/rocketmq.md | 8 +- docs/messaging/sns.md | 8 +- docs/messaging/sqs.md | 8 +- .../registry/markdown/attribute_table.j2 | 14 +- 15 files changed, 132 insertions(+), 219 deletions(-) diff --git a/docs/database/database-metrics.md b/docs/database/database-metrics.md index b34ac02b62..be86029442 100644 --- a/docs/database/database-metrics.md +++ b/docs/database/database-metrics.md @@ -174,62 +174,6 @@ Parameterized query text SHOULD NOT be sanitized. Even though parameterized quer --- -`db.system` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used. - -| Value | Description | Stability | -|---|---|---| -| `adabas` | Adabas (Adaptable Database System) | ![Development](https://img.shields.io/badge/-development-blue) | -| `cassandra` | Apache Cassandra | ![Development](https://img.shields.io/badge/-development-blue) | -| `clickhouse` | ClickHouse | ![Development](https://img.shields.io/badge/-development-blue) | -| `cockroachdb` | CockroachDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `cosmosdb` | Microsoft Azure Cosmos DB | ![Development](https://img.shields.io/badge/-development-blue) | -| `couchbase` | Couchbase | ![Development](https://img.shields.io/badge/-development-blue) | -| `couchdb` | CouchDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `db2` | IBM Db2 | ![Development](https://img.shields.io/badge/-development-blue) | -| `derby` | Apache Derby | ![Development](https://img.shields.io/badge/-development-blue) | -| `dynamodb` | Amazon DynamoDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `edb` | EnterpriseDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `elasticsearch` | Elasticsearch | ![Development](https://img.shields.io/badge/-development-blue) | -| `filemaker` | FileMaker | ![Development](https://img.shields.io/badge/-development-blue) | -| `firebird` | Firebird | ![Development](https://img.shields.io/badge/-development-blue) | -| `geode` | Apache Geode | ![Development](https://img.shields.io/badge/-development-blue) | -| `h2` | H2 | ![Development](https://img.shields.io/badge/-development-blue) | -| `hanadb` | SAP HANA | ![Development](https://img.shields.io/badge/-development-blue) | -| `hbase` | Apache HBase | ![Development](https://img.shields.io/badge/-development-blue) | -| `hive` | Apache Hive | ![Development](https://img.shields.io/badge/-development-blue) | -| `hsqldb` | HyperSQL DataBase | ![Development](https://img.shields.io/badge/-development-blue) | -| `influxdb` | InfluxDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `informix` | Informix | ![Development](https://img.shields.io/badge/-development-blue) | -| `ingres` | Ingres | ![Development](https://img.shields.io/badge/-development-blue) | -| `instantdb` | InstantDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `interbase` | InterBase | ![Development](https://img.shields.io/badge/-development-blue) | -| `intersystems_cache` | InterSystems Caché | ![Development](https://img.shields.io/badge/-development-blue) | -| `mariadb` | MariaDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `maxdb` | SAP MaxDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `memcached` | Memcached | ![Development](https://img.shields.io/badge/-development-blue) | -| `mongodb` | MongoDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `mssql` | Microsoft SQL Server | ![Development](https://img.shields.io/badge/-development-blue) | -| `mysql` | MySQL | ![Development](https://img.shields.io/badge/-development-blue) | -| `neo4j` | Neo4j | ![Development](https://img.shields.io/badge/-development-blue) | -| `netezza` | Netezza | ![Development](https://img.shields.io/badge/-development-blue) | -| `opensearch` | OpenSearch | ![Development](https://img.shields.io/badge/-development-blue) | -| `oracle` | Oracle Database | ![Development](https://img.shields.io/badge/-development-blue) | -| `other_sql` | Some other SQL database. Fallback only. See notes. | ![Development](https://img.shields.io/badge/-development-blue) | -| `pervasive` | Pervasive PSQL | ![Development](https://img.shields.io/badge/-development-blue) | -| `pointbase` | PointBase | ![Development](https://img.shields.io/badge/-development-blue) | -| `postgresql` | PostgreSQL | ![Development](https://img.shields.io/badge/-development-blue) | -| `progress` | Progress Database | ![Development](https://img.shields.io/badge/-development-blue) | -| `redis` | Redis | ![Development](https://img.shields.io/badge/-development-blue) | -| `redshift` | Amazon Redshift | ![Development](https://img.shields.io/badge/-development-blue) | -| `spanner` | Cloud Spanner | ![Development](https://img.shields.io/badge/-development-blue) | -| `sqlite` | SQLite | ![Development](https://img.shields.io/badge/-development-blue) | -| `sybase` | Sybase | ![Development](https://img.shields.io/badge/-development-blue) | -| `teradata` | Teradata | ![Development](https://img.shields.io/badge/-development-blue) | -| `trino` | Trino | ![Development](https://img.shields.io/badge/-development-blue) | -| `vertica` | Vertica | ![Development](https://img.shields.io/badge/-development-blue) | - ---- - `db.system.name` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used. | Value | Description | Stability | @@ -284,8 +228,10 @@ Parameterized query text SHOULD NOT be sanitized. Even though parameterized quer |---|---|---| | `_OTHER` | A fallback error value to be used when the instrumentation doesn't define a custom value. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -**Past Attributes:** -| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | +
+Past Attributes: + +| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`db.system`](/docs/registry/attributes/db.md) | string | Deprecated, use `db.system.name` instead. | `other_sql`; `adabas`; `intersystems_cache` | `Rename` | Use [`db.system.name`](/docs/registry/attributes/db.md) instead. | @@ -345,6 +291,8 @@ Parameterized query text SHOULD NOT be sanitized. Even though parameterized quer | `trino` | Trino | ![Development](https://img.shields.io/badge/-development-blue) | | `vertica` | Vertica | ![Development](https://img.shields.io/badge/-development-blue) | +
+ @@ -470,62 +418,6 @@ Parameterized query text SHOULD NOT be sanitized. Even though parameterized quer --- -`db.system` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used. - -| Value | Description | Stability | -|---|---|---| -| `adabas` | Adabas (Adaptable Database System) | ![Development](https://img.shields.io/badge/-development-blue) | -| `cassandra` | Apache Cassandra | ![Development](https://img.shields.io/badge/-development-blue) | -| `clickhouse` | ClickHouse | ![Development](https://img.shields.io/badge/-development-blue) | -| `cockroachdb` | CockroachDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `cosmosdb` | Microsoft Azure Cosmos DB | ![Development](https://img.shields.io/badge/-development-blue) | -| `couchbase` | Couchbase | ![Development](https://img.shields.io/badge/-development-blue) | -| `couchdb` | CouchDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `db2` | IBM Db2 | ![Development](https://img.shields.io/badge/-development-blue) | -| `derby` | Apache Derby | ![Development](https://img.shields.io/badge/-development-blue) | -| `dynamodb` | Amazon DynamoDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `edb` | EnterpriseDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `elasticsearch` | Elasticsearch | ![Development](https://img.shields.io/badge/-development-blue) | -| `filemaker` | FileMaker | ![Development](https://img.shields.io/badge/-development-blue) | -| `firebird` | Firebird | ![Development](https://img.shields.io/badge/-development-blue) | -| `geode` | Apache Geode | ![Development](https://img.shields.io/badge/-development-blue) | -| `h2` | H2 | ![Development](https://img.shields.io/badge/-development-blue) | -| `hanadb` | SAP HANA | ![Development](https://img.shields.io/badge/-development-blue) | -| `hbase` | Apache HBase | ![Development](https://img.shields.io/badge/-development-blue) | -| `hive` | Apache Hive | ![Development](https://img.shields.io/badge/-development-blue) | -| `hsqldb` | HyperSQL DataBase | ![Development](https://img.shields.io/badge/-development-blue) | -| `influxdb` | InfluxDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `informix` | Informix | ![Development](https://img.shields.io/badge/-development-blue) | -| `ingres` | Ingres | ![Development](https://img.shields.io/badge/-development-blue) | -| `instantdb` | InstantDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `interbase` | InterBase | ![Development](https://img.shields.io/badge/-development-blue) | -| `intersystems_cache` | InterSystems Caché | ![Development](https://img.shields.io/badge/-development-blue) | -| `mariadb` | MariaDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `maxdb` | SAP MaxDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `memcached` | Memcached | ![Development](https://img.shields.io/badge/-development-blue) | -| `mongodb` | MongoDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `mssql` | Microsoft SQL Server | ![Development](https://img.shields.io/badge/-development-blue) | -| `mysql` | MySQL | ![Development](https://img.shields.io/badge/-development-blue) | -| `neo4j` | Neo4j | ![Development](https://img.shields.io/badge/-development-blue) | -| `netezza` | Netezza | ![Development](https://img.shields.io/badge/-development-blue) | -| `opensearch` | OpenSearch | ![Development](https://img.shields.io/badge/-development-blue) | -| `oracle` | Oracle Database | ![Development](https://img.shields.io/badge/-development-blue) | -| `other_sql` | Some other SQL database. Fallback only. See notes. | ![Development](https://img.shields.io/badge/-development-blue) | -| `pervasive` | Pervasive PSQL | ![Development](https://img.shields.io/badge/-development-blue) | -| `pointbase` | PointBase | ![Development](https://img.shields.io/badge/-development-blue) | -| `postgresql` | PostgreSQL | ![Development](https://img.shields.io/badge/-development-blue) | -| `progress` | Progress Database | ![Development](https://img.shields.io/badge/-development-blue) | -| `redis` | Redis | ![Development](https://img.shields.io/badge/-development-blue) | -| `redshift` | Amazon Redshift | ![Development](https://img.shields.io/badge/-development-blue) | -| `spanner` | Cloud Spanner | ![Development](https://img.shields.io/badge/-development-blue) | -| `sqlite` | SQLite | ![Development](https://img.shields.io/badge/-development-blue) | -| `sybase` | Sybase | ![Development](https://img.shields.io/badge/-development-blue) | -| `teradata` | Teradata | ![Development](https://img.shields.io/badge/-development-blue) | -| `trino` | Trino | ![Development](https://img.shields.io/badge/-development-blue) | -| `vertica` | Vertica | ![Development](https://img.shields.io/badge/-development-blue) | - ---- - `db.system.name` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used. | Value | Description | Stability | @@ -580,8 +472,10 @@ Parameterized query text SHOULD NOT be sanitized. Even though parameterized quer |---|---|---| | `_OTHER` | A fallback error value to be used when the instrumentation doesn't define a custom value. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -**Past Attributes:** -| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | +
+Past Attributes: + +| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`db.system`](/docs/registry/attributes/db.md) | string | Deprecated, use `db.system.name` instead. | `other_sql`; `adabas`; `intersystems_cache` | `Rename` | Use [`db.system.name`](/docs/registry/attributes/db.md) instead. | @@ -641,6 +535,8 @@ Parameterized query text SHOULD NOT be sanitized. Even though parameterized quer | `trino` | Trino | ![Development](https://img.shields.io/badge/-development-blue) | | `vertica` | Vertica | ![Development](https://img.shields.io/badge/-development-blue) | +
+ diff --git a/docs/database/database-spans.md b/docs/database/database-spans.md index 64fcb3e3f4..9bab36277c 100644 --- a/docs/database/database-spans.md +++ b/docs/database/database-spans.md @@ -245,62 +245,6 @@ and SHOULD be provided **at span creation time** (if provided at all): --- -`db.system` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used. - -| Value | Description | Stability | -|---|---|---| -| `adabas` | Adabas (Adaptable Database System) | ![Development](https://img.shields.io/badge/-development-blue) | -| `cassandra` | Apache Cassandra | ![Development](https://img.shields.io/badge/-development-blue) | -| `clickhouse` | ClickHouse | ![Development](https://img.shields.io/badge/-development-blue) | -| `cockroachdb` | CockroachDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `cosmosdb` | Microsoft Azure Cosmos DB | ![Development](https://img.shields.io/badge/-development-blue) | -| `couchbase` | Couchbase | ![Development](https://img.shields.io/badge/-development-blue) | -| `couchdb` | CouchDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `db2` | IBM Db2 | ![Development](https://img.shields.io/badge/-development-blue) | -| `derby` | Apache Derby | ![Development](https://img.shields.io/badge/-development-blue) | -| `dynamodb` | Amazon DynamoDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `edb` | EnterpriseDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `elasticsearch` | Elasticsearch | ![Development](https://img.shields.io/badge/-development-blue) | -| `filemaker` | FileMaker | ![Development](https://img.shields.io/badge/-development-blue) | -| `firebird` | Firebird | ![Development](https://img.shields.io/badge/-development-blue) | -| `geode` | Apache Geode | ![Development](https://img.shields.io/badge/-development-blue) | -| `h2` | H2 | ![Development](https://img.shields.io/badge/-development-blue) | -| `hanadb` | SAP HANA | ![Development](https://img.shields.io/badge/-development-blue) | -| `hbase` | Apache HBase | ![Development](https://img.shields.io/badge/-development-blue) | -| `hive` | Apache Hive | ![Development](https://img.shields.io/badge/-development-blue) | -| `hsqldb` | HyperSQL DataBase | ![Development](https://img.shields.io/badge/-development-blue) | -| `influxdb` | InfluxDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `informix` | Informix | ![Development](https://img.shields.io/badge/-development-blue) | -| `ingres` | Ingres | ![Development](https://img.shields.io/badge/-development-blue) | -| `instantdb` | InstantDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `interbase` | InterBase | ![Development](https://img.shields.io/badge/-development-blue) | -| `intersystems_cache` | InterSystems Caché | ![Development](https://img.shields.io/badge/-development-blue) | -| `mariadb` | MariaDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `maxdb` | SAP MaxDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `memcached` | Memcached | ![Development](https://img.shields.io/badge/-development-blue) | -| `mongodb` | MongoDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `mssql` | Microsoft SQL Server | ![Development](https://img.shields.io/badge/-development-blue) | -| `mysql` | MySQL | ![Development](https://img.shields.io/badge/-development-blue) | -| `neo4j` | Neo4j | ![Development](https://img.shields.io/badge/-development-blue) | -| `netezza` | Netezza | ![Development](https://img.shields.io/badge/-development-blue) | -| `opensearch` | OpenSearch | ![Development](https://img.shields.io/badge/-development-blue) | -| `oracle` | Oracle Database | ![Development](https://img.shields.io/badge/-development-blue) | -| `other_sql` | Some other SQL database. Fallback only. See notes. | ![Development](https://img.shields.io/badge/-development-blue) | -| `pervasive` | Pervasive PSQL | ![Development](https://img.shields.io/badge/-development-blue) | -| `pointbase` | PointBase | ![Development](https://img.shields.io/badge/-development-blue) | -| `postgresql` | PostgreSQL | ![Development](https://img.shields.io/badge/-development-blue) | -| `progress` | Progress Database | ![Development](https://img.shields.io/badge/-development-blue) | -| `redis` | Redis | ![Development](https://img.shields.io/badge/-development-blue) | -| `redshift` | Amazon Redshift | ![Development](https://img.shields.io/badge/-development-blue) | -| `spanner` | Cloud Spanner | ![Development](https://img.shields.io/badge/-development-blue) | -| `sqlite` | SQLite | ![Development](https://img.shields.io/badge/-development-blue) | -| `sybase` | Sybase | ![Development](https://img.shields.io/badge/-development-blue) | -| `teradata` | Teradata | ![Development](https://img.shields.io/badge/-development-blue) | -| `trino` | Trino | ![Development](https://img.shields.io/badge/-development-blue) | -| `vertica` | Vertica | ![Development](https://img.shields.io/badge/-development-blue) | - ---- - `db.system.name` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used. | Value | Description | Stability | @@ -355,13 +299,13 @@ and SHOULD be provided **at span creation time** (if provided at all): |---|---|---| | `_OTHER` | A fallback error value to be used when the instrumentation doesn't define a custom value. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -**Past Attributes:** -| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | +
+Past Attributes: + +| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| -| [`db.connection_string`](/docs/registry/attributes/db.md) | string | Deprecated, use `server.address`, `server.port` attributes instead. | `Server=(localdb)\v11.0;Integrated Security=true;` | `Update` | Replaced by `server.address` and `server.port`. - | -| [`db.instance.id`](/docs/registry/attributes/db.md) | string | Deprecated, no general replacement at this time. For Elasticsearch, use `db.elasticsearch.node.name` instead. | `mysql-e26b99z.example.com` | `Drop` | Removed, no general replacement at this time. For Elasticsearch, use `db.elasticsearch.node.name` instead. - | +| [`db.connection_string`](/docs/registry/attributes/db.md) | string | Deprecated, use `server.address`, `server.port` attributes instead. | `Server=(localdb)\v11.0;Integrated Security=true;` | `Update` | Replaced by `server.address` and `server.port`. | +| [`db.instance.id`](/docs/registry/attributes/db.md) | string | Deprecated, no general replacement at this time. For Elasticsearch, use `db.elasticsearch.node.name` instead. | `mysql-e26b99z.example.com` | `Drop` | Removed, no general replacement at this time. For Elasticsearch, use `db.elasticsearch.node.name` instead. | | [`db.system`](/docs/registry/attributes/db.md) | string | Deprecated, use `db.system.name` instead. | `other_sql`; `adabas`; `intersystems_cache` | `Rename` | Use [`db.system.name`](/docs/registry/attributes/db.md) instead. | | [`db.user`](/docs/registry/attributes/db.md) | string | Deprecated, no replacement at this time. | `readonly_user`; `reporting_user` | `Drop` | Removed, no replacement at this time. | @@ -421,6 +365,8 @@ and SHOULD be provided **at span creation time** (if provided at all): | `trino` | Trino | ![Development](https://img.shields.io/badge/-development-blue) | | `vertica` | Vertica | ![Development](https://img.shields.io/badge/-development-blue) | +
+ diff --git a/docs/exceptions/exceptions-spans.md b/docs/exceptions/exceptions-spans.md index 07bb5fe610..de6ba0b277 100644 --- a/docs/exceptions/exceptions-spans.md +++ b/docs/exceptions/exceptions-spans.md @@ -41,11 +41,14 @@ This event describes a single exception. **[2] `exception.type`:** Required if `exception.message` is not set, recommended otherwise. -**Past Attributes:** -| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | +
+Past Attributes: + +| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| -| [`exception.escaped`](/docs/registry/attributes/exception.md) | boolean | Indicates that the exception is escaping the scope of the span. | | `Drop` | It's no longer recommended to record exceptions that are handled and do not escape the scope of a span. - | +| [`exception.escaped`](/docs/registry/attributes/exception.md) | boolean | Indicates that the exception is escaping the scope of the span. | | `Drop` | It's no longer recommended to record exceptions that are handled and do not escape the scope of a span. | + +
diff --git a/docs/http/http-metrics.md b/docs/http/http-metrics.md index d76678b1f0..7e3e749821 100644 --- a/docs/http/http-metrics.md +++ b/docs/http/http-metrics.md @@ -261,14 +261,18 @@ Tracing instrumentations that do so, MUST also set `http.request.method_original | `QUERY` | QUERY method. | ![Development](https://img.shields.io/badge/-development-blue) | | `TRACE` | TRACE method. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -**Past Attributes:** -| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | +
+Past Attributes: + +| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`http.method`](/docs/registry/attributes/http.md) | string | Deprecated, use `http.request.method` instead. | `GET`; `POST`; `HEAD` | `Rename` | Use [`http.request.method`](/docs/registry/attributes/http.md) instead. | | [`http.scheme`](/docs/registry/attributes/http.md) | string | Deprecated, use `url.scheme` instead. | `http`; `https` | `Rename` | Use [`url.scheme`](/docs/registry/attributes/url.md) instead. | | [`net.host.name`](/docs/registry/attributes/network.md) | string | Deprecated, use `server.address`. | `example.com` | `Rename` | Use [`server.address`](/docs/registry/attributes/server.md) instead. | | [`net.host.port`](/docs/registry/attributes/network.md) | int | Deprecated, use `server.port`. | `8080` | `Rename` | Use [`server.port`](/docs/registry/attributes/server.md) instead. | +
+ diff --git a/docs/http/http-spans.md b/docs/http/http-spans.md index 65be124bf8..58b0661e5e 100644 --- a/docs/http/http-spans.md +++ b/docs/http/http-spans.md @@ -345,11 +345,15 @@ and SHOULD be provided **at span creation time** (if provided at all): | `bot` | Bot source. | ![Development](https://img.shields.io/badge/-development-blue) | | `test` | Synthetic test source. | ![Development](https://img.shields.io/badge/-development-blue) | -**Past Attributes:** -| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | +
+Past Attributes: + +| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`http.method`](/docs/registry/attributes/http.md) | string | Deprecated, use `http.request.method` instead. | `GET`; `POST`; `HEAD` | `Rename` | Use [`http.request.method`](/docs/registry/attributes/http.md) instead. | +
+ @@ -654,11 +658,15 @@ and SHOULD be provided **at span creation time** (if provided at all): | `bot` | Bot source. | ![Development](https://img.shields.io/badge/-development-blue) | | `test` | Synthetic test source. | ![Development](https://img.shields.io/badge/-development-blue) | -**Past Attributes:** -| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | +
+Past Attributes: + +| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`http.method`](/docs/registry/attributes/http.md) | string | Deprecated, use `http.request.method` instead. | `GET`; `POST`; `HEAD` | `Rename` | Use [`http.request.method`](/docs/registry/attributes/http.md) instead. | +
+ diff --git a/docs/messaging/azure-messaging.md b/docs/messaging/azure-messaging.md index f36a9ee593..d645094b8f 100644 --- a/docs/messaging/azure-messaging.md +++ b/docs/messaging/azure-messaging.md @@ -155,8 +155,10 @@ and SHOULD be provided **at span creation time** (if provided at all): | `dead_letter` | Message is sent to dead letter queue | ![Development](https://img.shields.io/badge/-development-blue) | | `defer` | Message is deferred | ![Development](https://img.shields.io/badge/-development-blue) | -**Past Attributes:** -| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | +
+Past Attributes: + +| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [11] | `2048` | `Drop` | Obsoleted. | | [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [12] | `2738` | `Drop` | Obsoleted. | @@ -166,6 +168,8 @@ and SHOULD be provided **at span creation time** (if provided at all): **[12] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. +
+ @@ -277,8 +281,10 @@ and SHOULD be provided **at span creation time** (if provided at all): | `send` | One or more messages are provided for sending to an intermediary. If a single message is sent, the context of the "Send" span can be used as the creation context and no "Create" span needs to be created. | ![Development](https://img.shields.io/badge/-development-blue) | | `settle` | One or more messages are settled. | ![Development](https://img.shields.io/badge/-development-blue) | -**Past Attributes:** -| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | +
+Past Attributes: + +| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [10] | `2048` | `Drop` | Obsoleted. | | [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [11] | `2738` | `Drop` | Obsoleted. | @@ -288,6 +294,8 @@ and SHOULD be provided **at span creation time** (if provided at all): **[11] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. +
+ diff --git a/docs/messaging/gcp-pubsub.md b/docs/messaging/gcp-pubsub.md index 904e9b0461..ef7e29c9b1 100644 --- a/docs/messaging/gcp-pubsub.md +++ b/docs/messaging/gcp-pubsub.md @@ -139,8 +139,10 @@ and SHOULD be provided **at span creation time** (if provided at all): | `send` | One or more messages are provided for sending to an intermediary. If a single message is sent, the context of the "Send" span can be used as the creation context and no "Create" span needs to be created. | ![Development](https://img.shields.io/badge/-development-blue) | | `settle` | One or more messages are settled. | ![Development](https://img.shields.io/badge/-development-blue) | -**Past Attributes:** -| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | +
+Past Attributes: + +| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [10] | `2048` | `Drop` | Obsoleted. | | [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [11] | `2738` | `Drop` | Obsoleted. | @@ -150,6 +152,8 @@ and SHOULD be provided **at span creation time** (if provided at all): **[11] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. +
+ diff --git a/docs/messaging/kafka.md b/docs/messaging/kafka.md index c021fc318d..6925902f99 100644 --- a/docs/messaging/kafka.md +++ b/docs/messaging/kafka.md @@ -148,8 +148,10 @@ and SHOULD be provided **at span creation time** (if provided at all): | `send` | One or more messages are provided for sending to an intermediary. If a single message is sent, the context of the "Send" span can be used as the creation context and no "Create" span needs to be created. | ![Development](https://img.shields.io/badge/-development-blue) | | `settle` | One or more messages are settled. | ![Development](https://img.shields.io/badge/-development-blue) | -**Past Attributes:** -| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | +
+Past Attributes: + +| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [12] | `2048` | `Drop` | Obsoleted. | | [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [13] | `2738` | `Drop` | Obsoleted. | @@ -159,6 +161,8 @@ and SHOULD be provided **at span creation time** (if provided at all): **[13] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. +
+ diff --git a/docs/messaging/messaging-metrics.md b/docs/messaging/messaging-metrics.md index 783cc47ab9..76bfc04656 100644 --- a/docs/messaging/messaging-metrics.md +++ b/docs/messaging/messaging-metrics.md @@ -163,11 +163,15 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi | `rocketmq` | Apache RocketMQ | ![Development](https://img.shields.io/badge/-development-blue) | | `servicebus` | Azure Service Bus | ![Development](https://img.shields.io/badge/-development-blue) | -**Past Attributes:** -| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | +
+Past Attributes: + +| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | +
+ @@ -263,11 +267,15 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi | `rocketmq` | Apache RocketMQ | ![Development](https://img.shields.io/badge/-development-blue) | | `servicebus` | Azure Service Bus | ![Development](https://img.shields.io/badge/-development-blue) | -**Past Attributes:** -| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | +
+Past Attributes: + +| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.name`](/docs/registry/attributes/messaging.md) instead. | +
+ @@ -370,11 +378,15 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi | `rocketmq` | Apache RocketMQ | ![Development](https://img.shields.io/badge/-development-blue) | | `servicebus` | Azure Service Bus | ![Development](https://img.shields.io/badge/-development-blue) | -**Past Attributes:** -| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | +
+Past Attributes: + +| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.name`](/docs/registry/attributes/messaging.md) instead. | +
+ @@ -480,11 +492,15 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi | `rocketmq` | Apache RocketMQ | ![Development](https://img.shields.io/badge/-development-blue) | | `servicebus` | Azure Service Bus | ![Development](https://img.shields.io/badge/-development-blue) | -**Past Attributes:** -| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | +
+Past Attributes: + +| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.name`](/docs/registry/attributes/messaging.md) instead. | +
+ diff --git a/docs/messaging/messaging-spans.md b/docs/messaging/messaging-spans.md index 35e0521da4..472acbff47 100644 --- a/docs/messaging/messaging-spans.md +++ b/docs/messaging/messaging-spans.md @@ -509,8 +509,10 @@ and SHOULD be provided **at span creation time** (if provided at all): | `rocketmq` | Apache RocketMQ | ![Development](https://img.shields.io/badge/-development-blue) | | `servicebus` | Azure Service Bus | ![Development](https://img.shields.io/badge/-development-blue) | -**Past Attributes:** -| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | +
+Past Attributes: + +| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [19] | `2048` | `Drop` | Obsoleted. | | [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [20] | `2738` | `Drop` | Obsoleted. | @@ -520,6 +522,8 @@ and SHOULD be provided **at span creation time** (if provided at all): **[20] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. +
+ diff --git a/docs/messaging/rabbitmq.md b/docs/messaging/rabbitmq.md index 52824383f9..1165faefa2 100644 --- a/docs/messaging/rabbitmq.md +++ b/docs/messaging/rabbitmq.md @@ -136,8 +136,10 @@ and SHOULD be provided **at span creation time** (if provided at all): | `send` | One or more messages are provided for sending to an intermediary. If a single message is sent, the context of the "Send" span can be used as the creation context and no "Create" span needs to be created. | ![Development](https://img.shields.io/badge/-development-blue) | | `settle` | One or more messages are settled. | ![Development](https://img.shields.io/badge/-development-blue) | -**Past Attributes:** -| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | +
+Past Attributes: + +| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [8] | `2048` | `Drop` | Obsoleted. | | [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [9] | `2738` | `Drop` | Obsoleted. | @@ -147,6 +149,8 @@ and SHOULD be provided **at span creation time** (if provided at all): **[9] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. +
+ diff --git a/docs/messaging/rocketmq.md b/docs/messaging/rocketmq.md index 851de1bb12..85b679467b 100644 --- a/docs/messaging/rocketmq.md +++ b/docs/messaging/rocketmq.md @@ -163,8 +163,10 @@ and SHOULD be provided **at span creation time** (if provided at all): | `normal` | Normal message | ![Development](https://img.shields.io/badge/-development-blue) | | `transaction` | Transaction message | ![Development](https://img.shields.io/badge/-development-blue) | -**Past Attributes:** -| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | +
+Past Attributes: + +| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [12] | `2048` | `Drop` | Obsoleted. | | [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [13] | `2738` | `Drop` | Obsoleted. | @@ -174,6 +176,8 @@ and SHOULD be provided **at span creation time** (if provided at all): **[13] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. +
+ diff --git a/docs/messaging/sns.md b/docs/messaging/sns.md index 3643bbc360..9d2c3bfaca 100644 --- a/docs/messaging/sns.md +++ b/docs/messaging/sns.md @@ -90,8 +90,10 @@ and SHOULD be provided **at span creation time** (if provided at all): | `send` | One or more messages are provided for sending to an intermediary. If a single message is sent, the context of the "Send" span can be used as the creation context and no "Create" span needs to be created. | ![Development](https://img.shields.io/badge/-development-blue) | | `settle` | One or more messages are settled. | ![Development](https://img.shields.io/badge/-development-blue) | -**Past Attributes:** -| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | +
+Past Attributes: + +| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [7] | `2048` | `Drop` | Obsoleted. | | [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [8] | `2738` | `Drop` | Obsoleted. | @@ -101,6 +103,8 @@ and SHOULD be provided **at span creation time** (if provided at all): **[8] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. +
+ diff --git a/docs/messaging/sqs.md b/docs/messaging/sqs.md index 27dad46ec0..2bed25aebf 100644 --- a/docs/messaging/sqs.md +++ b/docs/messaging/sqs.md @@ -90,8 +90,10 @@ and SHOULD be provided **at span creation time** (if provided at all): | `send` | One or more messages are provided for sending to an intermediary. If a single message is sent, the context of the "Send" span can be used as the creation context and no "Create" span needs to be created. | ![Development](https://img.shields.io/badge/-development-blue) | | `settle` | One or more messages are settled. | ![Development](https://img.shields.io/badge/-development-blue) | -**Past Attributes:** -| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | +
+Past Attributes: + +| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| | [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [7] | `2048` | `Drop` | Obsoleted. | | [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [8] | `2738` | `Drop` | Obsoleted. | @@ -101,6 +103,8 @@ and SHOULD be provided **at span creation time** (if provided at all): **[8] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. +
+ diff --git a/templates/registry/markdown/attribute_table.j2 b/templates/registry/markdown/attribute_table.j2 index 85cfa27257..a4b4ca747d 100644 --- a/templates/registry/markdown/attribute_table.j2 +++ b/templates/registry/markdown/attribute_table.j2 @@ -7,16 +7,20 @@ {% import 'sampling_macros.j2' as sampling %} {% import 'examples_macros.j2' as examples %} {#- Macro for creating attribute table -#} -{% macro generate(attributes, tag_filter, attribute_registry_base_url, lineage_attributes) %}{% if (tag_filter | length == 0) %}{% set filtered_attributes = attributes | attribute_sort %}{% else %}{% set filtered_attributes = attributes | selectattr("tag", "in", tag_filter) | attribute_sort %}{% endif %}{% if (filtered_attributes is defined) and (filtered_attributes | length > 0) %}| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability | +{% macro generate(attributes, tag_filter, attribute_registry_base_url, lineage_attributes) %}{% if (tag_filter | length == 0) %}{% set filtered_attributes = attributes | rejectattr("deprecated") | attribute_sort %}{% else %}{% set filtered_attributes = attributes | rejectattr("deprecated") | selectattr("tag", "in", tag_filter) | attribute_sort %}{% endif %}{% if (filtered_attributes is defined) and (filtered_attributes | length > 0) %}| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability | |---|---|---|---|---|---| {% for attribute in filtered_attributes if attribute.deprecated is not defined or attribute.deprecated is none %}| {{ attrs.name_with_link(attribute, attribute_registry_base_url, lineage_attributes) }} | {{ attrs.type(attribute) }} | {{ attribute.brief | trim }}{{ notes.add({"note": attribute.note, "name": attrs.name(attribute)}) }} | {{ examples.format(attribute) | trim }} | {{ requirement.render({"level": attribute.requirement_level, "name": attrs.name(attribute), "deprecated": attribute.deprecated}, notes) | trim }} | {{ stability.badge(attribute.stability, attribute.deprecated, attribute.brief) | trim }} | {% endfor %}{{ notes.render() }}{{ sampling.snippet(filtered_attributes, attribute_registry_base_url, lineage_attributes) }}{{ enums.tables(filtered_attributes | selectattr("type", "mapping"), notes) }} {% endif %}{{ generate_deprecated(attributes, tag_filter, attribute_registry_base_url, lineage_attributes)}}{% endmacro %} -{#- Macro for creating attribute table -#} -{% macro generate_deprecated(attributes, tag_filter, attribute_registry_base_url, lineage_attributes) %}{% if (tag_filter | length == 0) %}{% set filtered_attributes = attributes | selectattr("deprecated") | attribute_sort %}{% else %}{% set filtered_attributes = attributes | selectattr("tag", "in", tag_filter) | attribute_sort %}{% endif %}{% if (filtered_attributes is defined) and (filtered_attributes | length > 0) %}**Past Attributes:** -| Attribute | Type | Description | Examples | Deprecation Action | Deprecation Explanation | +{#- Macro for creating deprecated attribute table -#} +{% macro generate_deprecated(attributes, tag_filter, attribute_registry_base_url, lineage_attributes) %}{% if (tag_filter | length == 0) %}{% set filtered_attributes = attributes | selectattr("deprecated") | attribute_sort %}{% else %}{% set filtered_attributes = attributes | selectattr("tag", "in", tag_filter) | attribute_sort %}{% endif %}{% if (filtered_attributes is defined) and (filtered_attributes | length > 0) %}
+Past Attributes: + +| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | |---|---|---|---|---|---| -{% for attribute in filtered_attributes %}| {{ attrs.name_with_link(attribute, attribute_registry_base_url, lineage_attributes) }} | {{ attrs.type(attribute) }} | {{ attribute.brief | trim }}{{ notes.add({"note": attribute.note, "name": attrs.name(attribute)}) }} | {{ examples.format(attribute) | trim }} | {{ action.render({"level": attribute.requirement_level, "name": attrs.name(attribute), "deprecated": attribute.deprecated, "annotations": attribute.annotations}, notes) | trim }} | {% if attribute.deprecated.reason == "renamed" %} Use {{ attrs.renamed_to_with_link(attribute.deprecated.renamed_to, attribute_registry_base_url, lineage_attributes) }} instead. {% else %} {{attribute.deprecated.note}} {% endif %} | +{% for attribute in filtered_attributes %}| {{ attrs.name_with_link(attribute, attribute_registry_base_url, lineage_attributes) }} | {{ attrs.type(attribute) }} | {{ attribute.brief | trim }}{{ notes.add({"note": attribute.note, "name": attrs.name(attribute)}) }} | {{ examples.format(attribute) | trim }} | {{ action.render({"level": attribute.requirement_level, "name": attrs.name(attribute), "deprecated": attribute.deprecated, "annotations": attribute.annotations}, notes) | trim }} | {% if attribute.deprecated.reason == "renamed" %} Use {{ attrs.renamed_to_with_link(attribute.deprecated.renamed_to, attribute_registry_base_url, lineage_attributes) }} instead. {% else %} {{attribute.deprecated.note | trim}} {% endif %} | {% endfor %}{{ notes.render() }}{{ sampling.snippet(filtered_attributes, attribute_registry_base_url, lineage_attributes) }}{{ enums.tables(filtered_attributes | selectattr("type", "mapping"), notes) }} +
+ {% endif %}{% endmacro %} From 0dc5b6b832e65cd8f08d5f1a87ba90937534bdef Mon Sep 17 00:00:00 2001 From: James Thompson Date: Sat, 27 Sep 2025 15:22:17 +1000 Subject: [PATCH 12/14] Move to upgrade docs --- docs/database/database-metrics.md | 130 ------------------ docs/database/database-spans.md | 68 --------- docs/exceptions/exceptions-spans.md | 9 -- docs/http/http-metrics.md | 12 -- docs/http/http-spans.md | 18 --- docs/messaging/azure-messaging.md | 30 ---- docs/messaging/gcp-pubsub.md | 15 -- docs/messaging/kafka.md | 15 -- docs/messaging/messaging-metrics.md | 36 ----- docs/messaging/messaging-spans.md | 15 -- docs/messaging/rabbitmq.md | 15 -- docs/messaging/rocketmq.md | 15 -- docs/messaging/sns.md | 15 -- docs/messaging/sqs.md | 15 -- docs/registry/namespaces/android/upgrade.md | 10 ++ docs/registry/namespaces/app/upgrade.md | 10 ++ .../registry/namespaces/aspnetcore/upgrade.md | 10 ++ docs/registry/namespaces/aws/upgrade.md | 10 ++ docs/registry/namespaces/az/upgrade.md | 14 ++ docs/registry/namespaces/azure/upgrade.md | 10 ++ docs/registry/namespaces/browser/upgrade.md | 10 ++ docs/registry/namespaces/cicd/upgrade.md | 10 ++ docs/registry/namespaces/cli/upgrade.md | 10 ++ docs/registry/namespaces/cloud/upgrade.md | 10 ++ .../namespaces/cloudfoundry/upgrade.md | 10 ++ docs/registry/namespaces/container/upgrade.md | 10 ++ docs/registry/namespaces/cpu/upgrade.md | 16 +++ docs/registry/namespaces/cpython/upgrade.md | 10 ++ docs/registry/namespaces/db/upgrade.md | 33 +++++ .../registry/namespaces/deployment/upgrade.md | 10 ++ docs/registry/namespaces/device/upgrade.md | 10 ++ docs/registry/namespaces/dns/upgrade.md | 10 ++ docs/registry/namespaces/dotnet/upgrade.md | 10 ++ docs/registry/namespaces/dynamodb/upgrade.md | 10 ++ docs/registry/namespaces/exception/upgrade.md | 14 ++ docs/registry/namespaces/faas/upgrade.md | 10 ++ .../namespaces/feature-flag/upgrade.md | 10 ++ docs/registry/namespaces/gcp/upgrade.md | 10 ++ docs/registry/namespaces/gen-ai/upgrade.md | 18 +++ docs/registry/namespaces/go/upgrade.md | 10 ++ docs/registry/namespaces/graphql/upgrade.md | 10 ++ docs/registry/namespaces/heroku/upgrade.md | 10 ++ docs/registry/namespaces/host/upgrade.md | 10 ++ docs/registry/namespaces/http/upgrade.md | 19 +++ docs/registry/namespaces/hw/upgrade.md | 10 ++ docs/registry/namespaces/jvm/upgrade.md | 14 ++ docs/registry/namespaces/k8s/upgrade.md | 15 ++ docs/registry/namespaces/kestrel/upgrade.md | 10 ++ docs/registry/namespaces/messaging/upgrade.md | 26 ++++ docs/registry/namespaces/nfs/upgrade.md | 10 ++ docs/registry/namespaces/nodejs/upgrade.md | 10 ++ docs/registry/namespaces/openai/upgrade.md | 10 ++ docs/registry/namespaces/os/upgrade.md | 10 ++ docs/registry/namespaces/otel/upgrade.md | 19 +++ docs/registry/namespaces/process/upgrade.md | 10 ++ docs/registry/namespaces/rpc/upgrade.md | 10 ++ docs/registry/namespaces/service/upgrade.md | 10 ++ docs/registry/namespaces/session/upgrade.md | 10 ++ docs/registry/namespaces/signalr/upgrade.md | 10 ++ docs/registry/namespaces/system/upgrade.md | 14 ++ docs/registry/namespaces/telemetry/upgrade.md | 10 ++ docs/registry/namespaces/v8js/upgrade.md | 10 ++ docs/registry/namespaces/vcs/upgrade.md | 10 ++ docs/registry/namespaces/webengine/upgrade.md | 10 ++ docs/registry/namespaces/zos/upgrade.md | 10 ++ .../registry/markdown/attribute_table.j2 | 15 +- .../registry/markdown/deprecation_action.j2 | 10 +- .../registry/markdown/upgrade_namespace.md.j2 | 15 ++ templates/registry/markdown/upgrade_table.j2 | 66 +++++++++ templates/registry/markdown/weaver.yaml | 4 + 70 files changed, 693 insertions(+), 427 deletions(-) create mode 100644 docs/registry/namespaces/android/upgrade.md create mode 100644 docs/registry/namespaces/app/upgrade.md create mode 100644 docs/registry/namespaces/aspnetcore/upgrade.md create mode 100644 docs/registry/namespaces/aws/upgrade.md create mode 100644 docs/registry/namespaces/az/upgrade.md create mode 100644 docs/registry/namespaces/azure/upgrade.md create mode 100644 docs/registry/namespaces/browser/upgrade.md create mode 100644 docs/registry/namespaces/cicd/upgrade.md create mode 100644 docs/registry/namespaces/cli/upgrade.md create mode 100644 docs/registry/namespaces/cloud/upgrade.md create mode 100644 docs/registry/namespaces/cloudfoundry/upgrade.md create mode 100644 docs/registry/namespaces/container/upgrade.md create mode 100644 docs/registry/namespaces/cpu/upgrade.md create mode 100644 docs/registry/namespaces/cpython/upgrade.md create mode 100644 docs/registry/namespaces/db/upgrade.md create mode 100644 docs/registry/namespaces/deployment/upgrade.md create mode 100644 docs/registry/namespaces/device/upgrade.md create mode 100644 docs/registry/namespaces/dns/upgrade.md create mode 100644 docs/registry/namespaces/dotnet/upgrade.md create mode 100644 docs/registry/namespaces/dynamodb/upgrade.md create mode 100644 docs/registry/namespaces/exception/upgrade.md create mode 100644 docs/registry/namespaces/faas/upgrade.md create mode 100644 docs/registry/namespaces/feature-flag/upgrade.md create mode 100644 docs/registry/namespaces/gcp/upgrade.md create mode 100644 docs/registry/namespaces/gen-ai/upgrade.md create mode 100644 docs/registry/namespaces/go/upgrade.md create mode 100644 docs/registry/namespaces/graphql/upgrade.md create mode 100644 docs/registry/namespaces/heroku/upgrade.md create mode 100644 docs/registry/namespaces/host/upgrade.md create mode 100644 docs/registry/namespaces/http/upgrade.md create mode 100644 docs/registry/namespaces/hw/upgrade.md create mode 100644 docs/registry/namespaces/jvm/upgrade.md create mode 100644 docs/registry/namespaces/k8s/upgrade.md create mode 100644 docs/registry/namespaces/kestrel/upgrade.md create mode 100644 docs/registry/namespaces/messaging/upgrade.md create mode 100644 docs/registry/namespaces/nfs/upgrade.md create mode 100644 docs/registry/namespaces/nodejs/upgrade.md create mode 100644 docs/registry/namespaces/openai/upgrade.md create mode 100644 docs/registry/namespaces/os/upgrade.md create mode 100644 docs/registry/namespaces/otel/upgrade.md create mode 100644 docs/registry/namespaces/process/upgrade.md create mode 100644 docs/registry/namespaces/rpc/upgrade.md create mode 100644 docs/registry/namespaces/service/upgrade.md create mode 100644 docs/registry/namespaces/session/upgrade.md create mode 100644 docs/registry/namespaces/signalr/upgrade.md create mode 100644 docs/registry/namespaces/system/upgrade.md create mode 100644 docs/registry/namespaces/telemetry/upgrade.md create mode 100644 docs/registry/namespaces/v8js/upgrade.md create mode 100644 docs/registry/namespaces/vcs/upgrade.md create mode 100644 docs/registry/namespaces/webengine/upgrade.md create mode 100644 docs/registry/namespaces/zos/upgrade.md create mode 100644 templates/registry/markdown/upgrade_namespace.md.j2 create mode 100644 templates/registry/markdown/upgrade_table.j2 diff --git a/docs/database/database-metrics.md b/docs/database/database-metrics.md index be86029442..c6a0cbecdf 100644 --- a/docs/database/database-metrics.md +++ b/docs/database/database-metrics.md @@ -228,71 +228,6 @@ Parameterized query text SHOULD NOT be sanitized. Even though parameterized quer |---|---|---| | `_OTHER` | A fallback error value to be used when the instrumentation doesn't define a custom value. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -
-Past Attributes: - -| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | -|---|---|---|---|---|---| -| [`db.system`](/docs/registry/attributes/db.md) | string | Deprecated, use `db.system.name` instead. | `other_sql`; `adabas`; `intersystems_cache` | `Rename` | Use [`db.system.name`](/docs/registry/attributes/db.md) instead. | - ---- - -`db.system` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used. - -| Value | Description | Stability | -|---|---|---| -| `adabas` | Adabas (Adaptable Database System) | ![Development](https://img.shields.io/badge/-development-blue) | -| `cassandra` | Apache Cassandra | ![Development](https://img.shields.io/badge/-development-blue) | -| `clickhouse` | ClickHouse | ![Development](https://img.shields.io/badge/-development-blue) | -| `cockroachdb` | CockroachDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `cosmosdb` | Microsoft Azure Cosmos DB | ![Development](https://img.shields.io/badge/-development-blue) | -| `couchbase` | Couchbase | ![Development](https://img.shields.io/badge/-development-blue) | -| `couchdb` | CouchDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `db2` | IBM Db2 | ![Development](https://img.shields.io/badge/-development-blue) | -| `derby` | Apache Derby | ![Development](https://img.shields.io/badge/-development-blue) | -| `dynamodb` | Amazon DynamoDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `edb` | EnterpriseDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `elasticsearch` | Elasticsearch | ![Development](https://img.shields.io/badge/-development-blue) | -| `filemaker` | FileMaker | ![Development](https://img.shields.io/badge/-development-blue) | -| `firebird` | Firebird | ![Development](https://img.shields.io/badge/-development-blue) | -| `geode` | Apache Geode | ![Development](https://img.shields.io/badge/-development-blue) | -| `h2` | H2 | ![Development](https://img.shields.io/badge/-development-blue) | -| `hanadb` | SAP HANA | ![Development](https://img.shields.io/badge/-development-blue) | -| `hbase` | Apache HBase | ![Development](https://img.shields.io/badge/-development-blue) | -| `hive` | Apache Hive | ![Development](https://img.shields.io/badge/-development-blue) | -| `hsqldb` | HyperSQL DataBase | ![Development](https://img.shields.io/badge/-development-blue) | -| `influxdb` | InfluxDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `informix` | Informix | ![Development](https://img.shields.io/badge/-development-blue) | -| `ingres` | Ingres | ![Development](https://img.shields.io/badge/-development-blue) | -| `instantdb` | InstantDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `interbase` | InterBase | ![Development](https://img.shields.io/badge/-development-blue) | -| `intersystems_cache` | InterSystems Caché | ![Development](https://img.shields.io/badge/-development-blue) | -| `mariadb` | MariaDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `maxdb` | SAP MaxDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `memcached` | Memcached | ![Development](https://img.shields.io/badge/-development-blue) | -| `mongodb` | MongoDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `mssql` | Microsoft SQL Server | ![Development](https://img.shields.io/badge/-development-blue) | -| `mysql` | MySQL | ![Development](https://img.shields.io/badge/-development-blue) | -| `neo4j` | Neo4j | ![Development](https://img.shields.io/badge/-development-blue) | -| `netezza` | Netezza | ![Development](https://img.shields.io/badge/-development-blue) | -| `opensearch` | OpenSearch | ![Development](https://img.shields.io/badge/-development-blue) | -| `oracle` | Oracle Database | ![Development](https://img.shields.io/badge/-development-blue) | -| `other_sql` | Some other SQL database. Fallback only. See notes. | ![Development](https://img.shields.io/badge/-development-blue) | -| `pervasive` | Pervasive PSQL | ![Development](https://img.shields.io/badge/-development-blue) | -| `pointbase` | PointBase | ![Development](https://img.shields.io/badge/-development-blue) | -| `postgresql` | PostgreSQL | ![Development](https://img.shields.io/badge/-development-blue) | -| `progress` | Progress Database | ![Development](https://img.shields.io/badge/-development-blue) | -| `redis` | Redis | ![Development](https://img.shields.io/badge/-development-blue) | -| `redshift` | Amazon Redshift | ![Development](https://img.shields.io/badge/-development-blue) | -| `spanner` | Cloud Spanner | ![Development](https://img.shields.io/badge/-development-blue) | -| `sqlite` | SQLite | ![Development](https://img.shields.io/badge/-development-blue) | -| `sybase` | Sybase | ![Development](https://img.shields.io/badge/-development-blue) | -| `teradata` | Teradata | ![Development](https://img.shields.io/badge/-development-blue) | -| `trino` | Trino | ![Development](https://img.shields.io/badge/-development-blue) | -| `vertica` | Vertica | ![Development](https://img.shields.io/badge/-development-blue) | - -
- @@ -472,71 +407,6 @@ Parameterized query text SHOULD NOT be sanitized. Even though parameterized quer |---|---|---| | `_OTHER` | A fallback error value to be used when the instrumentation doesn't define a custom value. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -
-Past Attributes: - -| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | -|---|---|---|---|---|---| -| [`db.system`](/docs/registry/attributes/db.md) | string | Deprecated, use `db.system.name` instead. | `other_sql`; `adabas`; `intersystems_cache` | `Rename` | Use [`db.system.name`](/docs/registry/attributes/db.md) instead. | - ---- - -`db.system` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used. - -| Value | Description | Stability | -|---|---|---| -| `adabas` | Adabas (Adaptable Database System) | ![Development](https://img.shields.io/badge/-development-blue) | -| `cassandra` | Apache Cassandra | ![Development](https://img.shields.io/badge/-development-blue) | -| `clickhouse` | ClickHouse | ![Development](https://img.shields.io/badge/-development-blue) | -| `cockroachdb` | CockroachDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `cosmosdb` | Microsoft Azure Cosmos DB | ![Development](https://img.shields.io/badge/-development-blue) | -| `couchbase` | Couchbase | ![Development](https://img.shields.io/badge/-development-blue) | -| `couchdb` | CouchDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `db2` | IBM Db2 | ![Development](https://img.shields.io/badge/-development-blue) | -| `derby` | Apache Derby | ![Development](https://img.shields.io/badge/-development-blue) | -| `dynamodb` | Amazon DynamoDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `edb` | EnterpriseDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `elasticsearch` | Elasticsearch | ![Development](https://img.shields.io/badge/-development-blue) | -| `filemaker` | FileMaker | ![Development](https://img.shields.io/badge/-development-blue) | -| `firebird` | Firebird | ![Development](https://img.shields.io/badge/-development-blue) | -| `geode` | Apache Geode | ![Development](https://img.shields.io/badge/-development-blue) | -| `h2` | H2 | ![Development](https://img.shields.io/badge/-development-blue) | -| `hanadb` | SAP HANA | ![Development](https://img.shields.io/badge/-development-blue) | -| `hbase` | Apache HBase | ![Development](https://img.shields.io/badge/-development-blue) | -| `hive` | Apache Hive | ![Development](https://img.shields.io/badge/-development-blue) | -| `hsqldb` | HyperSQL DataBase | ![Development](https://img.shields.io/badge/-development-blue) | -| `influxdb` | InfluxDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `informix` | Informix | ![Development](https://img.shields.io/badge/-development-blue) | -| `ingres` | Ingres | ![Development](https://img.shields.io/badge/-development-blue) | -| `instantdb` | InstantDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `interbase` | InterBase | ![Development](https://img.shields.io/badge/-development-blue) | -| `intersystems_cache` | InterSystems Caché | ![Development](https://img.shields.io/badge/-development-blue) | -| `mariadb` | MariaDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `maxdb` | SAP MaxDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `memcached` | Memcached | ![Development](https://img.shields.io/badge/-development-blue) | -| `mongodb` | MongoDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `mssql` | Microsoft SQL Server | ![Development](https://img.shields.io/badge/-development-blue) | -| `mysql` | MySQL | ![Development](https://img.shields.io/badge/-development-blue) | -| `neo4j` | Neo4j | ![Development](https://img.shields.io/badge/-development-blue) | -| `netezza` | Netezza | ![Development](https://img.shields.io/badge/-development-blue) | -| `opensearch` | OpenSearch | ![Development](https://img.shields.io/badge/-development-blue) | -| `oracle` | Oracle Database | ![Development](https://img.shields.io/badge/-development-blue) | -| `other_sql` | Some other SQL database. Fallback only. See notes. | ![Development](https://img.shields.io/badge/-development-blue) | -| `pervasive` | Pervasive PSQL | ![Development](https://img.shields.io/badge/-development-blue) | -| `pointbase` | PointBase | ![Development](https://img.shields.io/badge/-development-blue) | -| `postgresql` | PostgreSQL | ![Development](https://img.shields.io/badge/-development-blue) | -| `progress` | Progress Database | ![Development](https://img.shields.io/badge/-development-blue) | -| `redis` | Redis | ![Development](https://img.shields.io/badge/-development-blue) | -| `redshift` | Amazon Redshift | ![Development](https://img.shields.io/badge/-development-blue) | -| `spanner` | Cloud Spanner | ![Development](https://img.shields.io/badge/-development-blue) | -| `sqlite` | SQLite | ![Development](https://img.shields.io/badge/-development-blue) | -| `sybase` | Sybase | ![Development](https://img.shields.io/badge/-development-blue) | -| `teradata` | Teradata | ![Development](https://img.shields.io/badge/-development-blue) | -| `trino` | Trino | ![Development](https://img.shields.io/badge/-development-blue) | -| `vertica` | Vertica | ![Development](https://img.shields.io/badge/-development-blue) | - -
- diff --git a/docs/database/database-spans.md b/docs/database/database-spans.md index 9bab36277c..e705957975 100644 --- a/docs/database/database-spans.md +++ b/docs/database/database-spans.md @@ -299,74 +299,6 @@ and SHOULD be provided **at span creation time** (if provided at all): |---|---|---| | `_OTHER` | A fallback error value to be used when the instrumentation doesn't define a custom value. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -
-Past Attributes: - -| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | -|---|---|---|---|---|---| -| [`db.connection_string`](/docs/registry/attributes/db.md) | string | Deprecated, use `server.address`, `server.port` attributes instead. | `Server=(localdb)\v11.0;Integrated Security=true;` | `Update` | Replaced by `server.address` and `server.port`. | -| [`db.instance.id`](/docs/registry/attributes/db.md) | string | Deprecated, no general replacement at this time. For Elasticsearch, use `db.elasticsearch.node.name` instead. | `mysql-e26b99z.example.com` | `Drop` | Removed, no general replacement at this time. For Elasticsearch, use `db.elasticsearch.node.name` instead. | -| [`db.system`](/docs/registry/attributes/db.md) | string | Deprecated, use `db.system.name` instead. | `other_sql`; `adabas`; `intersystems_cache` | `Rename` | Use [`db.system.name`](/docs/registry/attributes/db.md) instead. | -| [`db.user`](/docs/registry/attributes/db.md) | string | Deprecated, no replacement at this time. | `readonly_user`; `reporting_user` | `Drop` | Removed, no replacement at this time. | - ---- - -`db.system` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used. - -| Value | Description | Stability | -|---|---|---| -| `adabas` | Adabas (Adaptable Database System) | ![Development](https://img.shields.io/badge/-development-blue) | -| `cassandra` | Apache Cassandra | ![Development](https://img.shields.io/badge/-development-blue) | -| `clickhouse` | ClickHouse | ![Development](https://img.shields.io/badge/-development-blue) | -| `cockroachdb` | CockroachDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `cosmosdb` | Microsoft Azure Cosmos DB | ![Development](https://img.shields.io/badge/-development-blue) | -| `couchbase` | Couchbase | ![Development](https://img.shields.io/badge/-development-blue) | -| `couchdb` | CouchDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `db2` | IBM Db2 | ![Development](https://img.shields.io/badge/-development-blue) | -| `derby` | Apache Derby | ![Development](https://img.shields.io/badge/-development-blue) | -| `dynamodb` | Amazon DynamoDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `edb` | EnterpriseDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `elasticsearch` | Elasticsearch | ![Development](https://img.shields.io/badge/-development-blue) | -| `filemaker` | FileMaker | ![Development](https://img.shields.io/badge/-development-blue) | -| `firebird` | Firebird | ![Development](https://img.shields.io/badge/-development-blue) | -| `geode` | Apache Geode | ![Development](https://img.shields.io/badge/-development-blue) | -| `h2` | H2 | ![Development](https://img.shields.io/badge/-development-blue) | -| `hanadb` | SAP HANA | ![Development](https://img.shields.io/badge/-development-blue) | -| `hbase` | Apache HBase | ![Development](https://img.shields.io/badge/-development-blue) | -| `hive` | Apache Hive | ![Development](https://img.shields.io/badge/-development-blue) | -| `hsqldb` | HyperSQL DataBase | ![Development](https://img.shields.io/badge/-development-blue) | -| `influxdb` | InfluxDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `informix` | Informix | ![Development](https://img.shields.io/badge/-development-blue) | -| `ingres` | Ingres | ![Development](https://img.shields.io/badge/-development-blue) | -| `instantdb` | InstantDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `interbase` | InterBase | ![Development](https://img.shields.io/badge/-development-blue) | -| `intersystems_cache` | InterSystems Caché | ![Development](https://img.shields.io/badge/-development-blue) | -| `mariadb` | MariaDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `maxdb` | SAP MaxDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `memcached` | Memcached | ![Development](https://img.shields.io/badge/-development-blue) | -| `mongodb` | MongoDB | ![Development](https://img.shields.io/badge/-development-blue) | -| `mssql` | Microsoft SQL Server | ![Development](https://img.shields.io/badge/-development-blue) | -| `mysql` | MySQL | ![Development](https://img.shields.io/badge/-development-blue) | -| `neo4j` | Neo4j | ![Development](https://img.shields.io/badge/-development-blue) | -| `netezza` | Netezza | ![Development](https://img.shields.io/badge/-development-blue) | -| `opensearch` | OpenSearch | ![Development](https://img.shields.io/badge/-development-blue) | -| `oracle` | Oracle Database | ![Development](https://img.shields.io/badge/-development-blue) | -| `other_sql` | Some other SQL database. Fallback only. See notes. | ![Development](https://img.shields.io/badge/-development-blue) | -| `pervasive` | Pervasive PSQL | ![Development](https://img.shields.io/badge/-development-blue) | -| `pointbase` | PointBase | ![Development](https://img.shields.io/badge/-development-blue) | -| `postgresql` | PostgreSQL | ![Development](https://img.shields.io/badge/-development-blue) | -| `progress` | Progress Database | ![Development](https://img.shields.io/badge/-development-blue) | -| `redis` | Redis | ![Development](https://img.shields.io/badge/-development-blue) | -| `redshift` | Amazon Redshift | ![Development](https://img.shields.io/badge/-development-blue) | -| `spanner` | Cloud Spanner | ![Development](https://img.shields.io/badge/-development-blue) | -| `sqlite` | SQLite | ![Development](https://img.shields.io/badge/-development-blue) | -| `sybase` | Sybase | ![Development](https://img.shields.io/badge/-development-blue) | -| `teradata` | Teradata | ![Development](https://img.shields.io/badge/-development-blue) | -| `trino` | Trino | ![Development](https://img.shields.io/badge/-development-blue) | -| `vertica` | Vertica | ![Development](https://img.shields.io/badge/-development-blue) | - -
- diff --git a/docs/exceptions/exceptions-spans.md b/docs/exceptions/exceptions-spans.md index de6ba0b277..31397ea6b1 100644 --- a/docs/exceptions/exceptions-spans.md +++ b/docs/exceptions/exceptions-spans.md @@ -41,15 +41,6 @@ This event describes a single exception. **[2] `exception.type`:** Required if `exception.message` is not set, recommended otherwise. -
-Past Attributes: - -| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | -|---|---|---|---|---|---| -| [`exception.escaped`](/docs/registry/attributes/exception.md) | boolean | Indicates that the exception is escaping the scope of the span. | | `Drop` | It's no longer recommended to record exceptions that are handled and do not escape the scope of a span. | - -
- diff --git a/docs/http/http-metrics.md b/docs/http/http-metrics.md index 7e3e749821..5e4cfa2d5d 100644 --- a/docs/http/http-metrics.md +++ b/docs/http/http-metrics.md @@ -261,18 +261,6 @@ Tracing instrumentations that do so, MUST also set `http.request.method_original | `QUERY` | QUERY method. | ![Development](https://img.shields.io/badge/-development-blue) | | `TRACE` | TRACE method. | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | -
-Past Attributes: - -| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | -|---|---|---|---|---|---| -| [`http.method`](/docs/registry/attributes/http.md) | string | Deprecated, use `http.request.method` instead. | `GET`; `POST`; `HEAD` | `Rename` | Use [`http.request.method`](/docs/registry/attributes/http.md) instead. | -| [`http.scheme`](/docs/registry/attributes/http.md) | string | Deprecated, use `url.scheme` instead. | `http`; `https` | `Rename` | Use [`url.scheme`](/docs/registry/attributes/url.md) instead. | -| [`net.host.name`](/docs/registry/attributes/network.md) | string | Deprecated, use `server.address`. | `example.com` | `Rename` | Use [`server.address`](/docs/registry/attributes/server.md) instead. | -| [`net.host.port`](/docs/registry/attributes/network.md) | int | Deprecated, use `server.port`. | `8080` | `Rename` | Use [`server.port`](/docs/registry/attributes/server.md) instead. | - -
- diff --git a/docs/http/http-spans.md b/docs/http/http-spans.md index 58b0661e5e..8b1b43c73c 100644 --- a/docs/http/http-spans.md +++ b/docs/http/http-spans.md @@ -345,15 +345,6 @@ and SHOULD be provided **at span creation time** (if provided at all): | `bot` | Bot source. | ![Development](https://img.shields.io/badge/-development-blue) | | `test` | Synthetic test source. | ![Development](https://img.shields.io/badge/-development-blue) | -
-Past Attributes: - -| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | -|---|---|---|---|---|---| -| [`http.method`](/docs/registry/attributes/http.md) | string | Deprecated, use `http.request.method` instead. | `GET`; `POST`; `HEAD` | `Rename` | Use [`http.request.method`](/docs/registry/attributes/http.md) instead. | - -
- @@ -658,15 +649,6 @@ and SHOULD be provided **at span creation time** (if provided at all): | `bot` | Bot source. | ![Development](https://img.shields.io/badge/-development-blue) | | `test` | Synthetic test source. | ![Development](https://img.shields.io/badge/-development-blue) | -
-Past Attributes: - -| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | -|---|---|---|---|---|---| -| [`http.method`](/docs/registry/attributes/http.md) | string | Deprecated, use `http.request.method` instead. | `GET`; `POST`; `HEAD` | `Rename` | Use [`http.request.method`](/docs/registry/attributes/http.md) instead. | - -
- diff --git a/docs/messaging/azure-messaging.md b/docs/messaging/azure-messaging.md index d645094b8f..341b3df7f6 100644 --- a/docs/messaging/azure-messaging.md +++ b/docs/messaging/azure-messaging.md @@ -155,21 +155,6 @@ and SHOULD be provided **at span creation time** (if provided at all): | `dead_letter` | Message is sent to dead letter queue | ![Development](https://img.shields.io/badge/-development-blue) | | `defer` | Message is deferred | ![Development](https://img.shields.io/badge/-development-blue) | -
-Past Attributes: - -| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | -|---|---|---|---|---|---| -| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [11] | `2048` | `Drop` | Obsoleted. | -| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [12] | `2738` | `Drop` | Obsoleted. | -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | - -**[11] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. - -**[12] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. - -
- @@ -281,21 +266,6 @@ and SHOULD be provided **at span creation time** (if provided at all): | `send` | One or more messages are provided for sending to an intermediary. If a single message is sent, the context of the "Send" span can be used as the creation context and no "Create" span needs to be created. | ![Development](https://img.shields.io/badge/-development-blue) | | `settle` | One or more messages are settled. | ![Development](https://img.shields.io/badge/-development-blue) | -
-Past Attributes: - -| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | -|---|---|---|---|---|---| -| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [10] | `2048` | `Drop` | Obsoleted. | -| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [11] | `2738` | `Drop` | Obsoleted. | -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | - -**[10] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. - -**[11] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. - -
- diff --git a/docs/messaging/gcp-pubsub.md b/docs/messaging/gcp-pubsub.md index ef7e29c9b1..dd0089f6d8 100644 --- a/docs/messaging/gcp-pubsub.md +++ b/docs/messaging/gcp-pubsub.md @@ -139,21 +139,6 @@ and SHOULD be provided **at span creation time** (if provided at all): | `send` | One or more messages are provided for sending to an intermediary. If a single message is sent, the context of the "Send" span can be used as the creation context and no "Create" span needs to be created. | ![Development](https://img.shields.io/badge/-development-blue) | | `settle` | One or more messages are settled. | ![Development](https://img.shields.io/badge/-development-blue) | -
-Past Attributes: - -| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | -|---|---|---|---|---|---| -| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [10] | `2048` | `Drop` | Obsoleted. | -| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [11] | `2738` | `Drop` | Obsoleted. | -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | - -**[10] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. - -**[11] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. - -
- diff --git a/docs/messaging/kafka.md b/docs/messaging/kafka.md index 6925902f99..5259d16858 100644 --- a/docs/messaging/kafka.md +++ b/docs/messaging/kafka.md @@ -148,21 +148,6 @@ and SHOULD be provided **at span creation time** (if provided at all): | `send` | One or more messages are provided for sending to an intermediary. If a single message is sent, the context of the "Send" span can be used as the creation context and no "Create" span needs to be created. | ![Development](https://img.shields.io/badge/-development-blue) | | `settle` | One or more messages are settled. | ![Development](https://img.shields.io/badge/-development-blue) | -
-Past Attributes: - -| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | -|---|---|---|---|---|---| -| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [12] | `2048` | `Drop` | Obsoleted. | -| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [13] | `2738` | `Drop` | Obsoleted. | -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | - -**[12] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. - -**[13] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. - -
- diff --git a/docs/messaging/messaging-metrics.md b/docs/messaging/messaging-metrics.md index 76bfc04656..cecf8ba811 100644 --- a/docs/messaging/messaging-metrics.md +++ b/docs/messaging/messaging-metrics.md @@ -163,15 +163,6 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi | `rocketmq` | Apache RocketMQ | ![Development](https://img.shields.io/badge/-development-blue) | | `servicebus` | Azure Service Bus | ![Development](https://img.shields.io/badge/-development-blue) | -
-Past Attributes: - -| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | -|---|---|---|---|---|---| -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | - -
- @@ -267,15 +258,6 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi | `rocketmq` | Apache RocketMQ | ![Development](https://img.shields.io/badge/-development-blue) | | `servicebus` | Azure Service Bus | ![Development](https://img.shields.io/badge/-development-blue) | -
-Past Attributes: - -| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | -|---|---|---|---|---|---| -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.name`](/docs/registry/attributes/messaging.md) instead. | - -
- @@ -378,15 +360,6 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi | `rocketmq` | Apache RocketMQ | ![Development](https://img.shields.io/badge/-development-blue) | | `servicebus` | Azure Service Bus | ![Development](https://img.shields.io/badge/-development-blue) | -
-Past Attributes: - -| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | -|---|---|---|---|---|---| -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.name`](/docs/registry/attributes/messaging.md) instead. | - -
- @@ -492,15 +465,6 @@ the broker doesn't have such notion, the destination name SHOULD uniquely identi | `rocketmq` | Apache RocketMQ | ![Development](https://img.shields.io/badge/-development-blue) | | `servicebus` | Azure Service Bus | ![Development](https://img.shields.io/badge/-development-blue) | -
-Past Attributes: - -| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | -|---|---|---|---|---|---| -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.name`](/docs/registry/attributes/messaging.md) instead. | - -
- diff --git a/docs/messaging/messaging-spans.md b/docs/messaging/messaging-spans.md index 472acbff47..8bbfbc695a 100644 --- a/docs/messaging/messaging-spans.md +++ b/docs/messaging/messaging-spans.md @@ -509,21 +509,6 @@ and SHOULD be provided **at span creation time** (if provided at all): | `rocketmq` | Apache RocketMQ | ![Development](https://img.shields.io/badge/-development-blue) | | `servicebus` | Azure Service Bus | ![Development](https://img.shields.io/badge/-development-blue) | -
-Past Attributes: - -| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | -|---|---|---|---|---|---| -| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [19] | `2048` | `Drop` | Obsoleted. | -| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [20] | `2738` | `Drop` | Obsoleted. | -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | - -**[19] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. - -**[20] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. - -
- diff --git a/docs/messaging/rabbitmq.md b/docs/messaging/rabbitmq.md index 1165faefa2..1abf54c569 100644 --- a/docs/messaging/rabbitmq.md +++ b/docs/messaging/rabbitmq.md @@ -136,21 +136,6 @@ and SHOULD be provided **at span creation time** (if provided at all): | `send` | One or more messages are provided for sending to an intermediary. If a single message is sent, the context of the "Send" span can be used as the creation context and no "Create" span needs to be created. | ![Development](https://img.shields.io/badge/-development-blue) | | `settle` | One or more messages are settled. | ![Development](https://img.shields.io/badge/-development-blue) | -
-Past Attributes: - -| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | -|---|---|---|---|---|---| -| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [8] | `2048` | `Drop` | Obsoleted. | -| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [9] | `2738` | `Drop` | Obsoleted. | -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | - -**[8] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. - -**[9] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. - -
- diff --git a/docs/messaging/rocketmq.md b/docs/messaging/rocketmq.md index 85b679467b..5683e4dac8 100644 --- a/docs/messaging/rocketmq.md +++ b/docs/messaging/rocketmq.md @@ -163,21 +163,6 @@ and SHOULD be provided **at span creation time** (if provided at all): | `normal` | Normal message | ![Development](https://img.shields.io/badge/-development-blue) | | `transaction` | Transaction message | ![Development](https://img.shields.io/badge/-development-blue) | -
-Past Attributes: - -| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | -|---|---|---|---|---|---| -| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [12] | `2048` | `Drop` | Obsoleted. | -| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [13] | `2738` | `Drop` | Obsoleted. | -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | - -**[12] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. - -**[13] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. - -
- diff --git a/docs/messaging/sns.md b/docs/messaging/sns.md index 9d2c3bfaca..27b9e2b83b 100644 --- a/docs/messaging/sns.md +++ b/docs/messaging/sns.md @@ -90,21 +90,6 @@ and SHOULD be provided **at span creation time** (if provided at all): | `send` | One or more messages are provided for sending to an intermediary. If a single message is sent, the context of the "Send" span can be used as the creation context and no "Create" span needs to be created. | ![Development](https://img.shields.io/badge/-development-blue) | | `settle` | One or more messages are settled. | ![Development](https://img.shields.io/badge/-development-blue) | -
-Past Attributes: - -| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | -|---|---|---|---|---|---| -| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [7] | `2048` | `Drop` | Obsoleted. | -| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [8] | `2738` | `Drop` | Obsoleted. | -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | - -**[7] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. - -**[8] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. - -
- diff --git a/docs/messaging/sqs.md b/docs/messaging/sqs.md index 2bed25aebf..fd65fa277b 100644 --- a/docs/messaging/sqs.md +++ b/docs/messaging/sqs.md @@ -90,21 +90,6 @@ and SHOULD be provided **at span creation time** (if provided at all): | `send` | One or more messages are provided for sending to an intermediary. If a single message is sent, the context of the "Send" span can be used as the creation context and no "Create" span needs to be created. | ![Development](https://img.shields.io/badge/-development-blue) | | `settle` | One or more messages are settled. | ![Development](https://img.shields.io/badge/-development-blue) | -
-Past Attributes: - -| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | -|---|---|---|---|---|---| -| [`messaging.message.payload_compressed_size_bytes`](/docs/registry/attributes/messaging.md) | int | The compressed size of the message payload in bytes. [7] | `2048` | `Drop` | Obsoleted. | -| [`messaging.message.payload_size_bytes`](/docs/registry/attributes/messaging.md) | int | The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported. [8] | `2738` | `Drop` | Obsoleted. | -| [`messaging.operation`](/docs/registry/attributes/messaging.md) | string | Deprecated, use `messaging.operation.type` instead. | `publish`; `create`; `process` | `Migrate` | Use [`messaging.operation.type`](/docs/registry/attributes/messaging.md) instead. | - -**[7] `messaging.message.payload_compressed_size_bytes`:** Only if span represents operation on a single message. - -**[8] `messaging.message.payload_size_bytes`:** Only if span represents operation on a single message. - -
- diff --git a/docs/registry/namespaces/android/upgrade.md b/docs/registry/namespaces/android/upgrade.md new file mode 100644 index 0000000000..997753a1ae --- /dev/null +++ b/docs/registry/namespaces/android/upgrade.md @@ -0,0 +1,10 @@ + + + +# Android + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/app/upgrade.md b/docs/registry/namespaces/app/upgrade.md new file mode 100644 index 0000000000..b120c7c2a6 --- /dev/null +++ b/docs/registry/namespaces/app/upgrade.md @@ -0,0 +1,10 @@ + + + +# App + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/aspnetcore/upgrade.md b/docs/registry/namespaces/aspnetcore/upgrade.md new file mode 100644 index 0000000000..126a49dd56 --- /dev/null +++ b/docs/registry/namespaces/aspnetcore/upgrade.md @@ -0,0 +1,10 @@ + + + +# Aspnetcore + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/aws/upgrade.md b/docs/registry/namespaces/aws/upgrade.md new file mode 100644 index 0000000000..78b2e84f5f --- /dev/null +++ b/docs/registry/namespaces/aws/upgrade.md @@ -0,0 +1,10 @@ + + + +# AWS + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/az/upgrade.md b/docs/registry/namespaces/az/upgrade.md new file mode 100644 index 0000000000..5b70f24288 --- /dev/null +++ b/docs/registry/namespaces/az/upgrade.md @@ -0,0 +1,14 @@ + + + +# Az + +The upgrade process helps to document what is needed to upgrade the signals to the latest version. + +## Events + +| Old Signal Name | Action | New Signal Name | Summary | +| --- | --- | --- | --- | +| az.resource.log | `Rename` | azure.resource.log | Replaced by `azure.resource.log`. | + + diff --git a/docs/registry/namespaces/azure/upgrade.md b/docs/registry/namespaces/azure/upgrade.md new file mode 100644 index 0000000000..cb5ffcbb7f --- /dev/null +++ b/docs/registry/namespaces/azure/upgrade.md @@ -0,0 +1,10 @@ + + + +# Azure + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/browser/upgrade.md b/docs/registry/namespaces/browser/upgrade.md new file mode 100644 index 0000000000..a24fac59bb --- /dev/null +++ b/docs/registry/namespaces/browser/upgrade.md @@ -0,0 +1,10 @@ + + + +# Browser + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/cicd/upgrade.md b/docs/registry/namespaces/cicd/upgrade.md new file mode 100644 index 0000000000..945bf4c8d1 --- /dev/null +++ b/docs/registry/namespaces/cicd/upgrade.md @@ -0,0 +1,10 @@ + + + +# CICD + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/cli/upgrade.md b/docs/registry/namespaces/cli/upgrade.md new file mode 100644 index 0000000000..9d3954e410 --- /dev/null +++ b/docs/registry/namespaces/cli/upgrade.md @@ -0,0 +1,10 @@ + + + +# Cli + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/cloud/upgrade.md b/docs/registry/namespaces/cloud/upgrade.md new file mode 100644 index 0000000000..37de464bd9 --- /dev/null +++ b/docs/registry/namespaces/cloud/upgrade.md @@ -0,0 +1,10 @@ + + + +# Cloud + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/cloudfoundry/upgrade.md b/docs/registry/namespaces/cloudfoundry/upgrade.md new file mode 100644 index 0000000000..9c419d35ba --- /dev/null +++ b/docs/registry/namespaces/cloudfoundry/upgrade.md @@ -0,0 +1,10 @@ + + + +# CloudFoundry + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/container/upgrade.md b/docs/registry/namespaces/container/upgrade.md new file mode 100644 index 0000000000..7f30427a34 --- /dev/null +++ b/docs/registry/namespaces/container/upgrade.md @@ -0,0 +1,10 @@ + + + +# Container + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/cpu/upgrade.md b/docs/registry/namespaces/cpu/upgrade.md new file mode 100644 index 0000000000..7711ca8836 --- /dev/null +++ b/docs/registry/namespaces/cpu/upgrade.md @@ -0,0 +1,16 @@ + + + +# CPU + +The upgrade process helps to document what is needed to upgrade the signals to the latest version. + +## Metrics + +| Old Signal Name | Action | New Signal Name | Summary | +| --- | --- | --- | --- | +| cpu.time | `Rename` | system.cpu.time | Replaced by `system.cpu.time`. | +| cpu.utilization | `Rename` | system.cpu.utilization | Replaced by `system.cpu.utilization`. | +| cpu.frequency | `Rename` | system.cpu.frequency | Replaced by `system.cpu.frequency`. | + + diff --git a/docs/registry/namespaces/cpython/upgrade.md b/docs/registry/namespaces/cpython/upgrade.md new file mode 100644 index 0000000000..680b9ab2cd --- /dev/null +++ b/docs/registry/namespaces/cpython/upgrade.md @@ -0,0 +1,10 @@ + + + +# CPython + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/db/upgrade.md b/docs/registry/namespaces/db/upgrade.md new file mode 100644 index 0000000000..88dcf10ebc --- /dev/null +++ b/docs/registry/namespaces/db/upgrade.md @@ -0,0 +1,33 @@ + + + +# DB + +The upgrade process helps to document what is needed to upgrade the signals to the latest version. + +## Metrics + +| Old Signal Name | Action | New Signal Name | Summary | +| --- | --- | --- | --- | +| db.client.connections.usage | `Rename` | db.client.connection.count | Replaced by `db.client.connection.count`. | +| db.client.connections.idle.max | `Rename` | db.client.connection.idle.max | Replaced by `db.client.connection.idle.max`. | +| db.client.connections.idle.min | `Rename` | db.client.connection.idle.min | Replaced by `db.client.connection.idle.min`. | +| db.client.connections.max | `Rename` | db.client.connection.max | Replaced by `db.client.connection.max`. | +| db.client.connections.pending_requests | `Rename` | db.client.connection.pending_requests | Replaced by `db.client.connection.pending_requests`. | +| db.client.connections.timeouts | `Rename` | db.client.connection.timeouts | Replaced by `db.client.connection.timeouts`. | +| db.client.connections.create_time | `Update` | | Replaced by `db.client.connection.create_time` with unit `s`. | +| db.client.connections.wait_time | `Update` | | Replaced by `db.client.connection.wait_time` with unit `s`. | +| db.client.connections.use_time | `Update` | | Replaced by `db.client.connection.use_time` with unit `s`. | +| db.client.cosmosdb.operation.request_charge | `Rename` | azure.cosmosdb.client.operation.request_charge | Replaced by `azure.cosmosdb.client.operation.request_charge`. | +| db.client.cosmosdb.active_instance.count | `Rename` | azure.cosmosdb.client.active_instance.count | Replaced by `azure.cosmosdb.client.active_instance.count`. | + +## Attribute Changes + +| Signal Name | Signal Type | Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | --- | --- | +| db.client.operation.duration | metric | db.system | `Rename` | db.system.name | Replaced by `db.system.name`. | +| db.client.response.returned_rows | metric | db.system | `Rename` | db.system.name | Replaced by `db.system.name`. | +| span.db.client | span | db.connection_string | `Update` | | Replaced by `server.address` and `server.port`. | +| span.db.client | span | db.instance.id | `Drop` | | Removed, no general replacement at this time. For Elasticsearch, use `db.elasticsearch.node.name` instead. | +| span.db.client | span | db.system | `Rename` | db.system.name | Replaced by `db.system.name`. | +| span.db.client | span | db.user | `Drop` | | Removed, no replacement at this time. | diff --git a/docs/registry/namespaces/deployment/upgrade.md b/docs/registry/namespaces/deployment/upgrade.md new file mode 100644 index 0000000000..871eb3006b --- /dev/null +++ b/docs/registry/namespaces/deployment/upgrade.md @@ -0,0 +1,10 @@ + + + +# Deployment + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/device/upgrade.md b/docs/registry/namespaces/device/upgrade.md new file mode 100644 index 0000000000..b6c75d504d --- /dev/null +++ b/docs/registry/namespaces/device/upgrade.md @@ -0,0 +1,10 @@ + + + +# Device + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/dns/upgrade.md b/docs/registry/namespaces/dns/upgrade.md new file mode 100644 index 0000000000..df7f31f111 --- /dev/null +++ b/docs/registry/namespaces/dns/upgrade.md @@ -0,0 +1,10 @@ + + + +# DNS + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/dotnet/upgrade.md b/docs/registry/namespaces/dotnet/upgrade.md new file mode 100644 index 0000000000..7314edbb89 --- /dev/null +++ b/docs/registry/namespaces/dotnet/upgrade.md @@ -0,0 +1,10 @@ + + + +# Dotnet + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/dynamodb/upgrade.md b/docs/registry/namespaces/dynamodb/upgrade.md new file mode 100644 index 0000000000..bdb475ee3b --- /dev/null +++ b/docs/registry/namespaces/dynamodb/upgrade.md @@ -0,0 +1,10 @@ + + + +# DynamoDB + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/exception/upgrade.md b/docs/registry/namespaces/exception/upgrade.md new file mode 100644 index 0000000000..f2f3d9463c --- /dev/null +++ b/docs/registry/namespaces/exception/upgrade.md @@ -0,0 +1,14 @@ + + + +# Exception + +The upgrade process helps to document what is needed to upgrade the signals to the latest version. + + + +## Attribute Changes + +| Signal Name | Signal Type | Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | --- | --- | +| exception | event | exception.escaped | `Drop` | | It's no longer recommended to record exceptions that are handled and do not escape the scope of a span. | diff --git a/docs/registry/namespaces/faas/upgrade.md b/docs/registry/namespaces/faas/upgrade.md new file mode 100644 index 0000000000..1e0d8e3b50 --- /dev/null +++ b/docs/registry/namespaces/faas/upgrade.md @@ -0,0 +1,10 @@ + + + +# Faas + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/feature-flag/upgrade.md b/docs/registry/namespaces/feature-flag/upgrade.md new file mode 100644 index 0000000000..943ffb731d --- /dev/null +++ b/docs/registry/namespaces/feature-flag/upgrade.md @@ -0,0 +1,10 @@ + + + +# Feature Flag + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/gcp/upgrade.md b/docs/registry/namespaces/gcp/upgrade.md new file mode 100644 index 0000000000..04161d6abe --- /dev/null +++ b/docs/registry/namespaces/gcp/upgrade.md @@ -0,0 +1,10 @@ + + + +# GCP + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/gen-ai/upgrade.md b/docs/registry/namespaces/gen-ai/upgrade.md new file mode 100644 index 0000000000..2999b12eb2 --- /dev/null +++ b/docs/registry/namespaces/gen-ai/upgrade.md @@ -0,0 +1,18 @@ + + + +# Gen AI + +The upgrade process helps to document what is needed to upgrade the signals to the latest version. + +## Events + +| Old Signal Name | Action | New Signal Name | Summary | +| --- | --- | --- | --- | +| gen_ai.assistant.message | `Update` | | Chat history is reported on `gen_ai.input.messages` attribute on spans or `gen_ai.client.inference.operation.details` event. | +| gen_ai.choice | `Update` | | Chat history is reported on `gen_ai.output.messages` attribute on spans or `gen_ai.client.inference.operation.details` event. | +| gen_ai.system.message | `Update` | | Chat history is reported on `gen_ai.system_instructions` attribute on spans or `gen_ai.client.inference.operation.details` event. | +| gen_ai.tool.message | `Update` | | Chat history is reported on `gen_ai.input.messages` attribute on spans or `gen_ai.client.inference.operation.details` event. | +| gen_ai.user.message | `Update` | | Chat history is reported on `gen_ai.input.messages` attribute on spans or `gen_ai.client.inference.operation.details` event. | + + diff --git a/docs/registry/namespaces/go/upgrade.md b/docs/registry/namespaces/go/upgrade.md new file mode 100644 index 0000000000..c5800675f9 --- /dev/null +++ b/docs/registry/namespaces/go/upgrade.md @@ -0,0 +1,10 @@ + + + +# Go + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/graphql/upgrade.md b/docs/registry/namespaces/graphql/upgrade.md new file mode 100644 index 0000000000..c673f4e979 --- /dev/null +++ b/docs/registry/namespaces/graphql/upgrade.md @@ -0,0 +1,10 @@ + + + +# GraphQL + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/heroku/upgrade.md b/docs/registry/namespaces/heroku/upgrade.md new file mode 100644 index 0000000000..4bd682b4ea --- /dev/null +++ b/docs/registry/namespaces/heroku/upgrade.md @@ -0,0 +1,10 @@ + + + +# Heroku + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/host/upgrade.md b/docs/registry/namespaces/host/upgrade.md new file mode 100644 index 0000000000..64d97a3ddc --- /dev/null +++ b/docs/registry/namespaces/host/upgrade.md @@ -0,0 +1,10 @@ + + + +# Host + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/http/upgrade.md b/docs/registry/namespaces/http/upgrade.md new file mode 100644 index 0000000000..9010cca152 --- /dev/null +++ b/docs/registry/namespaces/http/upgrade.md @@ -0,0 +1,19 @@ + + + +# HTTP + +The upgrade process helps to document what is needed to upgrade the signals to the latest version. + + + +## Attribute Changes + +| Signal Name | Signal Type | Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | --- | --- | +| http.server.active_requests | metric | http.method | `Rename` | http.request.method | Replaced by `http.request.method`. | +| http.server.active_requests | metric | http.scheme | `Rename` | url.scheme | Replaced by `url.scheme`. | +| http.server.active_requests | metric | net.host.name | `Rename` | server.address | Replaced by `server.address`. | +| http.server.active_requests | metric | net.host.port | `Rename` | server.port | Replaced by `server.port`. | +| span.http.client | span | http.method | `Rename` | http.request.method | Replaced by `http.request.method`. | +| span.http.server | span | http.method | `Rename` | http.request.method | Replaced by `http.request.method`. | diff --git a/docs/registry/namespaces/hw/upgrade.md b/docs/registry/namespaces/hw/upgrade.md new file mode 100644 index 0000000000..58498fad72 --- /dev/null +++ b/docs/registry/namespaces/hw/upgrade.md @@ -0,0 +1,10 @@ + + + +# Hw + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/jvm/upgrade.md b/docs/registry/namespaces/jvm/upgrade.md new file mode 100644 index 0000000000..a389956772 --- /dev/null +++ b/docs/registry/namespaces/jvm/upgrade.md @@ -0,0 +1,14 @@ + + + +# JVM + +The upgrade process helps to document what is needed to upgrade the signals to the latest version. + +## Metrics + +| Old Signal Name | Action | New Signal Name | Summary | +| --- | --- | --- | --- | +| jvm.buffer.memory.usage | `Rename` | jvm.buffer.memory.used | Replaced by `jvm.buffer.memory.used`. | + + diff --git a/docs/registry/namespaces/k8s/upgrade.md b/docs/registry/namespaces/k8s/upgrade.md new file mode 100644 index 0000000000..c225e81ea5 --- /dev/null +++ b/docs/registry/namespaces/k8s/upgrade.md @@ -0,0 +1,15 @@ + + + +# K8s + +The upgrade process helps to document what is needed to upgrade the signals to the latest version. + +## Metrics + +| Old Signal Name | Action | New Signal Name | Summary | +| --- | --- | --- | --- | +| k8s.replication_controller.desired_pods | `Rename` | k8s.replicationcontroller.desired_pods | Replaced by `k8s.replicationcontroller.desired_pods`. | +| k8s.replication_controller.available_pods | `Rename` | k8s.replicationcontroller.available_pods | Replaced by `k8s.replicationcontroller.available_pods`. | + + diff --git a/docs/registry/namespaces/kestrel/upgrade.md b/docs/registry/namespaces/kestrel/upgrade.md new file mode 100644 index 0000000000..122e21d4bc --- /dev/null +++ b/docs/registry/namespaces/kestrel/upgrade.md @@ -0,0 +1,10 @@ + + + +# Kestrel + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/messaging/upgrade.md b/docs/registry/namespaces/messaging/upgrade.md new file mode 100644 index 0000000000..56902cc79f --- /dev/null +++ b/docs/registry/namespaces/messaging/upgrade.md @@ -0,0 +1,26 @@ + + + +# Messaging + +The upgrade process helps to document what is needed to upgrade the signals to the latest version. + +## Metrics + +| Old Signal Name | Action | New Signal Name | Summary | +| --- | --- | --- | --- | +| messaging.publish.duration | `Rename` | messaging.client.operation.duration | Replaced by `messaging.client.operation.duration`. | +| messaging.receive.duration | `Rename` | messaging.client.operation.duration | Replaced by `messaging.client.operation.duration`. | +| messaging.process.messages | `Rename` | messaging.client.consumed.messages | Replaced by `messaging.client.consumed.messages`. | +| messaging.publish.messages | `Rename` | messaging.client.sent.messages | Replaced by `messaging.client.sent.messages`. | +| messaging.receive.messages | `Rename` | messaging.client.consumed.messages | Replaced by `messaging.client.consumed.messages`. | +| messaging.client.published.messages | `Rename` | messaging.client.sent.messages | Replaced by `messaging.client.sent.messages`. | + +## Attribute Changes + +| Signal Name | Signal Type | Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | --- | --- | +| messaging.client.consumed.messages | metric | messaging.operation | `Migrate` | messaging.operation.name | Replaced by `messaging.operation.name`. | +| messaging.client.operation.duration | metric | messaging.operation | `Migrate` | messaging.operation.type | Replaced by `messaging.operation.type`. | +| messaging.client.sent.messages | metric | messaging.operation | `Migrate` | messaging.operation.name | Replaced by `messaging.operation.name`. | +| messaging.process.duration | metric | messaging.operation | `Migrate` | messaging.operation.name | Replaced by `messaging.operation.name`. | diff --git a/docs/registry/namespaces/nfs/upgrade.md b/docs/registry/namespaces/nfs/upgrade.md new file mode 100644 index 0000000000..f6a7cad19b --- /dev/null +++ b/docs/registry/namespaces/nfs/upgrade.md @@ -0,0 +1,10 @@ + + + +# NFS + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/nodejs/upgrade.md b/docs/registry/namespaces/nodejs/upgrade.md new file mode 100644 index 0000000000..59740025c9 --- /dev/null +++ b/docs/registry/namespaces/nodejs/upgrade.md @@ -0,0 +1,10 @@ + + + +# NodeJS + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/openai/upgrade.md b/docs/registry/namespaces/openai/upgrade.md new file mode 100644 index 0000000000..76e91205ab --- /dev/null +++ b/docs/registry/namespaces/openai/upgrade.md @@ -0,0 +1,10 @@ + + + +# OpenAI + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/os/upgrade.md b/docs/registry/namespaces/os/upgrade.md new file mode 100644 index 0000000000..9f20b18095 --- /dev/null +++ b/docs/registry/namespaces/os/upgrade.md @@ -0,0 +1,10 @@ + + + +# OS + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/otel/upgrade.md b/docs/registry/namespaces/otel/upgrade.md new file mode 100644 index 0000000000..b6716cb5d3 --- /dev/null +++ b/docs/registry/namespaces/otel/upgrade.md @@ -0,0 +1,19 @@ + + + +# OTel + +The upgrade process helps to document what is needed to upgrade the signals to the latest version. + +## Metrics + +| Old Signal Name | Action | New Signal Name | Summary | +| --- | --- | --- | --- | +| otel.sdk.span.live.count | `Rename` | otel.sdk.span.live | Replaced by `otel.sdk.span.live`. | +| otel.sdk.span.ended.count | `Drop` | | Obsoleted. | +| otel.sdk.processor.span.processed.count | `Rename` | otel.sdk.processor.span.processed | Replaced by `otel.sdk.processor.span.processed`. | +| otel.sdk.exporter.span.inflight.count | `Rename` | otel.sdk.exporter.span.inflight | Replaced by `otel.sdk.exporter.span.inflight`. | +| otel.sdk.exporter.span.exported.count | `Rename` | otel.sdk.exporter.span.exported | Replaced by `otel.sdk.exporter.span.exported`. | +| otel.sdk.span.ended | `Drop` | | Obsoleted. | + + diff --git a/docs/registry/namespaces/process/upgrade.md b/docs/registry/namespaces/process/upgrade.md new file mode 100644 index 0000000000..4e8afe3957 --- /dev/null +++ b/docs/registry/namespaces/process/upgrade.md @@ -0,0 +1,10 @@ + + + +# Process + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/rpc/upgrade.md b/docs/registry/namespaces/rpc/upgrade.md new file mode 100644 index 0000000000..b4b8ceba2a --- /dev/null +++ b/docs/registry/namespaces/rpc/upgrade.md @@ -0,0 +1,10 @@ + + + +# RPC + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/service/upgrade.md b/docs/registry/namespaces/service/upgrade.md new file mode 100644 index 0000000000..2acb5325c4 --- /dev/null +++ b/docs/registry/namespaces/service/upgrade.md @@ -0,0 +1,10 @@ + + + +# Service + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/session/upgrade.md b/docs/registry/namespaces/session/upgrade.md new file mode 100644 index 0000000000..3e5532a8dd --- /dev/null +++ b/docs/registry/namespaces/session/upgrade.md @@ -0,0 +1,10 @@ + + + +# Session + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/signalr/upgrade.md b/docs/registry/namespaces/signalr/upgrade.md new file mode 100644 index 0000000000..0eb7819cf0 --- /dev/null +++ b/docs/registry/namespaces/signalr/upgrade.md @@ -0,0 +1,10 @@ + + + +# SignalR + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/system/upgrade.md b/docs/registry/namespaces/system/upgrade.md new file mode 100644 index 0000000000..b60be4aec2 --- /dev/null +++ b/docs/registry/namespaces/system/upgrade.md @@ -0,0 +1,14 @@ + + + +# System + +The upgrade process helps to document what is needed to upgrade the signals to the latest version. + +## Metrics + +| Old Signal Name | Action | New Signal Name | Summary | +| --- | --- | --- | --- | +| system.network.connections | `Rename` | system.network.connection.count | Replaced by `system.network.connection.count`. | + + diff --git a/docs/registry/namespaces/telemetry/upgrade.md b/docs/registry/namespaces/telemetry/upgrade.md new file mode 100644 index 0000000000..19596817b2 --- /dev/null +++ b/docs/registry/namespaces/telemetry/upgrade.md @@ -0,0 +1,10 @@ + + + +# Telemetry + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/v8js/upgrade.md b/docs/registry/namespaces/v8js/upgrade.md new file mode 100644 index 0000000000..91aa8b3ca5 --- /dev/null +++ b/docs/registry/namespaces/v8js/upgrade.md @@ -0,0 +1,10 @@ + + + +# V8js + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/vcs/upgrade.md b/docs/registry/namespaces/vcs/upgrade.md new file mode 100644 index 0000000000..5ac53194bf --- /dev/null +++ b/docs/registry/namespaces/vcs/upgrade.md @@ -0,0 +1,10 @@ + + + +# VCS + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/webengine/upgrade.md b/docs/registry/namespaces/webengine/upgrade.md new file mode 100644 index 0000000000..278800e702 --- /dev/null +++ b/docs/registry/namespaces/webengine/upgrade.md @@ -0,0 +1,10 @@ + + + +# Webengine + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/docs/registry/namespaces/zos/upgrade.md b/docs/registry/namespaces/zos/upgrade.md new file mode 100644 index 0000000000..1a7a189318 --- /dev/null +++ b/docs/registry/namespaces/zos/upgrade.md @@ -0,0 +1,10 @@ + + + +# zOS + +No upgrade process is documented as no deprecations can be found. + + + + diff --git a/templates/registry/markdown/attribute_table.j2 b/templates/registry/markdown/attribute_table.j2 index a4b4ca747d..1c9c1d24b6 100644 --- a/templates/registry/markdown/attribute_table.j2 +++ b/templates/registry/markdown/attribute_table.j2 @@ -1,6 +1,5 @@ {% import 'requirement.j2' as requirement %} {% import 'stability.j2' as stability %} -{% import 'deprecation_action.j2' as action %} {% import 'notes.j2' as notes %} {% import 'attribute_macros.j2' as attrs %} {% import 'enum_macros.j2' as enums %} @@ -9,18 +8,6 @@ {#- Macro for creating attribute table -#} {% macro generate(attributes, tag_filter, attribute_registry_base_url, lineage_attributes) %}{% if (tag_filter | length == 0) %}{% set filtered_attributes = attributes | rejectattr("deprecated") | attribute_sort %}{% else %}{% set filtered_attributes = attributes | rejectattr("deprecated") | selectattr("tag", "in", tag_filter) | attribute_sort %}{% endif %}{% if (filtered_attributes is defined) and (filtered_attributes | length > 0) %}| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability | |---|---|---|---|---|---| -{% for attribute in filtered_attributes if attribute.deprecated is not defined or attribute.deprecated is none %}| {{ attrs.name_with_link(attribute, attribute_registry_base_url, lineage_attributes) }} | {{ attrs.type(attribute) }} | {{ attribute.brief | trim }}{{ notes.add({"note": attribute.note, "name": attrs.name(attribute)}) }} | {{ examples.format(attribute) | trim }} | {{ requirement.render({"level": attribute.requirement_level, "name": attrs.name(attribute), "deprecated": attribute.deprecated}, notes) | trim }} | {{ stability.badge(attribute.stability, attribute.deprecated, attribute.brief) | trim }} | +{% for attribute in filtered_attributes | attribute_sort %}| {{ attrs.name_with_link(attribute, attribute_registry_base_url, lineage_attributes) }} | {{ attrs.type(attribute) }} | {{ attribute.brief | trim }}{{ notes.add({"note": attribute.note, "name": attrs.name(attribute)}) }} | {{ examples.format(attribute) | trim }} | {{ requirement.render({"level": attribute.requirement_level, "name": attrs.name(attribute)}, notes) | trim }} | {{ stability.badge(attribute.stability, attribute.deprecated, attribute.brief) | trim }} | {% endfor %}{{ notes.render() }}{{ sampling.snippet(filtered_attributes, attribute_registry_base_url, lineage_attributes) }}{{ enums.tables(filtered_attributes | selectattr("type", "mapping"), notes) }} -{% endif %}{{ generate_deprecated(attributes, tag_filter, attribute_registry_base_url, lineage_attributes)}}{% endmacro %} - -{#- Macro for creating deprecated attribute table -#} -{% macro generate_deprecated(attributes, tag_filter, attribute_registry_base_url, lineage_attributes) %}{% if (tag_filter | length == 0) %}{% set filtered_attributes = attributes | selectattr("deprecated") | attribute_sort %}{% else %}{% set filtered_attributes = attributes | selectattr("tag", "in", tag_filter) | attribute_sort %}{% endif %}{% if (filtered_attributes is defined) and (filtered_attributes | length > 0) %}
-Past Attributes: - -| Key | Type | Summary | Example Values | Deprecation Action | Deprecation Explanation | -|---|---|---|---|---|---| -{% for attribute in filtered_attributes %}| {{ attrs.name_with_link(attribute, attribute_registry_base_url, lineage_attributes) }} | {{ attrs.type(attribute) }} | {{ attribute.brief | trim }}{{ notes.add({"note": attribute.note, "name": attrs.name(attribute)}) }} | {{ examples.format(attribute) | trim }} | {{ action.render({"level": attribute.requirement_level, "name": attrs.name(attribute), "deprecated": attribute.deprecated, "annotations": attribute.annotations}, notes) | trim }} | {% if attribute.deprecated.reason == "renamed" %} Use {{ attrs.renamed_to_with_link(attribute.deprecated.renamed_to, attribute_registry_base_url, lineage_attributes) }} instead. {% else %} {{attribute.deprecated.note | trim}} {% endif %} | -{% endfor %}{{ notes.render() }}{{ sampling.snippet(filtered_attributes, attribute_registry_base_url, lineage_attributes) }}{{ enums.tables(filtered_attributes | selectattr("type", "mapping"), notes) }} -
- {% endif %}{% endmacro %} diff --git a/templates/registry/markdown/deprecation_action.j2 b/templates/registry/markdown/deprecation_action.j2 index 25df50e735..13f58f0942 100644 --- a/templates/registry/markdown/deprecation_action.j2 +++ b/templates/registry/markdown/deprecation_action.j2 @@ -1,9 +1,9 @@ {% macro render(attr, notes) -%} -{%- if attr.annotations is defined and attr.annotations.stability_envvar == true and attr.deprecated.reason == "renamed" %}`Migrate` -{% elif attr.annotations is not defined and attr.deprecated.reason == "renamed" %}`Rename` -{% elif attr.annotations is defined and attr.annotations.stability_envvar == true and attr.deprecated.reason == "obsoleted" %}`Remove` -{% elif attr.deprecated.reason == "obsoleted" %}`Drop` -{% elif attr.deprecated.reason == "uncategorized" %}`Update` +{%- if attr.annotations is defined and attr.annotations.stability_envvar == true and attr.deprecated.reason | lower == "renamed" %}`Migrate` +{% elif (attr.annotations is not defined or attr.annotations.stability_envvar != true) and attr.deprecated.reason | lower == "renamed" %}`Rename` +{% elif attr.annotations is defined and attr.annotations.stability_envvar == true and attr.deprecated.reason | lower == "obsoleted" %}`Remove` +{% elif attr.deprecated.reason | lower == "obsoleted" %}`Drop` +{% elif attr.deprecated.reason | lower == "uncategorized" %}`Update` {% else %}Unknown {%- endif %} {% endmacro %} diff --git a/templates/registry/markdown/upgrade_namespace.md.j2 b/templates/registry/markdown/upgrade_namespace.md.j2 new file mode 100644 index 0000000000..31c647387a --- /dev/null +++ b/templates/registry/markdown/upgrade_namespace.md.j2 @@ -0,0 +1,15 @@ + + +{%- import 'stability.j2' as stability -%} +{%- import 'attribute_macros.j2' as attrs -%} +{%- import 'deprecation_action.j2' as action -%} +{% import 'upgrade_table.j2' as upgrade %} + +# {{ ctx.id | title_case | acronym }} + +{{upgrade.message(ctx.groups) | trim}} + +{{upgrade.signalTables(ctx.groups) | trim}} + +{{upgrade.attributeBlock(ctx.groups) | trim}} + diff --git a/templates/registry/markdown/upgrade_table.j2 b/templates/registry/markdown/upgrade_table.j2 new file mode 100644 index 0000000000..2d7bb2b8eb --- /dev/null +++ b/templates/registry/markdown/upgrade_table.j2 @@ -0,0 +1,66 @@ +{% import 'deprecation_action.j2' as action %} + +{% macro message (groups) %} +{% set deprecated = groups | selectattr("deprecated") %} +{% set deprecatedSignals = namespace(attributes = []) %} + +{% set signals = groups | rejectattr("deprecated") | selectattr("attributes") %} + +{% for signal in signals %} +{% for deprecated in signal.attributes | selectattr("deprecated") %} +{% set temp = {'signal': signal, 'attribute': deprecated }%} +{% set deprecatedSignals.attributes = deprecatedSignals.attributes + [temp] %} +{% endfor %}{% endfor %} + +{% if deprecatedSignals.attributes or deprecated %} +The upgrade process helps to document what is needed to upgrade the signals to the latest version. +{% else %} +No upgrade process is documented as no deprecations can be found. +{% endif %} + +{% endmacro %} + +{% macro signalTable(name, signals) %} +{% if signals %} + +## {{name}} + +| Old Signal Name | Action | New Signal Name | Summary | +| --- | --- | --- | --- | +{% for signal in signals | sort(attribute = "name") %}| {% if signal.name %}{{ signal.name }}{% elif signal.metric_name %}{{signal.metric_name}}{% else %}{{signal.id}}{% endif %} | {{ action.render({"deprecated": signal.deprecated, "annotations": signal.annotations}, "") | trim}} | {{ signal.deprecated.renamed_to }} | {{ signal.deprecated.note | trim }} | +{% endfor %} +{% endif %} +{% endmacro %} + +{% macro signalTables(groups) %} +{% set deprecated = groups | selectattr("deprecated") %} +{% if deprecated %} +{% set events = deprecated | selectattr("type", "eq", "event") %} +{{ signalTable("Events", events) | trim }} +{% set metrics = deprecated | selectattr("type", "eq", "metric") %} +{{signalTable("Metrics", metrics) | trim }} +{% set spans = deprecated | selectattr("type", "eq", "span") %} +{{signalTable("Spans", spans) | trim }} +{%endif%} +{% endmacro %} + +{% macro attributeBlock(groups) %} +{% set deprecatedSignals = namespace(attributes = []) %} + +{% set signals = groups | rejectattr("deprecated") | selectattr("attributes") %} + +{% for signal in signals %} +{% for deprecated in signal.attributes | selectattr("deprecated") %} +{% set temp = {'signal': signal, 'attribute': deprecated }%} +{% set deprecatedSignals.attributes = deprecatedSignals.attributes + [temp] %} +{% endfor %}{% endfor %} + +{% if deprecatedSignals.attributes %} +## Attribute Changes + +| Signal Name | Signal Type | Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | --- | --- | +{% for attr in deprecatedSignals.attributes | sort(attribute = "attribute.name") | sort(attribute = "signal.id") %}| {% if attr.signal.name %}{{ attr.signal.name }}{% elif attr.signal.metric_name %}{{attr.signal.metric_name}}{% else %}{{attr.signal.id}}{% endif %} | {{attr.signal.type}} | {{attr.attribute.name}} | {{ action.render({"deprecated": attr.attribute.deprecated, "annotations": attr.attribute.annotations}, "") | trim}} | {{ attr.attribute.deprecated.renamed_to }} | {{ attr.attribute.deprecated.note |trim}} | +{% endfor %} +{% endif %} +{% endmacro %} \ No newline at end of file diff --git a/templates/registry/markdown/weaver.yaml b/templates/registry/markdown/weaver.yaml index e364b47d17..715fc086c7 100644 --- a/templates/registry/markdown/weaver.yaml +++ b/templates/registry/markdown/weaver.yaml @@ -19,6 +19,10 @@ templates: filter: '.groups | map(select(.type == "entity")) | group_by(.name | split(".") | .[0]) | map({id: .[0].id | split(".") | .[1], groups: .})' application_mode: each file_name: 'entities/{{ ctx.id | kebab_case }}.md' + - pattern: upgrade_namespace.md.j2 + filter: '.groups | map(select(.type != "attribute_group")) | group_by(.id | split(".") | .[1]) | map({id: .[0].id | split(".") | .[1], groups: .})' + application_mode: each + file_name: 'namespaces/{{ ctx.id | kebab_case }}/upgrade.md' acronyms: - AI - AWS From 777a83cc176c5a86f82082e9e0c9a774b52772e0 Mon Sep 17 00:00:00 2001 From: James Thompson Date: Sun, 28 Sep 2025 12:45:19 +1000 Subject: [PATCH 13/14] Change layout for better visualisation --- docs/registry/namespaces/android/upgrade.md | 4 - docs/registry/namespaces/app/upgrade.md | 4 - .../registry/namespaces/aspnetcore/upgrade.md | 4 - docs/registry/namespaces/aws/upgrade.md | 4 - docs/registry/namespaces/az/upgrade.md | 20 +- docs/registry/namespaces/azure/upgrade.md | 4 - docs/registry/namespaces/browser/upgrade.md | 4 - docs/registry/namespaces/cicd/upgrade.md | 4 - docs/registry/namespaces/cli/upgrade.md | 4 - docs/registry/namespaces/cloud/upgrade.md | 4 - .../namespaces/cloudfoundry/upgrade.md | 4 - docs/registry/namespaces/container/upgrade.md | 4 - docs/registry/namespaces/cpu/upgrade.md | 40 +++- docs/registry/namespaces/cpython/upgrade.md | 4 - docs/registry/namespaces/db/upgrade.md | 215 +++++++++++++++--- .../registry/namespaces/deployment/upgrade.md | 4 - docs/registry/namespaces/device/upgrade.md | 4 - docs/registry/namespaces/dns/upgrade.md | 4 - docs/registry/namespaces/dotnet/upgrade.md | 4 - docs/registry/namespaces/dynamodb/upgrade.md | 4 - docs/registry/namespaces/exception/upgrade.md | 10 +- docs/registry/namespaces/faas/upgrade.md | 4 - .../namespaces/feature-flag/upgrade.md | 4 - docs/registry/namespaces/gcp/upgrade.md | 4 - docs/registry/namespaces/gen-ai/upgrade.md | 54 ++++- docs/registry/namespaces/go/upgrade.md | 4 - docs/registry/namespaces/graphql/upgrade.md | 4 - docs/registry/namespaces/heroku/upgrade.md | 4 - docs/registry/namespaces/host/upgrade.md | 4 - docs/registry/namespaces/http/upgrade.md | 36 ++- docs/registry/namespaces/hw/upgrade.md | 4 - docs/registry/namespaces/jvm/upgrade.md | 12 +- docs/registry/namespaces/k8s/upgrade.md | 23 +- docs/registry/namespaces/kestrel/upgrade.md | 4 - docs/registry/namespaces/messaging/upgrade.md | 140 ++++++++++-- docs/registry/namespaces/nfs/upgrade.md | 4 - docs/registry/namespaces/nodejs/upgrade.md | 4 - docs/registry/namespaces/openai/upgrade.md | 4 - docs/registry/namespaces/os/upgrade.md | 4 - docs/registry/namespaces/otel/upgrade.md | 63 ++++- docs/registry/namespaces/process/upgrade.md | 4 - docs/registry/namespaces/rpc/upgrade.md | 4 - docs/registry/namespaces/service/upgrade.md | 4 - docs/registry/namespaces/session/upgrade.md | 4 - docs/registry/namespaces/signalr/upgrade.md | 4 - docs/registry/namespaces/system/upgrade.md | 12 +- docs/registry/namespaces/telemetry/upgrade.md | 4 - docs/registry/namespaces/v8js/upgrade.md | 4 - docs/registry/namespaces/vcs/upgrade.md | 4 - docs/registry/namespaces/webengine/upgrade.md | 4 - docs/registry/namespaces/zos/upgrade.md | 4 - .../registry/markdown/attribute_macros.j2 | 2 - .../registry/markdown/upgrade_namespace.md.j2 | 6 +- templates/registry/markdown/upgrade_table.j2 | 141 ++++++++---- 54 files changed, 632 insertions(+), 302 deletions(-) diff --git a/docs/registry/namespaces/android/upgrade.md b/docs/registry/namespaces/android/upgrade.md index 997753a1ae..4069322dd2 100644 --- a/docs/registry/namespaces/android/upgrade.md +++ b/docs/registry/namespaces/android/upgrade.md @@ -4,7 +4,3 @@ # Android No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/app/upgrade.md b/docs/registry/namespaces/app/upgrade.md index b120c7c2a6..11ba02e2cc 100644 --- a/docs/registry/namespaces/app/upgrade.md +++ b/docs/registry/namespaces/app/upgrade.md @@ -4,7 +4,3 @@ # App No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/aspnetcore/upgrade.md b/docs/registry/namespaces/aspnetcore/upgrade.md index 126a49dd56..e5f3f94d5e 100644 --- a/docs/registry/namespaces/aspnetcore/upgrade.md +++ b/docs/registry/namespaces/aspnetcore/upgrade.md @@ -4,7 +4,3 @@ # Aspnetcore No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/aws/upgrade.md b/docs/registry/namespaces/aws/upgrade.md index 78b2e84f5f..a3d80b009d 100644 --- a/docs/registry/namespaces/aws/upgrade.md +++ b/docs/registry/namespaces/aws/upgrade.md @@ -4,7 +4,3 @@ # AWS No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/az/upgrade.md b/docs/registry/namespaces/az/upgrade.md index 5b70f24288..2eb06f46b0 100644 --- a/docs/registry/namespaces/az/upgrade.md +++ b/docs/registry/namespaces/az/upgrade.md @@ -5,10 +5,22 @@ The upgrade process helps to document what is needed to upgrade the signals to the latest version. -## Events +## event -| Old Signal Name | Action | New Signal Name | Summary | -| --- | --- | --- | --- | -| az.resource.log | `Rename` | azure.resource.log | Replaced by `azure.resource.log`. | +### event: `event.az.resource.log` + +Replaced by `azure.resource.log`. + +#### Property Changes +| Property | Old Value | New Value | +| --- | --- | --- | +| Name | az.resource.log | azure.resource.log | +Note: You will need to check what other attributes/properties need to be updated. + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| az.service_request_id | `Rename` | azure.service.request.id | Replaced by `azure.service.request.id`. | diff --git a/docs/registry/namespaces/azure/upgrade.md b/docs/registry/namespaces/azure/upgrade.md index cb5ffcbb7f..67ad4da795 100644 --- a/docs/registry/namespaces/azure/upgrade.md +++ b/docs/registry/namespaces/azure/upgrade.md @@ -4,7 +4,3 @@ # Azure No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/browser/upgrade.md b/docs/registry/namespaces/browser/upgrade.md index a24fac59bb..89f9004b52 100644 --- a/docs/registry/namespaces/browser/upgrade.md +++ b/docs/registry/namespaces/browser/upgrade.md @@ -4,7 +4,3 @@ # Browser No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/cicd/upgrade.md b/docs/registry/namespaces/cicd/upgrade.md index 945bf4c8d1..a30e1c28b7 100644 --- a/docs/registry/namespaces/cicd/upgrade.md +++ b/docs/registry/namespaces/cicd/upgrade.md @@ -4,7 +4,3 @@ # CICD No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/cli/upgrade.md b/docs/registry/namespaces/cli/upgrade.md index 9d3954e410..fe9b0e58de 100644 --- a/docs/registry/namespaces/cli/upgrade.md +++ b/docs/registry/namespaces/cli/upgrade.md @@ -4,7 +4,3 @@ # Cli No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/cloud/upgrade.md b/docs/registry/namespaces/cloud/upgrade.md index 37de464bd9..915555bf4a 100644 --- a/docs/registry/namespaces/cloud/upgrade.md +++ b/docs/registry/namespaces/cloud/upgrade.md @@ -4,7 +4,3 @@ # Cloud No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/cloudfoundry/upgrade.md b/docs/registry/namespaces/cloudfoundry/upgrade.md index 9c419d35ba..72f544459d 100644 --- a/docs/registry/namespaces/cloudfoundry/upgrade.md +++ b/docs/registry/namespaces/cloudfoundry/upgrade.md @@ -4,7 +4,3 @@ # CloudFoundry No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/container/upgrade.md b/docs/registry/namespaces/container/upgrade.md index 7f30427a34..80979a3bb9 100644 --- a/docs/registry/namespaces/container/upgrade.md +++ b/docs/registry/namespaces/container/upgrade.md @@ -4,7 +4,3 @@ # Container No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/cpu/upgrade.md b/docs/registry/namespaces/cpu/upgrade.md index 7711ca8836..463cb2f496 100644 --- a/docs/registry/namespaces/cpu/upgrade.md +++ b/docs/registry/namespaces/cpu/upgrade.md @@ -5,12 +5,40 @@ The upgrade process helps to document what is needed to upgrade the signals to the latest version. -## Metrics +## metric -| Old Signal Name | Action | New Signal Name | Summary | -| --- | --- | --- | --- | -| cpu.time | `Rename` | system.cpu.time | Replaced by `system.cpu.time`. | -| cpu.utilization | `Rename` | system.cpu.utilization | Replaced by `system.cpu.utilization`. | -| cpu.frequency | `Rename` | system.cpu.frequency | Replaced by `system.cpu.frequency`. | +### metric: `metric.cpu.time` +Replaced by `system.cpu.time`. +#### Property Changes + +| Property | Old Value | New Value | +| --- | --- | --- | +| Name | cpu.time | system.cpu.time | + +Note: You will need to check what other attributes/properties need to be updated. + +### metric: `metric.cpu.utilization` + +Replaced by `system.cpu.utilization`. + +#### Property Changes + +| Property | Old Value | New Value | +| --- | --- | --- | +| Name | cpu.utilization | system.cpu.utilization | + +Note: You will need to check what other attributes/properties need to be updated. + +### metric: `metric.cpu.frequency` + +Replaced by `system.cpu.frequency`. + +#### Property Changes + +| Property | Old Value | New Value | +| --- | --- | --- | +| Name | cpu.frequency | system.cpu.frequency | + +Note: You will need to check what other attributes/properties need to be updated. diff --git a/docs/registry/namespaces/cpython/upgrade.md b/docs/registry/namespaces/cpython/upgrade.md index 680b9ab2cd..19829d81f4 100644 --- a/docs/registry/namespaces/cpython/upgrade.md +++ b/docs/registry/namespaces/cpython/upgrade.md @@ -4,7 +4,3 @@ # CPython No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/db/upgrade.md b/docs/registry/namespaces/db/upgrade.md index 88dcf10ebc..14eda3e32f 100644 --- a/docs/registry/namespaces/db/upgrade.md +++ b/docs/registry/namespaces/db/upgrade.md @@ -5,29 +5,192 @@ The upgrade process helps to document what is needed to upgrade the signals to the latest version. -## Metrics - -| Old Signal Name | Action | New Signal Name | Summary | -| --- | --- | --- | --- | -| db.client.connections.usage | `Rename` | db.client.connection.count | Replaced by `db.client.connection.count`. | -| db.client.connections.idle.max | `Rename` | db.client.connection.idle.max | Replaced by `db.client.connection.idle.max`. | -| db.client.connections.idle.min | `Rename` | db.client.connection.idle.min | Replaced by `db.client.connection.idle.min`. | -| db.client.connections.max | `Rename` | db.client.connection.max | Replaced by `db.client.connection.max`. | -| db.client.connections.pending_requests | `Rename` | db.client.connection.pending_requests | Replaced by `db.client.connection.pending_requests`. | -| db.client.connections.timeouts | `Rename` | db.client.connection.timeouts | Replaced by `db.client.connection.timeouts`. | -| db.client.connections.create_time | `Update` | | Replaced by `db.client.connection.create_time` with unit `s`. | -| db.client.connections.wait_time | `Update` | | Replaced by `db.client.connection.wait_time` with unit `s`. | -| db.client.connections.use_time | `Update` | | Replaced by `db.client.connection.use_time` with unit `s`. | -| db.client.cosmosdb.operation.request_charge | `Rename` | azure.cosmosdb.client.operation.request_charge | Replaced by `azure.cosmosdb.client.operation.request_charge`. | -| db.client.cosmosdb.active_instance.count | `Rename` | azure.cosmosdb.client.active_instance.count | Replaced by `azure.cosmosdb.client.active_instance.count`. | - -## Attribute Changes - -| Signal Name | Signal Type | Old Attribute Key | Action | New Attribute Key | Summary | -| --- | --- | --- | --- | --- | --- | -| db.client.operation.duration | metric | db.system | `Rename` | db.system.name | Replaced by `db.system.name`. | -| db.client.response.returned_rows | metric | db.system | `Rename` | db.system.name | Replaced by `db.system.name`. | -| span.db.client | span | db.connection_string | `Update` | | Replaced by `server.address` and `server.port`. | -| span.db.client | span | db.instance.id | `Drop` | | Removed, no general replacement at this time. For Elasticsearch, use `db.elasticsearch.node.name` instead. | -| span.db.client | span | db.system | `Rename` | db.system.name | Replaced by `db.system.name`. | -| span.db.client | span | db.user | `Drop` | | Removed, no replacement at this time. | +## metric + +### metric: `metric.db.client.connections.usage` + +Replaced by `db.client.connection.count`. + +#### Property Changes + +| Property | Old Value | New Value | +| --- | --- | --- | +| Name | db.client.connections.usage | db.client.connection.count | + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| db.client.connections.pool.name | `Rename` | db.client.connection.pool.name | Replaced by `db.client.connection.pool.name`. | +| db.client.connections.state | `Rename` | db.client.connection.state | Replaced by `db.client.connection.state`. | + +### metric: `metric.db.client.connections.idle.max` + +Replaced by `db.client.connection.idle.max`. + +#### Property Changes + +| Property | Old Value | New Value | +| --- | --- | --- | +| Name | db.client.connections.idle.max | db.client.connection.idle.max | + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| db.client.connections.pool.name | `Rename` | db.client.connection.pool.name | Replaced by `db.client.connection.pool.name`. | + +### metric: `metric.db.client.connections.idle.min` + +Replaced by `db.client.connection.idle.min`. + +#### Property Changes + +| Property | Old Value | New Value | +| --- | --- | --- | +| Name | db.client.connections.idle.min | db.client.connection.idle.min | + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| db.client.connections.pool.name | `Rename` | db.client.connection.pool.name | Replaced by `db.client.connection.pool.name`. | + +### metric: `metric.db.client.connections.max` + +Replaced by `db.client.connection.max`. + +#### Property Changes + +| Property | Old Value | New Value | +| --- | --- | --- | +| Name | db.client.connections.max | db.client.connection.max | + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| db.client.connections.pool.name | `Rename` | db.client.connection.pool.name | Replaced by `db.client.connection.pool.name`. | + +### metric: `metric.db.client.connections.pending_requests` + +Replaced by `db.client.connection.pending_requests`. + +#### Property Changes + +| Property | Old Value | New Value | +| --- | --- | --- | +| Name | db.client.connections.pending_requests | db.client.connection.pending_requests | + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| db.client.connections.pool.name | `Rename` | db.client.connection.pool.name | Replaced by `db.client.connection.pool.name`. | + +### metric: `metric.db.client.connections.timeouts` + +Replaced by `db.client.connection.timeouts`. + +#### Property Changes + +| Property | Old Value | New Value | +| --- | --- | --- | +| Name | db.client.connections.timeouts | db.client.connection.timeouts | + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| db.client.connections.pool.name | `Rename` | db.client.connection.pool.name | Replaced by `db.client.connection.pool.name`. | + +### metric: `metric.db.client.connections.create_time` + +Replaced by `db.client.connection.create_time` with unit `s`. + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| db.client.connections.pool.name | `Rename` | db.client.connection.pool.name | Replaced by `db.client.connection.pool.name`. | + +### metric: `metric.db.client.connections.wait_time` + +Replaced by `db.client.connection.wait_time` with unit `s`. + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| db.client.connections.pool.name | `Rename` | db.client.connection.pool.name | Replaced by `db.client.connection.pool.name`. | + +### metric: `metric.db.client.connections.use_time` + +Replaced by `db.client.connection.use_time` with unit `s`. + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| db.client.connections.pool.name | `Rename` | db.client.connection.pool.name | Replaced by `db.client.connection.pool.name`. | + +### metric: `metric.db.client.cosmosdb.operation.request_charge` + +Replaced by `azure.cosmosdb.client.operation.request_charge`. + +#### Property Changes + +| Property | Old Value | New Value | +| --- | --- | --- | +| Name | db.client.cosmosdb.operation.request_charge | azure.cosmosdb.client.operation.request_charge | + +Note: You will need to check what other attributes/properties need to be updated. + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| db.cosmosdb.consistency_level | `Rename` | azure.cosmosdb.consistency.level | Replaced by `azure.cosmosdb.consistency.level`. | +| db.cosmosdb.regions_contacted | `Rename` | azure.cosmosdb.operation.contacted_regions | Replaced by `azure.cosmosdb.operation.contacted_regions`. | +| db.cosmosdb.sub_status_code | `Rename` | azure.cosmosdb.response.sub_status_code | Replaced by `azure.cosmosdb.response.sub_status_code`. | + +### metric: `metric.db.client.cosmosdb.active_instance.count` + +Replaced by `azure.cosmosdb.client.active_instance.count`. + +#### Property Changes + +| Property | Old Value | New Value | +| --- | --- | --- | +| Name | db.client.cosmosdb.active_instance.count | azure.cosmosdb.client.active_instance.count | + +Note: You will need to check what other attributes/properties need to be updated. + +### metric: `metric.db.client.operation.duration` + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| db.system | `Rename` | db.system.name | Replaced by `db.system.name`. | + +### metric: `metric.db.client.response.returned_rows` + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| db.system | `Rename` | db.system.name | Replaced by `db.system.name`. | + +## span + +### span: `span.db.client` + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| db.connection_string | `Update` | | Replaced by `server.address` and `server.port`. | +| db.instance.id | `Drop` | | Removed, no general replacement at this time. For Elasticsearch, use `db.elasticsearch.node.name` instead. | +| db.system | `Rename` | db.system.name | Replaced by `db.system.name`. | +| db.user | `Drop` | | Removed, no replacement at this time. | diff --git a/docs/registry/namespaces/deployment/upgrade.md b/docs/registry/namespaces/deployment/upgrade.md index 871eb3006b..5957c456fb 100644 --- a/docs/registry/namespaces/deployment/upgrade.md +++ b/docs/registry/namespaces/deployment/upgrade.md @@ -4,7 +4,3 @@ # Deployment No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/device/upgrade.md b/docs/registry/namespaces/device/upgrade.md index b6c75d504d..2b038491a6 100644 --- a/docs/registry/namespaces/device/upgrade.md +++ b/docs/registry/namespaces/device/upgrade.md @@ -4,7 +4,3 @@ # Device No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/dns/upgrade.md b/docs/registry/namespaces/dns/upgrade.md index df7f31f111..cdd4ecbee9 100644 --- a/docs/registry/namespaces/dns/upgrade.md +++ b/docs/registry/namespaces/dns/upgrade.md @@ -4,7 +4,3 @@ # DNS No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/dotnet/upgrade.md b/docs/registry/namespaces/dotnet/upgrade.md index 7314edbb89..5c9d83d156 100644 --- a/docs/registry/namespaces/dotnet/upgrade.md +++ b/docs/registry/namespaces/dotnet/upgrade.md @@ -4,7 +4,3 @@ # Dotnet No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/dynamodb/upgrade.md b/docs/registry/namespaces/dynamodb/upgrade.md index bdb475ee3b..c3aa2294ad 100644 --- a/docs/registry/namespaces/dynamodb/upgrade.md +++ b/docs/registry/namespaces/dynamodb/upgrade.md @@ -4,7 +4,3 @@ # DynamoDB No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/exception/upgrade.md b/docs/registry/namespaces/exception/upgrade.md index f2f3d9463c..91f5ca58b7 100644 --- a/docs/registry/namespaces/exception/upgrade.md +++ b/docs/registry/namespaces/exception/upgrade.md @@ -5,10 +5,12 @@ The upgrade process helps to document what is needed to upgrade the signals to the latest version. +## event +### event: `event.exception` -## Attribute Changes +#### Attribute Changes -| Signal Name | Signal Type | Old Attribute Key | Action | New Attribute Key | Summary | -| --- | --- | --- | --- | --- | --- | -| exception | event | exception.escaped | `Drop` | | It's no longer recommended to record exceptions that are handled and do not escape the scope of a span. | +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| exception.escaped | `Drop` | | It's no longer recommended to record exceptions that are handled and do not escape the scope of a span. | diff --git a/docs/registry/namespaces/faas/upgrade.md b/docs/registry/namespaces/faas/upgrade.md index 1e0d8e3b50..bd1c8edd5b 100644 --- a/docs/registry/namespaces/faas/upgrade.md +++ b/docs/registry/namespaces/faas/upgrade.md @@ -4,7 +4,3 @@ # Faas No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/feature-flag/upgrade.md b/docs/registry/namespaces/feature-flag/upgrade.md index 943ffb731d..9c79795b22 100644 --- a/docs/registry/namespaces/feature-flag/upgrade.md +++ b/docs/registry/namespaces/feature-flag/upgrade.md @@ -4,7 +4,3 @@ # Feature Flag No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/gcp/upgrade.md b/docs/registry/namespaces/gcp/upgrade.md index 04161d6abe..e2e02cd311 100644 --- a/docs/registry/namespaces/gcp/upgrade.md +++ b/docs/registry/namespaces/gcp/upgrade.md @@ -4,7 +4,3 @@ # GCP No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/gen-ai/upgrade.md b/docs/registry/namespaces/gen-ai/upgrade.md index 2999b12eb2..235410d8e5 100644 --- a/docs/registry/namespaces/gen-ai/upgrade.md +++ b/docs/registry/namespaces/gen-ai/upgrade.md @@ -5,14 +5,54 @@ The upgrade process helps to document what is needed to upgrade the signals to the latest version. -## Events +## event -| Old Signal Name | Action | New Signal Name | Summary | +### event: `event.gen_ai.system.message` + +Chat history is reported on `gen_ai.system_instructions` attribute on spans or `gen_ai.client.inference.operation.details` event. + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | | --- | --- | --- | --- | -| gen_ai.assistant.message | `Update` | | Chat history is reported on `gen_ai.input.messages` attribute on spans or `gen_ai.client.inference.operation.details` event. | -| gen_ai.choice | `Update` | | Chat history is reported on `gen_ai.output.messages` attribute on spans or `gen_ai.client.inference.operation.details` event. | -| gen_ai.system.message | `Update` | | Chat history is reported on `gen_ai.system_instructions` attribute on spans or `gen_ai.client.inference.operation.details` event. | -| gen_ai.tool.message | `Update` | | Chat history is reported on `gen_ai.input.messages` attribute on spans or `gen_ai.client.inference.operation.details` event. | -| gen_ai.user.message | `Update` | | Chat history is reported on `gen_ai.input.messages` attribute on spans or `gen_ai.client.inference.operation.details` event. | +| gen_ai.system | `Rename` | gen_ai.provider.name | Replaced by `gen_ai.provider.name`. | +### event: `event.gen_ai.user.message` +Chat history is reported on `gen_ai.input.messages` attribute on spans or `gen_ai.client.inference.operation.details` event. + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| gen_ai.system | `Rename` | gen_ai.provider.name | Replaced by `gen_ai.provider.name`. | + +### event: `event.gen_ai.assistant.message` + +Chat history is reported on `gen_ai.input.messages` attribute on spans or `gen_ai.client.inference.operation.details` event. + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| gen_ai.system | `Rename` | gen_ai.provider.name | Replaced by `gen_ai.provider.name`. | + +### event: `event.gen_ai.tool.message` + +Chat history is reported on `gen_ai.input.messages` attribute on spans or `gen_ai.client.inference.operation.details` event. + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| gen_ai.system | `Rename` | gen_ai.provider.name | Replaced by `gen_ai.provider.name`. | + +### event: `event.gen_ai.choice` + +Chat history is reported on `gen_ai.output.messages` attribute on spans or `gen_ai.client.inference.operation.details` event. + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| gen_ai.system | `Rename` | gen_ai.provider.name | Replaced by `gen_ai.provider.name`. | diff --git a/docs/registry/namespaces/go/upgrade.md b/docs/registry/namespaces/go/upgrade.md index c5800675f9..53e31c6cbb 100644 --- a/docs/registry/namespaces/go/upgrade.md +++ b/docs/registry/namespaces/go/upgrade.md @@ -4,7 +4,3 @@ # Go No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/graphql/upgrade.md b/docs/registry/namespaces/graphql/upgrade.md index c673f4e979..7d312d90d5 100644 --- a/docs/registry/namespaces/graphql/upgrade.md +++ b/docs/registry/namespaces/graphql/upgrade.md @@ -4,7 +4,3 @@ # GraphQL No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/heroku/upgrade.md b/docs/registry/namespaces/heroku/upgrade.md index 4bd682b4ea..cb43093e02 100644 --- a/docs/registry/namespaces/heroku/upgrade.md +++ b/docs/registry/namespaces/heroku/upgrade.md @@ -4,7 +4,3 @@ # Heroku No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/host/upgrade.md b/docs/registry/namespaces/host/upgrade.md index 64d97a3ddc..f7f6d5f243 100644 --- a/docs/registry/namespaces/host/upgrade.md +++ b/docs/registry/namespaces/host/upgrade.md @@ -4,7 +4,3 @@ # Host No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/http/upgrade.md b/docs/registry/namespaces/http/upgrade.md index 9010cca152..d4a514e406 100644 --- a/docs/registry/namespaces/http/upgrade.md +++ b/docs/registry/namespaces/http/upgrade.md @@ -5,15 +5,33 @@ The upgrade process helps to document what is needed to upgrade the signals to the latest version. +## metric +### metric: `metric.http.server.active_requests` -## Attribute Changes +#### Attribute Changes -| Signal Name | Signal Type | Old Attribute Key | Action | New Attribute Key | Summary | -| --- | --- | --- | --- | --- | --- | -| http.server.active_requests | metric | http.method | `Rename` | http.request.method | Replaced by `http.request.method`. | -| http.server.active_requests | metric | http.scheme | `Rename` | url.scheme | Replaced by `url.scheme`. | -| http.server.active_requests | metric | net.host.name | `Rename` | server.address | Replaced by `server.address`. | -| http.server.active_requests | metric | net.host.port | `Rename` | server.port | Replaced by `server.port`. | -| span.http.client | span | http.method | `Rename` | http.request.method | Replaced by `http.request.method`. | -| span.http.server | span | http.method | `Rename` | http.request.method | Replaced by `http.request.method`. | +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| http.method | `Rename` | http.request.method | Replaced by `http.request.method`. | +| http.scheme | `Rename` | url.scheme | Replaced by `url.scheme`. | +| net.host.name | `Rename` | server.address | Replaced by `server.address`. | +| net.host.port | `Rename` | server.port | Replaced by `server.port`. | + +## span + +### span: `span.http.client` + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| http.method | `Rename` | http.request.method | Replaced by `http.request.method`. | + +### span: `span.http.server` + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| http.method | `Rename` | http.request.method | Replaced by `http.request.method`. | diff --git a/docs/registry/namespaces/hw/upgrade.md b/docs/registry/namespaces/hw/upgrade.md index 58498fad72..8ad1da8849 100644 --- a/docs/registry/namespaces/hw/upgrade.md +++ b/docs/registry/namespaces/hw/upgrade.md @@ -4,7 +4,3 @@ # Hw No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/jvm/upgrade.md b/docs/registry/namespaces/jvm/upgrade.md index a389956772..440fdcfe8d 100644 --- a/docs/registry/namespaces/jvm/upgrade.md +++ b/docs/registry/namespaces/jvm/upgrade.md @@ -5,10 +5,14 @@ The upgrade process helps to document what is needed to upgrade the signals to the latest version. -## Metrics +## metric -| Old Signal Name | Action | New Signal Name | Summary | -| --- | --- | --- | --- | -| jvm.buffer.memory.usage | `Rename` | jvm.buffer.memory.used | Replaced by `jvm.buffer.memory.used`. | +### metric: `metric.jvm.buffer.memory.usage` +Replaced by `jvm.buffer.memory.used`. +#### Property Changes + +| Property | Old Value | New Value | +| --- | --- | --- | +| Name | jvm.buffer.memory.usage | jvm.buffer.memory.used | diff --git a/docs/registry/namespaces/k8s/upgrade.md b/docs/registry/namespaces/k8s/upgrade.md index c225e81ea5..8481dbd2b6 100644 --- a/docs/registry/namespaces/k8s/upgrade.md +++ b/docs/registry/namespaces/k8s/upgrade.md @@ -5,11 +5,24 @@ The upgrade process helps to document what is needed to upgrade the signals to the latest version. -## Metrics +## metric -| Old Signal Name | Action | New Signal Name | Summary | -| --- | --- | --- | --- | -| k8s.replication_controller.desired_pods | `Rename` | k8s.replicationcontroller.desired_pods | Replaced by `k8s.replicationcontroller.desired_pods`. | -| k8s.replication_controller.available_pods | `Rename` | k8s.replicationcontroller.available_pods | Replaced by `k8s.replicationcontroller.available_pods`. | +### metric: `metric.k8s.replication_controller.desired_pods` +Replaced by `k8s.replicationcontroller.desired_pods`. +#### Property Changes + +| Property | Old Value | New Value | +| --- | --- | --- | +| Name | k8s.replication_controller.desired_pods | k8s.replicationcontroller.desired_pods | + +### metric: `metric.k8s.replication_controller.available_pods` + +Replaced by `k8s.replicationcontroller.available_pods`. + +#### Property Changes + +| Property | Old Value | New Value | +| --- | --- | --- | +| Name | k8s.replication_controller.available_pods | k8s.replicationcontroller.available_pods | diff --git a/docs/registry/namespaces/kestrel/upgrade.md b/docs/registry/namespaces/kestrel/upgrade.md index 122e21d4bc..c57dea2043 100644 --- a/docs/registry/namespaces/kestrel/upgrade.md +++ b/docs/registry/namespaces/kestrel/upgrade.md @@ -4,7 +4,3 @@ # Kestrel No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/messaging/upgrade.md b/docs/registry/namespaces/messaging/upgrade.md index 56902cc79f..314d936822 100644 --- a/docs/registry/namespaces/messaging/upgrade.md +++ b/docs/registry/namespaces/messaging/upgrade.md @@ -5,22 +5,132 @@ The upgrade process helps to document what is needed to upgrade the signals to the latest version. -## Metrics +## metric -| Old Signal Name | Action | New Signal Name | Summary | +### metric: `metric.messaging.publish.duration` + +Replaced by `messaging.client.operation.duration`. + +#### Property Changes + +| Property | Old Value | New Value | +| --- | --- | --- | +| Name | messaging.publish.duration | messaging.client.operation.duration | + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| messaging.operation | `Migrate` | messaging.operation.type | Replaced by `messaging.operation.type`. | + +### metric: `metric.messaging.receive.duration` + +Replaced by `messaging.client.operation.duration`. + +#### Property Changes + +| Property | Old Value | New Value | +| --- | --- | --- | +| Name | messaging.receive.duration | messaging.client.operation.duration | + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| messaging.operation | `Migrate` | messaging.operation.type | Replaced by `messaging.operation.type`. | + +### metric: `metric.messaging.process.messages` + +Replaced by `messaging.client.consumed.messages`. + +#### Property Changes + +| Property | Old Value | New Value | +| --- | --- | --- | +| Name | messaging.process.messages | messaging.client.consumed.messages | + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| messaging.operation | `Migrate` | messaging.operation.type | Replaced by `messaging.operation.type`. | + +### metric: `metric.messaging.publish.messages` + +Replaced by `messaging.client.sent.messages`. + +#### Property Changes + +| Property | Old Value | New Value | +| --- | --- | --- | +| Name | messaging.publish.messages | messaging.client.sent.messages | + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| messaging.operation | `Migrate` | messaging.operation.type | Replaced by `messaging.operation.type`. | + +### metric: `metric.messaging.receive.messages` + +Replaced by `messaging.client.consumed.messages`. + +#### Property Changes + +| Property | Old Value | New Value | +| --- | --- | --- | +| Name | messaging.receive.messages | messaging.client.consumed.messages | + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| messaging.operation | `Migrate` | messaging.operation.type | Replaced by `messaging.operation.type`. | + +### metric: `metric.messaging.client.published.messages` + +Replaced by `messaging.client.sent.messages`. + +#### Property Changes + +| Property | Old Value | New Value | +| --- | --- | --- | +| Name | messaging.client.published.messages | messaging.client.sent.messages | + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | | --- | --- | --- | --- | -| messaging.publish.duration | `Rename` | messaging.client.operation.duration | Replaced by `messaging.client.operation.duration`. | -| messaging.receive.duration | `Rename` | messaging.client.operation.duration | Replaced by `messaging.client.operation.duration`. | -| messaging.process.messages | `Rename` | messaging.client.consumed.messages | Replaced by `messaging.client.consumed.messages`. | -| messaging.publish.messages | `Rename` | messaging.client.sent.messages | Replaced by `messaging.client.sent.messages`. | -| messaging.receive.messages | `Rename` | messaging.client.consumed.messages | Replaced by `messaging.client.consumed.messages`. | -| messaging.client.published.messages | `Rename` | messaging.client.sent.messages | Replaced by `messaging.client.sent.messages`. | +| messaging.operation | `Migrate` | messaging.operation.type | Replaced by `messaging.operation.type`. | + +### metric: `metric.messaging.client.operation.duration` -## Attribute Changes +#### Attribute Changes -| Signal Name | Signal Type | Old Attribute Key | Action | New Attribute Key | Summary | -| --- | --- | --- | --- | --- | --- | -| messaging.client.consumed.messages | metric | messaging.operation | `Migrate` | messaging.operation.name | Replaced by `messaging.operation.name`. | -| messaging.client.operation.duration | metric | messaging.operation | `Migrate` | messaging.operation.type | Replaced by `messaging.operation.type`. | -| messaging.client.sent.messages | metric | messaging.operation | `Migrate` | messaging.operation.name | Replaced by `messaging.operation.name`. | -| messaging.process.duration | metric | messaging.operation | `Migrate` | messaging.operation.name | Replaced by `messaging.operation.name`. | +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| messaging.operation | `Migrate` | messaging.operation.type | Replaced by `messaging.operation.type`. | + +### metric: `metric.messaging.process.duration` + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| messaging.operation | `Migrate` | messaging.operation.name | Replaced by `messaging.operation.name`. | + +### metric: `metric.messaging.client.sent.messages` + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| messaging.operation | `Migrate` | messaging.operation.name | Replaced by `messaging.operation.name`. | + +### metric: `metric.messaging.client.consumed.messages` + +#### Attribute Changes + +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +| messaging.operation | `Migrate` | messaging.operation.name | Replaced by `messaging.operation.name`. | diff --git a/docs/registry/namespaces/nfs/upgrade.md b/docs/registry/namespaces/nfs/upgrade.md index f6a7cad19b..962d006bda 100644 --- a/docs/registry/namespaces/nfs/upgrade.md +++ b/docs/registry/namespaces/nfs/upgrade.md @@ -4,7 +4,3 @@ # NFS No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/nodejs/upgrade.md b/docs/registry/namespaces/nodejs/upgrade.md index 59740025c9..47db578cf6 100644 --- a/docs/registry/namespaces/nodejs/upgrade.md +++ b/docs/registry/namespaces/nodejs/upgrade.md @@ -4,7 +4,3 @@ # NodeJS No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/openai/upgrade.md b/docs/registry/namespaces/openai/upgrade.md index 76e91205ab..a7219a4c08 100644 --- a/docs/registry/namespaces/openai/upgrade.md +++ b/docs/registry/namespaces/openai/upgrade.md @@ -4,7 +4,3 @@ # OpenAI No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/os/upgrade.md b/docs/registry/namespaces/os/upgrade.md index 9f20b18095..a7fd3315c6 100644 --- a/docs/registry/namespaces/os/upgrade.md +++ b/docs/registry/namespaces/os/upgrade.md @@ -4,7 +4,3 @@ # OS No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/otel/upgrade.md b/docs/registry/namespaces/otel/upgrade.md index b6716cb5d3..1dcb86903c 100644 --- a/docs/registry/namespaces/otel/upgrade.md +++ b/docs/registry/namespaces/otel/upgrade.md @@ -5,15 +5,60 @@ The upgrade process helps to document what is needed to upgrade the signals to the latest version. -## Metrics +## entity -| Old Signal Name | Action | New Signal Name | Summary | -| --- | --- | --- | --- | -| otel.sdk.span.live.count | `Rename` | otel.sdk.span.live | Replaced by `otel.sdk.span.live`. | -| otel.sdk.span.ended.count | `Drop` | | Obsoleted. | -| otel.sdk.processor.span.processed.count | `Rename` | otel.sdk.processor.span.processed | Replaced by `otel.sdk.processor.span.processed`. | -| otel.sdk.exporter.span.inflight.count | `Rename` | otel.sdk.exporter.span.inflight | Replaced by `otel.sdk.exporter.span.inflight`. | -| otel.sdk.exporter.span.exported.count | `Rename` | otel.sdk.exporter.span.exported | Replaced by `otel.sdk.exporter.span.exported`. | -| otel.sdk.span.ended | `Drop` | | Obsoleted. | +### entity: `entity.otel.scope` +Obsoleted. +## metric + +### metric: `metric.otel.sdk.span.live.count` + +Replaced by `otel.sdk.span.live`. + +#### Property Changes + +| Property | Old Value | New Value | +| --- | --- | --- | +| Name | otel.sdk.span.live.count | otel.sdk.span.live | + +### metric: `metric.otel.sdk.span.ended.count` + +Obsoleted. + +### metric: `metric.otel.sdk.processor.span.processed.count` + +Replaced by `otel.sdk.processor.span.processed`. + +#### Property Changes + +| Property | Old Value | New Value | +| --- | --- | --- | +| Name | otel.sdk.processor.span.processed.count | otel.sdk.processor.span.processed | +| Instrument | updowncounter | counter | + +### metric: `metric.otel.sdk.exporter.span.inflight.count` + +Replaced by `otel.sdk.exporter.span.inflight`. + +#### Property Changes + +| Property | Old Value | New Value | +| --- | --- | --- | +| Name | otel.sdk.exporter.span.inflight.count | otel.sdk.exporter.span.inflight | + +### metric: `metric.otel.sdk.exporter.span.exported.count` + +Replaced by `otel.sdk.exporter.span.exported`. + +#### Property Changes + +| Property | Old Value | New Value | +| --- | --- | --- | +| Name | otel.sdk.exporter.span.exported.count | otel.sdk.exporter.span.exported | +| Instrument | updowncounter | counter | + +### metric: `metric.otel.sdk.span.ended` + +Obsoleted. diff --git a/docs/registry/namespaces/process/upgrade.md b/docs/registry/namespaces/process/upgrade.md index 4e8afe3957..134c314118 100644 --- a/docs/registry/namespaces/process/upgrade.md +++ b/docs/registry/namespaces/process/upgrade.md @@ -4,7 +4,3 @@ # Process No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/rpc/upgrade.md b/docs/registry/namespaces/rpc/upgrade.md index b4b8ceba2a..8abe336d67 100644 --- a/docs/registry/namespaces/rpc/upgrade.md +++ b/docs/registry/namespaces/rpc/upgrade.md @@ -4,7 +4,3 @@ # RPC No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/service/upgrade.md b/docs/registry/namespaces/service/upgrade.md index 2acb5325c4..9203a202d2 100644 --- a/docs/registry/namespaces/service/upgrade.md +++ b/docs/registry/namespaces/service/upgrade.md @@ -4,7 +4,3 @@ # Service No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/session/upgrade.md b/docs/registry/namespaces/session/upgrade.md index 3e5532a8dd..34b14d90da 100644 --- a/docs/registry/namespaces/session/upgrade.md +++ b/docs/registry/namespaces/session/upgrade.md @@ -4,7 +4,3 @@ # Session No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/signalr/upgrade.md b/docs/registry/namespaces/signalr/upgrade.md index 0eb7819cf0..302cd8e2ca 100644 --- a/docs/registry/namespaces/signalr/upgrade.md +++ b/docs/registry/namespaces/signalr/upgrade.md @@ -4,7 +4,3 @@ # SignalR No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/system/upgrade.md b/docs/registry/namespaces/system/upgrade.md index b60be4aec2..7e0f9ec4d6 100644 --- a/docs/registry/namespaces/system/upgrade.md +++ b/docs/registry/namespaces/system/upgrade.md @@ -5,10 +5,14 @@ The upgrade process helps to document what is needed to upgrade the signals to the latest version. -## Metrics +## metric -| Old Signal Name | Action | New Signal Name | Summary | -| --- | --- | --- | --- | -| system.network.connections | `Rename` | system.network.connection.count | Replaced by `system.network.connection.count`. | +### metric: `metric.system.network.connections` +Replaced by `system.network.connection.count`. +#### Property Changes + +| Property | Old Value | New Value | +| --- | --- | --- | +| Name | system.network.connections | system.network.connection.count | diff --git a/docs/registry/namespaces/telemetry/upgrade.md b/docs/registry/namespaces/telemetry/upgrade.md index 19596817b2..39d5c9847c 100644 --- a/docs/registry/namespaces/telemetry/upgrade.md +++ b/docs/registry/namespaces/telemetry/upgrade.md @@ -4,7 +4,3 @@ # Telemetry No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/v8js/upgrade.md b/docs/registry/namespaces/v8js/upgrade.md index 91aa8b3ca5..491a85bb81 100644 --- a/docs/registry/namespaces/v8js/upgrade.md +++ b/docs/registry/namespaces/v8js/upgrade.md @@ -4,7 +4,3 @@ # V8js No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/vcs/upgrade.md b/docs/registry/namespaces/vcs/upgrade.md index 5ac53194bf..833045021a 100644 --- a/docs/registry/namespaces/vcs/upgrade.md +++ b/docs/registry/namespaces/vcs/upgrade.md @@ -4,7 +4,3 @@ # VCS No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/webengine/upgrade.md b/docs/registry/namespaces/webengine/upgrade.md index 278800e702..1b46ff7e5c 100644 --- a/docs/registry/namespaces/webengine/upgrade.md +++ b/docs/registry/namespaces/webengine/upgrade.md @@ -4,7 +4,3 @@ # Webengine No upgrade process is documented as no deprecations can be found. - - - - diff --git a/docs/registry/namespaces/zos/upgrade.md b/docs/registry/namespaces/zos/upgrade.md index 1a7a189318..7aa85efa34 100644 --- a/docs/registry/namespaces/zos/upgrade.md +++ b/docs/registry/namespaces/zos/upgrade.md @@ -4,7 +4,3 @@ # zOS No upgrade process is documented as no deprecations can be found. - - - - diff --git a/templates/registry/markdown/attribute_macros.j2 b/templates/registry/markdown/attribute_macros.j2 index b9884ffe08..cc05fcb679 100644 --- a/templates/registry/markdown/attribute_macros.j2 +++ b/templates/registry/markdown/attribute_macros.j2 @@ -20,8 +20,6 @@ {% macro name_with_link(attribute, attribute_registry_base_url, lineage_attributes) %}[`{{name(attribute)}}`]({{attribute_registry_base_url}}/{{ find_lineage(attribute.name, lineage_attributes) | split_id | list | reject("eq", "registry")| first | kebab_case }}.md){% endmacro %} -{% macro renamed_to_with_link(attribute, attribute_registry_base_url, lineage_attributes) %}[`{{attribute}}`]({{attribute_registry_base_url}}/{{ find_lineage(attribute, lineage_attributes) | split_id | list | reject("eq", "registry")| first | kebab_case }}.md){% endmacro %} - {% macro display_name(group) %} {%- if 'display_name' in group %}{{ group.display_name }} {%- else %}{{ group.id | split_id | list | reject("eq", "registry") | join(" ") | title_case | acronym }} Attributes diff --git a/templates/registry/markdown/upgrade_namespace.md.j2 b/templates/registry/markdown/upgrade_namespace.md.j2 index 31c647387a..3daca71dbc 100644 --- a/templates/registry/markdown/upgrade_namespace.md.j2 +++ b/templates/registry/markdown/upgrade_namespace.md.j2 @@ -7,9 +7,5 @@ # {{ ctx.id | title_case | acronym }} -{{upgrade.message(ctx.groups) | trim}} - -{{upgrade.signalTables(ctx.groups) | trim}} - -{{upgrade.attributeBlock(ctx.groups) | trim}} +{{upgrade.signalBlocks(ctx.groups) | trim}} diff --git a/templates/registry/markdown/upgrade_table.j2 b/templates/registry/markdown/upgrade_table.j2 index 2d7bb2b8eb..11620f0745 100644 --- a/templates/registry/markdown/upgrade_table.j2 +++ b/templates/registry/markdown/upgrade_table.j2 @@ -1,66 +1,123 @@ {% import 'deprecation_action.j2' as action %} {% macro message (groups) %} -{% set deprecated = groups | selectattr("deprecated") %} -{% set deprecatedSignals = namespace(attributes = []) %} -{% set signals = groups | rejectattr("deprecated") | selectattr("attributes") %} - -{% for signal in signals %} -{% for deprecated in signal.attributes | selectattr("deprecated") %} -{% set temp = {'signal': signal, 'attribute': deprecated }%} -{% set deprecatedSignals.attributes = deprecatedSignals.attributes + [temp] %} -{% endfor %}{% endfor %} - -{% if deprecatedSignals.attributes or deprecated %} +{% if groups %} The upgrade process helps to document what is needed to upgrade the signals to the latest version. {% else %} No upgrade process is documented as no deprecations can be found. {% endif %} - {% endmacro %} -{% macro signalTable(name, signals) %} -{% if signals %} +{% macro signalBlocks(groups) %} -## {{name}} +{% set deprecatedSignals = namespace(signals = []) %} +{% set deprecatedSignals.signals = groups | selectattr("deprecated") %} -| Old Signal Name | Action | New Signal Name | Summary | -| --- | --- | --- | --- | -{% for signal in signals | sort(attribute = "name") %}| {% if signal.name %}{{ signal.name }}{% elif signal.metric_name %}{{signal.metric_name}}{% else %}{{signal.id}}{% endif %} | {{ action.render({"deprecated": signal.deprecated, "annotations": signal.annotations}, "") | trim}} | {{ signal.deprecated.renamed_to }} | {{ signal.deprecated.note | trim }} | +{% for signal in groups | rejectattr("deprecated") | selectattr("attributes") %} +{% if signal.attributes | selectattr("deprecated") %} +{% set deprecatedSignals.signals = deprecatedSignals.signals + [signal] %} +{% endif %} +{% endfor %} + +{% set current = "" %} + +{{message(deprecatedSignals.signals) | trim}} +{% for signal in deprecatedSignals.signals | sort(attribute="type") %} +{{ signalBlock(current == signal.type, signal, groups) | trim }}{% if current != signal.type %}{% set current = signal.type %}{% endif %} {% endfor %} +{% endmacro %} + +{% macro signalBlock(current, signal, groups) %} +{% set newSignal = {} %} +{% if signal.type == "metric" and signal.deprecated and signal.deprecated.reason == "renamed" %} +{% set newSignal = groups | selectattr("metric_name", 'equalto', signal.deprecated.renamed_to) | first %} +{% elif signal.type == "event" and signal.deprecated and signal.deprecated.reason == "renamed" %} +{% set newSignal = groups | selectattr("name", 'equalto', signal.deprecated.renamed_to) | first %} +{% elif signal.type == "entity" and signal.deprecated and signal.deprecated.reason == "renamed" %} +{% set newSignal = groups | selectattr("name", 'equalto', signal.deprecated.renamed_to) | first %} +{% elif signal.type == "span" and signal.deprecated and signal.deprecated.reason == "renamed" %} +{% set newSignal = groups | selectattr("id", 'equalto', signal.deprecated.renamed_to) | first %} {% endif %} +{% if current == false %} +## {{signal.type}} +{% endif %} +### {{signal.type}}: `{{signal.id}}` + +{{changes(signal, newSignal) | trim }} {% endmacro %} -{% macro signalTables(groups) %} -{% set deprecated = groups | selectattr("deprecated") %} -{% if deprecated %} -{% set events = deprecated | selectattr("type", "eq", "event") %} -{{ signalTable("Events", events) | trim }} -{% set metrics = deprecated | selectattr("type", "eq", "metric") %} -{{signalTable("Metrics", metrics) | trim }} -{% set spans = deprecated | selectattr("type", "eq", "span") %} -{{signalTable("Spans", spans) | trim }} -{%endif%} +{% macro changes(signal, new)%} +{{propertyChanges(signal, new) | trim }} + +{{attributeChanges(signal, new) | trim }} {% endmacro %} -{% macro attributeBlock(groups) %} -{% set deprecatedSignals = namespace(attributes = []) %} +{% macro propertyChanges(signal, new)%} +{% if signal.deprecated %} +{{signal.deprecated.note }} +{% if signal.deprecated.reason == "renamed"%} +#### Property Changes + +| Property | Old Value | New Value | +| --- | --- | --- | +{{signalUpgrade(signal, new) | trim}} +{% endif %}{% endif %} -{% set signals = groups | rejectattr("deprecated") | selectattr("attributes") %} +{% endmacro %} -{% for signal in signals %} -{% for deprecated in signal.attributes | selectattr("deprecated") %} -{% set temp = {'signal': signal, 'attribute': deprecated }%} -{% set deprecatedSignals.attributes = deprecatedSignals.attributes + [temp] %} -{% endfor %}{% endfor %} +{% macro attributeChanges(signal, new)%} -{% if deprecatedSignals.attributes %} -## Attribute Changes +{% set lines = signal.attributes | selectattr("deprecated")%} +{# if new and new.attributes #} +{# set lines = lines + (new.attributes | selectattr("deprecated")) | unique #} +{# endif #} +{% if lines %}#### Attribute Changes -| Signal Name | Signal Type | Old Attribute Key | Action | New Attribute Key | Summary | -| --- | --- | --- | --- | --- | --- | -{% for attr in deprecatedSignals.attributes | sort(attribute = "attribute.name") | sort(attribute = "signal.id") %}| {% if attr.signal.name %}{{ attr.signal.name }}{% elif attr.signal.metric_name %}{{attr.signal.metric_name}}{% else %}{{attr.signal.id}}{% endif %} | {{attr.signal.type}} | {{attr.attribute.name}} | {{ action.render({"deprecated": attr.attribute.deprecated, "annotations": attr.attribute.annotations}, "") | trim}} | {{ attr.attribute.deprecated.renamed_to }} | {{ attr.attribute.deprecated.note |trim}} | -{% endfor %} +| Old Attribute Key | Action | New Attribute Key | Summary | +| --- | --- | --- | --- | +{% for attr in lines | unique | sort(attribute = "name") %}| {{attr.name}} | {{ action.render({"deprecated": attr.deprecated, "annotations": attr.annotations}, "") | trim}} | {{ attr.deprecated.renamed_to }} | {{ attr.deprecated.note | trim}} | +{% endfor %}{% endif %} +{% endmacro %} + +{% macro signalUpgrade(old, new)%} +{% if new is undefined %} +| Name | {% if old.metric_name %}{{old.metric_name}}{% elif old.name %}{{old.name}}{% else %}{{old.id}}{% endif %} | {{old.deprecated.renamed_to}} | + +Note: You will need to check what other attributes/properties need to be updated. + +{% elif old.type == "metric" and new.type == "metric"%} +{{metricUpgrade(old, new) | trim }} +{% elif old.type == "event" and new.type == "event"%} +{{eventUpgrade(old, new) | trim }} +{% elif old.type == "entity" and new.type == "entity"%} +{{entityUpgrade(old, new) | trim }} +{% elif old.type == "span" and new.type == "span"%} +{{spanUpgrade(old, new) | trim }} +{% else %} +Fix: {{old.type}} +{% endif %}{% endmacro %} + +{% macro metricUpgrade(old, new)%} +{{propertyUpgrade("Name", old.metric_name, new.metric_name) | trim}} +{{propertyUpgrade("Instrument", old.instrument, new.instrument) | trim}} +{{propertyUpgrade("Unit", old.unit, new.unit) | trim}} +{% endmacro %} + +{% macro eventUpgrade(old, new)%} +{{propertyUpgrade("Name", old.name, new.name) | trim}} +{% endmacro %} + +{% macro entityUpgrade(old, new)%} +{{propertyUpgrade("Name", old.name, new.name) | trim}} +{% endmacro %} + +{% macro spanUpgrade(old, new)%} +{{propertyUpgrade("Kind", old.kind, new.kind) | trim}} +{% endmacro %} + +{% macro propertyUpgrade(name, old, new)%} +{% if old != new %} +| {{name}} | {{old}} | {{new}} | {% endif %} {% endmacro %} \ No newline at end of file From 403af0c57966376912af12bcf43f2f1e41b8e4bb Mon Sep 17 00:00:00 2001 From: James Thompson Date: Mon, 29 Sep 2025 14:06:19 +1000 Subject: [PATCH 14/14] Styling improvement --- docs/registry/namespaces/az/upgrade.md | 6 +-- docs/registry/namespaces/cpu/upgrade.md | 14 ++--- docs/registry/namespaces/db/upgrade.md | 54 +++++++++---------- docs/registry/namespaces/exception/upgrade.md | 4 +- docs/registry/namespaces/gen-ai/upgrade.md | 22 ++++---- docs/registry/namespaces/http/upgrade.md | 10 ++-- docs/registry/namespaces/jvm/upgrade.md | 6 +-- docs/registry/namespaces/k8s/upgrade.md | 10 ++-- docs/registry/namespaces/messaging/upgrade.md | 34 ++++++------ docs/registry/namespaces/otel/upgrade.md | 32 +++++------ docs/registry/namespaces/system/upgrade.md | 6 +-- templates/registry/markdown/upgrade_table.j2 | 6 +-- 12 files changed, 102 insertions(+), 102 deletions(-) diff --git a/docs/registry/namespaces/az/upgrade.md b/docs/registry/namespaces/az/upgrade.md index 2eb06f46b0..46832313be 100644 --- a/docs/registry/namespaces/az/upgrade.md +++ b/docs/registry/namespaces/az/upgrade.md @@ -5,11 +5,11 @@ The upgrade process helps to document what is needed to upgrade the signals to the latest version. -## event +## Event -### event: `event.az.resource.log` +### Event: `az.resource.log` -Replaced by `azure.resource.log`. +**Reason:** Replaced by `azure.resource.log`. #### Property Changes diff --git a/docs/registry/namespaces/cpu/upgrade.md b/docs/registry/namespaces/cpu/upgrade.md index 463cb2f496..cb5ac60dc3 100644 --- a/docs/registry/namespaces/cpu/upgrade.md +++ b/docs/registry/namespaces/cpu/upgrade.md @@ -5,11 +5,11 @@ The upgrade process helps to document what is needed to upgrade the signals to the latest version. -## metric +## Metric -### metric: `metric.cpu.time` +### Metric: `cpu.time` -Replaced by `system.cpu.time`. +**Reason:** Replaced by `system.cpu.time`. #### Property Changes @@ -19,9 +19,9 @@ Replaced by `system.cpu.time`. Note: You will need to check what other attributes/properties need to be updated. -### metric: `metric.cpu.utilization` +### Metric: `cpu.utilization` -Replaced by `system.cpu.utilization`. +**Reason:** Replaced by `system.cpu.utilization`. #### Property Changes @@ -31,9 +31,9 @@ Replaced by `system.cpu.utilization`. Note: You will need to check what other attributes/properties need to be updated. -### metric: `metric.cpu.frequency` +### Metric: `cpu.frequency` -Replaced by `system.cpu.frequency`. +**Reason:** Replaced by `system.cpu.frequency`. #### Property Changes diff --git a/docs/registry/namespaces/db/upgrade.md b/docs/registry/namespaces/db/upgrade.md index 14eda3e32f..dd7d1f946e 100644 --- a/docs/registry/namespaces/db/upgrade.md +++ b/docs/registry/namespaces/db/upgrade.md @@ -5,11 +5,11 @@ The upgrade process helps to document what is needed to upgrade the signals to the latest version. -## metric +## Metric -### metric: `metric.db.client.connections.usage` +### Metric: `db.client.connections.usage` -Replaced by `db.client.connection.count`. +**Reason:** Replaced by `db.client.connection.count`. #### Property Changes @@ -24,9 +24,9 @@ Replaced by `db.client.connection.count`. | db.client.connections.pool.name | `Rename` | db.client.connection.pool.name | Replaced by `db.client.connection.pool.name`. | | db.client.connections.state | `Rename` | db.client.connection.state | Replaced by `db.client.connection.state`. | -### metric: `metric.db.client.connections.idle.max` +### Metric: `db.client.connections.idle.max` -Replaced by `db.client.connection.idle.max`. +**Reason:** Replaced by `db.client.connection.idle.max`. #### Property Changes @@ -40,9 +40,9 @@ Replaced by `db.client.connection.idle.max`. | --- | --- | --- | --- | | db.client.connections.pool.name | `Rename` | db.client.connection.pool.name | Replaced by `db.client.connection.pool.name`. | -### metric: `metric.db.client.connections.idle.min` +### Metric: `db.client.connections.idle.min` -Replaced by `db.client.connection.idle.min`. +**Reason:** Replaced by `db.client.connection.idle.min`. #### Property Changes @@ -56,9 +56,9 @@ Replaced by `db.client.connection.idle.min`. | --- | --- | --- | --- | | db.client.connections.pool.name | `Rename` | db.client.connection.pool.name | Replaced by `db.client.connection.pool.name`. | -### metric: `metric.db.client.connections.max` +### Metric: `db.client.connections.max` -Replaced by `db.client.connection.max`. +**Reason:** Replaced by `db.client.connection.max`. #### Property Changes @@ -72,9 +72,9 @@ Replaced by `db.client.connection.max`. | --- | --- | --- | --- | | db.client.connections.pool.name | `Rename` | db.client.connection.pool.name | Replaced by `db.client.connection.pool.name`. | -### metric: `metric.db.client.connections.pending_requests` +### Metric: `db.client.connections.pending_requests` -Replaced by `db.client.connection.pending_requests`. +**Reason:** Replaced by `db.client.connection.pending_requests`. #### Property Changes @@ -88,9 +88,9 @@ Replaced by `db.client.connection.pending_requests`. | --- | --- | --- | --- | | db.client.connections.pool.name | `Rename` | db.client.connection.pool.name | Replaced by `db.client.connection.pool.name`. | -### metric: `metric.db.client.connections.timeouts` +### Metric: `db.client.connections.timeouts` -Replaced by `db.client.connection.timeouts`. +**Reason:** Replaced by `db.client.connection.timeouts`. #### Property Changes @@ -104,9 +104,9 @@ Replaced by `db.client.connection.timeouts`. | --- | --- | --- | --- | | db.client.connections.pool.name | `Rename` | db.client.connection.pool.name | Replaced by `db.client.connection.pool.name`. | -### metric: `metric.db.client.connections.create_time` +### Metric: `db.client.connections.create_time` -Replaced by `db.client.connection.create_time` with unit `s`. +**Reason:** Replaced by `db.client.connection.create_time` with unit `s`. #### Attribute Changes @@ -114,9 +114,9 @@ Replaced by `db.client.connection.create_time` with unit `s`. | --- | --- | --- | --- | | db.client.connections.pool.name | `Rename` | db.client.connection.pool.name | Replaced by `db.client.connection.pool.name`. | -### metric: `metric.db.client.connections.wait_time` +### Metric: `db.client.connections.wait_time` -Replaced by `db.client.connection.wait_time` with unit `s`. +**Reason:** Replaced by `db.client.connection.wait_time` with unit `s`. #### Attribute Changes @@ -124,9 +124,9 @@ Replaced by `db.client.connection.wait_time` with unit `s`. | --- | --- | --- | --- | | db.client.connections.pool.name | `Rename` | db.client.connection.pool.name | Replaced by `db.client.connection.pool.name`. | -### metric: `metric.db.client.connections.use_time` +### Metric: `db.client.connections.use_time` -Replaced by `db.client.connection.use_time` with unit `s`. +**Reason:** Replaced by `db.client.connection.use_time` with unit `s`. #### Attribute Changes @@ -134,9 +134,9 @@ Replaced by `db.client.connection.use_time` with unit `s`. | --- | --- | --- | --- | | db.client.connections.pool.name | `Rename` | db.client.connection.pool.name | Replaced by `db.client.connection.pool.name`. | -### metric: `metric.db.client.cosmosdb.operation.request_charge` +### Metric: `db.client.cosmosdb.operation.request_charge` -Replaced by `azure.cosmosdb.client.operation.request_charge`. +**Reason:** Replaced by `azure.cosmosdb.client.operation.request_charge`. #### Property Changes @@ -154,9 +154,9 @@ Note: You will need to check what other attributes/properties need to be updated | db.cosmosdb.regions_contacted | `Rename` | azure.cosmosdb.operation.contacted_regions | Replaced by `azure.cosmosdb.operation.contacted_regions`. | | db.cosmosdb.sub_status_code | `Rename` | azure.cosmosdb.response.sub_status_code | Replaced by `azure.cosmosdb.response.sub_status_code`. | -### metric: `metric.db.client.cosmosdb.active_instance.count` +### Metric: `db.client.cosmosdb.active_instance.count` -Replaced by `azure.cosmosdb.client.active_instance.count`. +**Reason:** Replaced by `azure.cosmosdb.client.active_instance.count`. #### Property Changes @@ -166,7 +166,7 @@ Replaced by `azure.cosmosdb.client.active_instance.count`. Note: You will need to check what other attributes/properties need to be updated. -### metric: `metric.db.client.operation.duration` +### Metric: `db.client.operation.duration` #### Attribute Changes @@ -174,7 +174,7 @@ Note: You will need to check what other attributes/properties need to be updated | --- | --- | --- | --- | | db.system | `Rename` | db.system.name | Replaced by `db.system.name`. | -### metric: `metric.db.client.response.returned_rows` +### Metric: `db.client.response.returned_rows` #### Attribute Changes @@ -182,9 +182,9 @@ Note: You will need to check what other attributes/properties need to be updated | --- | --- | --- | --- | | db.system | `Rename` | db.system.name | Replaced by `db.system.name`. | -## span +## Span -### span: `span.db.client` +### Span: `span.db.client` #### Attribute Changes diff --git a/docs/registry/namespaces/exception/upgrade.md b/docs/registry/namespaces/exception/upgrade.md index 91f5ca58b7..f7c19e459f 100644 --- a/docs/registry/namespaces/exception/upgrade.md +++ b/docs/registry/namespaces/exception/upgrade.md @@ -5,9 +5,9 @@ The upgrade process helps to document what is needed to upgrade the signals to the latest version. -## event +## Event -### event: `event.exception` +### Event: `exception` #### Attribute Changes diff --git a/docs/registry/namespaces/gen-ai/upgrade.md b/docs/registry/namespaces/gen-ai/upgrade.md index 235410d8e5..725c8c59eb 100644 --- a/docs/registry/namespaces/gen-ai/upgrade.md +++ b/docs/registry/namespaces/gen-ai/upgrade.md @@ -5,11 +5,11 @@ The upgrade process helps to document what is needed to upgrade the signals to the latest version. -## event +## Event -### event: `event.gen_ai.system.message` +### Event: `gen_ai.system.message` -Chat history is reported on `gen_ai.system_instructions` attribute on spans or `gen_ai.client.inference.operation.details` event. +**Reason:** Chat history is reported on `gen_ai.system_instructions` attribute on spans or `gen_ai.client.inference.operation.details` event. #### Attribute Changes @@ -17,9 +17,9 @@ Chat history is reported on `gen_ai.system_instructions` attribute on spans or ` | --- | --- | --- | --- | | gen_ai.system | `Rename` | gen_ai.provider.name | Replaced by `gen_ai.provider.name`. | -### event: `event.gen_ai.user.message` +### Event: `gen_ai.user.message` -Chat history is reported on `gen_ai.input.messages` attribute on spans or `gen_ai.client.inference.operation.details` event. +**Reason:** Chat history is reported on `gen_ai.input.messages` attribute on spans or `gen_ai.client.inference.operation.details` event. #### Attribute Changes @@ -27,9 +27,9 @@ Chat history is reported on `gen_ai.input.messages` attribute on spans or `gen_a | --- | --- | --- | --- | | gen_ai.system | `Rename` | gen_ai.provider.name | Replaced by `gen_ai.provider.name`. | -### event: `event.gen_ai.assistant.message` +### Event: `gen_ai.assistant.message` -Chat history is reported on `gen_ai.input.messages` attribute on spans or `gen_ai.client.inference.operation.details` event. +**Reason:** Chat history is reported on `gen_ai.input.messages` attribute on spans or `gen_ai.client.inference.operation.details` event. #### Attribute Changes @@ -37,9 +37,9 @@ Chat history is reported on `gen_ai.input.messages` attribute on spans or `gen_a | --- | --- | --- | --- | | gen_ai.system | `Rename` | gen_ai.provider.name | Replaced by `gen_ai.provider.name`. | -### event: `event.gen_ai.tool.message` +### Event: `gen_ai.tool.message` -Chat history is reported on `gen_ai.input.messages` attribute on spans or `gen_ai.client.inference.operation.details` event. +**Reason:** Chat history is reported on `gen_ai.input.messages` attribute on spans or `gen_ai.client.inference.operation.details` event. #### Attribute Changes @@ -47,9 +47,9 @@ Chat history is reported on `gen_ai.input.messages` attribute on spans or `gen_a | --- | --- | --- | --- | | gen_ai.system | `Rename` | gen_ai.provider.name | Replaced by `gen_ai.provider.name`. | -### event: `event.gen_ai.choice` +### Event: `gen_ai.choice` -Chat history is reported on `gen_ai.output.messages` attribute on spans or `gen_ai.client.inference.operation.details` event. +**Reason:** Chat history is reported on `gen_ai.output.messages` attribute on spans or `gen_ai.client.inference.operation.details` event. #### Attribute Changes diff --git a/docs/registry/namespaces/http/upgrade.md b/docs/registry/namespaces/http/upgrade.md index d4a514e406..7844818133 100644 --- a/docs/registry/namespaces/http/upgrade.md +++ b/docs/registry/namespaces/http/upgrade.md @@ -5,9 +5,9 @@ The upgrade process helps to document what is needed to upgrade the signals to the latest version. -## metric +## Metric -### metric: `metric.http.server.active_requests` +### Metric: `http.server.active_requests` #### Attribute Changes @@ -18,9 +18,9 @@ The upgrade process helps to document what is needed to upgrade the signals to t | net.host.name | `Rename` | server.address | Replaced by `server.address`. | | net.host.port | `Rename` | server.port | Replaced by `server.port`. | -## span +## Span -### span: `span.http.client` +### Span: `span.http.client` #### Attribute Changes @@ -28,7 +28,7 @@ The upgrade process helps to document what is needed to upgrade the signals to t | --- | --- | --- | --- | | http.method | `Rename` | http.request.method | Replaced by `http.request.method`. | -### span: `span.http.server` +### Span: `span.http.server` #### Attribute Changes diff --git a/docs/registry/namespaces/jvm/upgrade.md b/docs/registry/namespaces/jvm/upgrade.md index 440fdcfe8d..16ec33bc78 100644 --- a/docs/registry/namespaces/jvm/upgrade.md +++ b/docs/registry/namespaces/jvm/upgrade.md @@ -5,11 +5,11 @@ The upgrade process helps to document what is needed to upgrade the signals to the latest version. -## metric +## Metric -### metric: `metric.jvm.buffer.memory.usage` +### Metric: `jvm.buffer.memory.usage` -Replaced by `jvm.buffer.memory.used`. +**Reason:** Replaced by `jvm.buffer.memory.used`. #### Property Changes diff --git a/docs/registry/namespaces/k8s/upgrade.md b/docs/registry/namespaces/k8s/upgrade.md index 8481dbd2b6..dd772a084d 100644 --- a/docs/registry/namespaces/k8s/upgrade.md +++ b/docs/registry/namespaces/k8s/upgrade.md @@ -5,11 +5,11 @@ The upgrade process helps to document what is needed to upgrade the signals to the latest version. -## metric +## Metric -### metric: `metric.k8s.replication_controller.desired_pods` +### Metric: `k8s.replication_controller.desired_pods` -Replaced by `k8s.replicationcontroller.desired_pods`. +**Reason:** Replaced by `k8s.replicationcontroller.desired_pods`. #### Property Changes @@ -17,9 +17,9 @@ Replaced by `k8s.replicationcontroller.desired_pods`. | --- | --- | --- | | Name | k8s.replication_controller.desired_pods | k8s.replicationcontroller.desired_pods | -### metric: `metric.k8s.replication_controller.available_pods` +### Metric: `k8s.replication_controller.available_pods` -Replaced by `k8s.replicationcontroller.available_pods`. +**Reason:** Replaced by `k8s.replicationcontroller.available_pods`. #### Property Changes diff --git a/docs/registry/namespaces/messaging/upgrade.md b/docs/registry/namespaces/messaging/upgrade.md index 314d936822..3e5367a54b 100644 --- a/docs/registry/namespaces/messaging/upgrade.md +++ b/docs/registry/namespaces/messaging/upgrade.md @@ -5,11 +5,11 @@ The upgrade process helps to document what is needed to upgrade the signals to the latest version. -## metric +## Metric -### metric: `metric.messaging.publish.duration` +### Metric: `messaging.publish.duration` -Replaced by `messaging.client.operation.duration`. +**Reason:** Replaced by `messaging.client.operation.duration`. #### Property Changes @@ -23,9 +23,9 @@ Replaced by `messaging.client.operation.duration`. | --- | --- | --- | --- | | messaging.operation | `Migrate` | messaging.operation.type | Replaced by `messaging.operation.type`. | -### metric: `metric.messaging.receive.duration` +### Metric: `messaging.receive.duration` -Replaced by `messaging.client.operation.duration`. +**Reason:** Replaced by `messaging.client.operation.duration`. #### Property Changes @@ -39,9 +39,9 @@ Replaced by `messaging.client.operation.duration`. | --- | --- | --- | --- | | messaging.operation | `Migrate` | messaging.operation.type | Replaced by `messaging.operation.type`. | -### metric: `metric.messaging.process.messages` +### Metric: `messaging.process.messages` -Replaced by `messaging.client.consumed.messages`. +**Reason:** Replaced by `messaging.client.consumed.messages`. #### Property Changes @@ -55,9 +55,9 @@ Replaced by `messaging.client.consumed.messages`. | --- | --- | --- | --- | | messaging.operation | `Migrate` | messaging.operation.type | Replaced by `messaging.operation.type`. | -### metric: `metric.messaging.publish.messages` +### Metric: `messaging.publish.messages` -Replaced by `messaging.client.sent.messages`. +**Reason:** Replaced by `messaging.client.sent.messages`. #### Property Changes @@ -71,9 +71,9 @@ Replaced by `messaging.client.sent.messages`. | --- | --- | --- | --- | | messaging.operation | `Migrate` | messaging.operation.type | Replaced by `messaging.operation.type`. | -### metric: `metric.messaging.receive.messages` +### Metric: `messaging.receive.messages` -Replaced by `messaging.client.consumed.messages`. +**Reason:** Replaced by `messaging.client.consumed.messages`. #### Property Changes @@ -87,9 +87,9 @@ Replaced by `messaging.client.consumed.messages`. | --- | --- | --- | --- | | messaging.operation | `Migrate` | messaging.operation.type | Replaced by `messaging.operation.type`. | -### metric: `metric.messaging.client.published.messages` +### Metric: `messaging.client.published.messages` -Replaced by `messaging.client.sent.messages`. +**Reason:** Replaced by `messaging.client.sent.messages`. #### Property Changes @@ -103,7 +103,7 @@ Replaced by `messaging.client.sent.messages`. | --- | --- | --- | --- | | messaging.operation | `Migrate` | messaging.operation.type | Replaced by `messaging.operation.type`. | -### metric: `metric.messaging.client.operation.duration` +### Metric: `messaging.client.operation.duration` #### Attribute Changes @@ -111,7 +111,7 @@ Replaced by `messaging.client.sent.messages`. | --- | --- | --- | --- | | messaging.operation | `Migrate` | messaging.operation.type | Replaced by `messaging.operation.type`. | -### metric: `metric.messaging.process.duration` +### Metric: `messaging.process.duration` #### Attribute Changes @@ -119,7 +119,7 @@ Replaced by `messaging.client.sent.messages`. | --- | --- | --- | --- | | messaging.operation | `Migrate` | messaging.operation.name | Replaced by `messaging.operation.name`. | -### metric: `metric.messaging.client.sent.messages` +### Metric: `messaging.client.sent.messages` #### Attribute Changes @@ -127,7 +127,7 @@ Replaced by `messaging.client.sent.messages`. | --- | --- | --- | --- | | messaging.operation | `Migrate` | messaging.operation.name | Replaced by `messaging.operation.name`. | -### metric: `metric.messaging.client.consumed.messages` +### Metric: `messaging.client.consumed.messages` #### Attribute Changes diff --git a/docs/registry/namespaces/otel/upgrade.md b/docs/registry/namespaces/otel/upgrade.md index 1dcb86903c..e1044b129d 100644 --- a/docs/registry/namespaces/otel/upgrade.md +++ b/docs/registry/namespaces/otel/upgrade.md @@ -5,17 +5,17 @@ The upgrade process helps to document what is needed to upgrade the signals to the latest version. -## entity +## Entity -### entity: `entity.otel.scope` +### Entity: `otel.scope` -Obsoleted. +**Reason:** Obsoleted. -## metric +## Metric -### metric: `metric.otel.sdk.span.live.count` +### Metric: `otel.sdk.span.live.count` -Replaced by `otel.sdk.span.live`. +**Reason:** Replaced by `otel.sdk.span.live`. #### Property Changes @@ -23,13 +23,13 @@ Replaced by `otel.sdk.span.live`. | --- | --- | --- | | Name | otel.sdk.span.live.count | otel.sdk.span.live | -### metric: `metric.otel.sdk.span.ended.count` +### Metric: `otel.sdk.span.ended.count` -Obsoleted. +**Reason:** Obsoleted. -### metric: `metric.otel.sdk.processor.span.processed.count` +### Metric: `otel.sdk.processor.span.processed.count` -Replaced by `otel.sdk.processor.span.processed`. +**Reason:** Replaced by `otel.sdk.processor.span.processed`. #### Property Changes @@ -38,9 +38,9 @@ Replaced by `otel.sdk.processor.span.processed`. | Name | otel.sdk.processor.span.processed.count | otel.sdk.processor.span.processed | | Instrument | updowncounter | counter | -### metric: `metric.otel.sdk.exporter.span.inflight.count` +### Metric: `otel.sdk.exporter.span.inflight.count` -Replaced by `otel.sdk.exporter.span.inflight`. +**Reason:** Replaced by `otel.sdk.exporter.span.inflight`. #### Property Changes @@ -48,9 +48,9 @@ Replaced by `otel.sdk.exporter.span.inflight`. | --- | --- | --- | | Name | otel.sdk.exporter.span.inflight.count | otel.sdk.exporter.span.inflight | -### metric: `metric.otel.sdk.exporter.span.exported.count` +### Metric: `otel.sdk.exporter.span.exported.count` -Replaced by `otel.sdk.exporter.span.exported`. +**Reason:** Replaced by `otel.sdk.exporter.span.exported`. #### Property Changes @@ -59,6 +59,6 @@ Replaced by `otel.sdk.exporter.span.exported`. | Name | otel.sdk.exporter.span.exported.count | otel.sdk.exporter.span.exported | | Instrument | updowncounter | counter | -### metric: `metric.otel.sdk.span.ended` +### Metric: `otel.sdk.span.ended` -Obsoleted. +**Reason:** Obsoleted. diff --git a/docs/registry/namespaces/system/upgrade.md b/docs/registry/namespaces/system/upgrade.md index 7e0f9ec4d6..b0017a862f 100644 --- a/docs/registry/namespaces/system/upgrade.md +++ b/docs/registry/namespaces/system/upgrade.md @@ -5,11 +5,11 @@ The upgrade process helps to document what is needed to upgrade the signals to the latest version. -## metric +## Metric -### metric: `metric.system.network.connections` +### Metric: `system.network.connections` -Replaced by `system.network.connection.count`. +**Reason:** Replaced by `system.network.connection.count`. #### Property Changes diff --git a/templates/registry/markdown/upgrade_table.j2 b/templates/registry/markdown/upgrade_table.j2 index 11620f0745..0a78e3f465 100644 --- a/templates/registry/markdown/upgrade_table.j2 +++ b/templates/registry/markdown/upgrade_table.j2 @@ -40,9 +40,9 @@ No upgrade process is documented as no deprecations can be found. {% set newSignal = groups | selectattr("id", 'equalto', signal.deprecated.renamed_to) | first %} {% endif %} {% if current == false %} -## {{signal.type}} +## {{signal.type | title_case}} {% endif %} -### {{signal.type}}: `{{signal.id}}` +### {{signal.type | title_case}}: `{% if signal.metric_name %}{{signal.metric_name}}{%elif signal.name %}{{signal.name}}{% else %}{{signal.id}}{%endif%}` {{changes(signal, newSignal) | trim }} {% endmacro %} @@ -55,7 +55,7 @@ No upgrade process is documented as no deprecations can be found. {% macro propertyChanges(signal, new)%} {% if signal.deprecated %} -{{signal.deprecated.note }} +**Reason:** {{signal.deprecated.note }} {% if signal.deprecated.reason == "renamed"%} #### Property Changes