From 56fe533cd41f9978f504d56b4ecc078f28d9cce6 Mon Sep 17 00:00:00 2001 From: liudmila molkova Date: Fri, 21 Nov 2025 11:52:46 -0800 Subject: [PATCH 1/6] rename model/database to model/db to match area names --- model/{database => db}/common.yaml | 0 model/{database => db}/deprecated/metrics-deprecated.yaml | 0 model/{database => db}/deprecated/registry-deprecated.yaml | 0 model/{database => db}/metrics.yaml | 0 model/{database => db}/registry.yaml | 0 model/{database => db}/spans.yaml | 0 6 files changed, 0 insertions(+), 0 deletions(-) rename model/{database => db}/common.yaml (100%) rename model/{database => db}/deprecated/metrics-deprecated.yaml (100%) rename model/{database => db}/deprecated/registry-deprecated.yaml (100%) rename model/{database => db}/metrics.yaml (100%) rename model/{database => db}/registry.yaml (100%) rename model/{database => db}/spans.yaml (100%) diff --git a/model/database/common.yaml b/model/db/common.yaml similarity index 100% rename from model/database/common.yaml rename to model/db/common.yaml diff --git a/model/database/deprecated/metrics-deprecated.yaml b/model/db/deprecated/metrics-deprecated.yaml similarity index 100% rename from model/database/deprecated/metrics-deprecated.yaml rename to model/db/deprecated/metrics-deprecated.yaml diff --git a/model/database/deprecated/registry-deprecated.yaml b/model/db/deprecated/registry-deprecated.yaml similarity index 100% rename from model/database/deprecated/registry-deprecated.yaml rename to model/db/deprecated/registry-deprecated.yaml diff --git a/model/database/metrics.yaml b/model/db/metrics.yaml similarity index 100% rename from model/database/metrics.yaml rename to model/db/metrics.yaml diff --git a/model/database/registry.yaml b/model/db/registry.yaml similarity index 100% rename from model/database/registry.yaml rename to model/db/registry.yaml diff --git a/model/database/spans.yaml b/model/db/spans.yaml similarity index 100% rename from model/database/spans.yaml rename to model/db/spans.yaml From 858c39ee21a926caa8126b1e2db04faa39422aed Mon Sep 17 00:00:00 2001 From: liudmila molkova Date: Fri, 21 Nov 2025 11:58:59 -0800 Subject: [PATCH 2/6] also md --- docs/{database => db}/README.md | 0 docs/{database => db}/cassandra.md | 0 docs/{database => db}/cosmosdb.md | 0 docs/{database => db}/couchdb.md | 0 docs/{database => db}/database-metrics.md | 0 docs/{database => db}/database-spans.md | 0 docs/{database => db}/dynamodb.md | 0 docs/{database => db}/elasticsearch.md | 0 docs/{database => db}/hbase.md | 0 docs/{database => db}/mariadb.md | 0 docs/{database => db}/mongodb.md | 0 docs/{database => db}/mysql.md | 0 docs/{database => db}/oracledb.md | 0 docs/{database => db}/postgresql.md | 0 docs/{database => db}/redis.md | 0 docs/{database => db}/sql-server.md | 0 docs/{database => db}/sql.md | 0 17 files changed, 0 insertions(+), 0 deletions(-) rename docs/{database => db}/README.md (100%) rename docs/{database => db}/cassandra.md (100%) rename docs/{database => db}/cosmosdb.md (100%) rename docs/{database => db}/couchdb.md (100%) rename docs/{database => db}/database-metrics.md (100%) rename docs/{database => db}/database-spans.md (100%) rename docs/{database => db}/dynamodb.md (100%) rename docs/{database => db}/elasticsearch.md (100%) rename docs/{database => db}/hbase.md (100%) rename docs/{database => db}/mariadb.md (100%) rename docs/{database => db}/mongodb.md (100%) rename docs/{database => db}/mysql.md (100%) rename docs/{database => db}/oracledb.md (100%) rename docs/{database => db}/postgresql.md (100%) rename docs/{database => db}/redis.md (100%) rename docs/{database => db}/sql-server.md (100%) rename docs/{database => db}/sql.md (100%) diff --git a/docs/database/README.md b/docs/db/README.md similarity index 100% rename from docs/database/README.md rename to docs/db/README.md diff --git a/docs/database/cassandra.md b/docs/db/cassandra.md similarity index 100% rename from docs/database/cassandra.md rename to docs/db/cassandra.md diff --git a/docs/database/cosmosdb.md b/docs/db/cosmosdb.md similarity index 100% rename from docs/database/cosmosdb.md rename to docs/db/cosmosdb.md diff --git a/docs/database/couchdb.md b/docs/db/couchdb.md similarity index 100% rename from docs/database/couchdb.md rename to docs/db/couchdb.md diff --git a/docs/database/database-metrics.md b/docs/db/database-metrics.md similarity index 100% rename from docs/database/database-metrics.md rename to docs/db/database-metrics.md diff --git a/docs/database/database-spans.md b/docs/db/database-spans.md similarity index 100% rename from docs/database/database-spans.md rename to docs/db/database-spans.md diff --git a/docs/database/dynamodb.md b/docs/db/dynamodb.md similarity index 100% rename from docs/database/dynamodb.md rename to docs/db/dynamodb.md diff --git a/docs/database/elasticsearch.md b/docs/db/elasticsearch.md similarity index 100% rename from docs/database/elasticsearch.md rename to docs/db/elasticsearch.md diff --git a/docs/database/hbase.md b/docs/db/hbase.md similarity index 100% rename from docs/database/hbase.md rename to docs/db/hbase.md diff --git a/docs/database/mariadb.md b/docs/db/mariadb.md similarity index 100% rename from docs/database/mariadb.md rename to docs/db/mariadb.md diff --git a/docs/database/mongodb.md b/docs/db/mongodb.md similarity index 100% rename from docs/database/mongodb.md rename to docs/db/mongodb.md diff --git a/docs/database/mysql.md b/docs/db/mysql.md similarity index 100% rename from docs/database/mysql.md rename to docs/db/mysql.md diff --git a/docs/database/oracledb.md b/docs/db/oracledb.md similarity index 100% rename from docs/database/oracledb.md rename to docs/db/oracledb.md diff --git a/docs/database/postgresql.md b/docs/db/postgresql.md similarity index 100% rename from docs/database/postgresql.md rename to docs/db/postgresql.md diff --git a/docs/database/redis.md b/docs/db/redis.md similarity index 100% rename from docs/database/redis.md rename to docs/db/redis.md diff --git a/docs/database/sql-server.md b/docs/db/sql-server.md similarity index 100% rename from docs/database/sql-server.md rename to docs/db/sql-server.md diff --git a/docs/database/sql.md b/docs/db/sql.md similarity index 100% rename from docs/database/sql.md rename to docs/db/sql.md From ac3686fee4e75b94778187db767af17ade73a242 Mon Sep 17 00:00:00 2001 From: liudmila molkova Date: Fri, 21 Nov 2025 18:03:58 -0800 Subject: [PATCH 3/6] up --- .github/scripts/triage/check-changes-ownership.ts | 14 ++++++++++---- docs/db/README.md | 1 + docs/db/cassandra.md | 1 + docs/db/cosmosdb.md | 1 + docs/db/couchdb.md | 1 + docs/db/database-metrics.md | 1 + docs/db/database-spans.md | 1 + docs/db/dynamodb.md | 1 + docs/db/elasticsearch.md | 1 + docs/db/hbase.md | 1 + docs/db/mariadb.md | 1 + docs/db/mongodb.md | 1 + docs/db/mysql.md | 1 + docs/db/oracledb.md | 1 + docs/db/postgresql.md | 1 + docs/db/redis.md | 1 + docs/db/sql-server.md | 1 + docs/db/sql.md | 1 + 18 files changed, 27 insertions(+), 4 deletions(-) diff --git a/.github/scripts/triage/check-changes-ownership.ts b/.github/scripts/triage/check-changes-ownership.ts index ddd4fe3f76..fae914db57 100644 --- a/.github/scripts/triage/check-changes-ownership.ts +++ b/.github/scripts/triage/check-changes-ownership.ts @@ -8,17 +8,23 @@ const prNumber: number = +process.env.PR_NUMBER!; const changes: string[] = process.env.CHANGED_FILES!.split(','); /** - * Checks if the PR already has the 'triage:accepted:ready' label, meaning the triage checks should be skipped. - * @returns true if the PR has the 'triage:accepted:ready' assigned to it, false otherwise. + * Checks if the PR already has the 'triage:accepted:ready' or 'triage:accepted:ready-with-sig' label, meaning the triage checks should be skipped. + * Also checks if the PR title starts with '[chore]' which indicates a maintenance PR that should skip checks. + * @returns true if the PR has the 'triage:accepted:ready' or 'triage:accepted:ready-with-sig' label or title starts with '[chore]', false otherwise. */ async function shouldSkipCheck() { - const result = await octokit.request("GET /repos/{owner}/{repo}/issues/{issue_number}/labels", { + const result = await octokit.request("GET /repos/{owner}/{repo}/issues/{issue_number}", { owner: owner, repo: repo, issue_number: prNumber }); - return result.data.some(l => l.name === "triage:accepted:ready"); + const hasAcceptedLabel = result.data.labels?.some(l => + l.name === "triage:accepted:ready" || l.name === "triage:accepted:ready-with-sig" + ) ?? false; + const isChore = result.data.title.toLowerCase().startsWith('[chore]'); + + return hasAcceptedLabel || isChore; } function getCommentText(changesWithoutOwners: string[]): string { diff --git a/docs/db/README.md b/docs/db/README.md index 4dd6c14d0e..14ea3cd282 100644 --- a/docs/db/README.md +++ b/docs/db/README.md @@ -1,5 +1,6 @@ # Semantic conventions for database calls and systems diff --git a/docs/db/cassandra.md b/docs/db/cassandra.md index 7bf4dc31ef..740a97bee2 100644 --- a/docs/db/cassandra.md +++ b/docs/db/cassandra.md @@ -1,5 +1,6 @@ # Semantic conventions for Cassandra client operations diff --git a/docs/db/cosmosdb.md b/docs/db/cosmosdb.md index 453c8a40a4..dc72d86378 100644 --- a/docs/db/cosmosdb.md +++ b/docs/db/cosmosdb.md @@ -1,5 +1,6 @@ # Semantic conventions for Microsoft Azure Cosmos DB client operations diff --git a/docs/db/couchdb.md b/docs/db/couchdb.md index d418528b1c..c24710eae1 100644 --- a/docs/db/couchdb.md +++ b/docs/db/couchdb.md @@ -1,5 +1,6 @@ # Semantic conventions for CouchDB client operations diff --git a/docs/db/database-metrics.md b/docs/db/database-metrics.md index b73859e1a2..4d2451136e 100644 --- a/docs/db/database-metrics.md +++ b/docs/db/database-metrics.md @@ -1,5 +1,6 @@ # Semantic conventions for database client metrics diff --git a/docs/db/database-spans.md b/docs/db/database-spans.md index 4db0c85324..c837460f07 100644 --- a/docs/db/database-spans.md +++ b/docs/db/database-spans.md @@ -1,5 +1,6 @@ # Semantic conventions for database client spans diff --git a/docs/db/dynamodb.md b/docs/db/dynamodb.md index 8e0bcff108..b1ff816809 100644 --- a/docs/db/dynamodb.md +++ b/docs/db/dynamodb.md @@ -1,5 +1,6 @@ # Semantic conventions for AWS DynamoDB client operations diff --git a/docs/db/elasticsearch.md b/docs/db/elasticsearch.md index 4330dc9bac..d40cd55dc2 100644 --- a/docs/db/elasticsearch.md +++ b/docs/db/elasticsearch.md @@ -1,5 +1,6 @@ # Semantic conventions for Elasticsearch client operations diff --git a/docs/db/hbase.md b/docs/db/hbase.md index 6fd99adeba..7eecb00117 100644 --- a/docs/db/hbase.md +++ b/docs/db/hbase.md @@ -1,5 +1,6 @@ # Semantic conventions for HBase client operations diff --git a/docs/db/mariadb.md b/docs/db/mariadb.md index b1eb24cc79..a3cb971d07 100644 --- a/docs/db/mariadb.md +++ b/docs/db/mariadb.md @@ -1,5 +1,6 @@ # Semantic conventions for MariaDB client operations diff --git a/docs/db/mongodb.md b/docs/db/mongodb.md index c23804da2b..c397fbc0b5 100644 --- a/docs/db/mongodb.md +++ b/docs/db/mongodb.md @@ -1,5 +1,6 @@ # Semantic conventions for MongoDB client operations diff --git a/docs/db/mysql.md b/docs/db/mysql.md index 53031dbfc2..3b3635e22c 100644 --- a/docs/db/mysql.md +++ b/docs/db/mysql.md @@ -1,5 +1,6 @@ # Semantic conventions for MySQL client operations diff --git a/docs/db/oracledb.md b/docs/db/oracledb.md index 01fefe7af6..cf6d91f33b 100644 --- a/docs/db/oracledb.md +++ b/docs/db/oracledb.md @@ -1,5 +1,6 @@ # Semantic conventions for Oracle Database diff --git a/docs/db/postgresql.md b/docs/db/postgresql.md index 362820c51d..5cdc9813d7 100644 --- a/docs/db/postgresql.md +++ b/docs/db/postgresql.md @@ -1,5 +1,6 @@ # Semantic conventions for PostgreSQL client operations diff --git a/docs/db/redis.md b/docs/db/redis.md index fd5cb91921..85ea6d4849 100644 --- a/docs/db/redis.md +++ b/docs/db/redis.md @@ -1,5 +1,6 @@ # Semantic conventions for Redis client operations diff --git a/docs/db/sql-server.md b/docs/db/sql-server.md index 85df3a5151..14b43b562a 100644 --- a/docs/db/sql-server.md +++ b/docs/db/sql-server.md @@ -1,5 +1,6 @@ # Semantic conventions for Microsoft SQL Server client operations diff --git a/docs/db/sql.md b/docs/db/sql.md index e9e8c89425..e2d4a16ee1 100644 --- a/docs/db/sql.md +++ b/docs/db/sql.md @@ -1,5 +1,6 @@ # Semantic conventions for SQL databases client operations From e89bc3f7b9826d30300bad45d618ec086085dee7 Mon Sep 17 00:00:00 2001 From: liudmila molkova Date: Fri, 21 Nov 2025 18:07:59 -0800 Subject: [PATCH 4/6] up --- .github/CODEOWNERS | 4 +- docs/cloud-providers/aws-sdk.md | 2 +- docs/db/cassandra.md | 10 ++--- docs/db/cosmosdb.md | 10 ++--- docs/db/couchdb.md | 4 +- docs/db/database-metrics.md | 8 ++-- docs/db/database-spans.md | 8 ++-- docs/db/dynamodb.md | 2 +- docs/db/elasticsearch.md | 6 +-- docs/db/hbase.md | 4 +- docs/db/mariadb.md | 8 ++-- docs/db/mongodb.md | 4 +- docs/db/mysql.md | 6 +-- docs/db/oracledb.md | 2 +- docs/db/postgresql.md | 6 +-- docs/db/redis.md | 6 +-- docs/db/sql-server.md | 6 +-- docs/db/sql.md | 12 ++--- docs/general/metrics.md | 2 +- docs/general/trace.md | 2 +- docs/how-to-write-conventions/README.md | 2 +- .../t-shaped-signals.md | 2 +- docs/registry/attributes/db.md | 4 +- model/db/registry.yaml | 4 +- model/db/spans.yaml | 44 +++++++++---------- 25 files changed, 84 insertions(+), 84 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 1e6127c3b5..66b0b726c9 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -129,8 +129,8 @@ /docs/non-normative/code-attrs-migration.md @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-code-attribute-approvers # Database semantic conventions -/docs/database/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-db-approvers -/model/database/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-db-approvers +/docs/db/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-db-approvers +/model/db/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-db-approvers /docs/non-normative/database-test-cases/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-db-approvers /docs/non-normative/db-migration.md @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-db-approvers diff --git a/docs/cloud-providers/aws-sdk.md b/docs/cloud-providers/aws-sdk.md index 22f1146f26..d78966bf85 100644 --- a/docs/cloud-providers/aws-sdk.md +++ b/docs/cloud-providers/aws-sdk.md @@ -75,7 +75,7 @@ interesting conventions are found. The following Semantic Conventions extend the general AWS SDK attributes for specific AWS services: -- [AWS DynamoDB](/docs/database/dynamodb.md): Semantic Conventions for _AWS DynamoDB_. +- [AWS DynamoDB](/docs/db/dynamodb.md): Semantic Conventions for _AWS DynamoDB_. - [AWS S3](/docs/object-stores/s3.md): Semantic Conventions for _AWS S3_. - [AWS Bedrock](/docs/gen-ai/aws-bedrock.md): Semantic Conventions for _AWS Bedrock_. - [AWS SNS](/docs/messaging/sns.md): Semantic Conventions for _AWS SNS_. diff --git a/docs/db/cassandra.md b/docs/db/cassandra.md index 740a97bee2..aa4dcceeef 100644 --- a/docs/db/cassandra.md +++ b/docs/db/cassandra.md @@ -27,11 +27,11 @@ The Semantic Conventions for [Cassandra](https://cassandra.apache.org/) extend a **Status:** ![Development](https://img.shields.io/badge/-development-blue) -Spans representing calls to a Cassandra database adhere to the general [Semantic Conventions for Database Client Spans](/docs/database/database-spans.md). +Spans representing calls to a Cassandra database adhere to the general [Semantic Conventions for Database Client Spans](/docs/db/database-spans.md). `db.system.name` MUST be set to `"cassandra"` and SHOULD be provided **at span creation time**. -**Span name** SHOULD follow the general [database span name convention](/docs/database/database-spans.md#name) +**Span name** SHOULD follow the general [database span name convention](/docs/db/database-spans.md#name) **Span kind** SHOULD be `CLIENT`. @@ -114,13 +114,13 @@ calls involving complex queries. Summary may be available to the instrumentation through instrumentation hooks or other means. If it is not available, instrumentations that support query parsing SHOULD generate a summary following -[Generating query summary](/docs/database/database-spans.md#generating-a-summary-of-the-query) +[Generating query summary](/docs/db/database-spans.md#generating-a-summary-of-the-query) section. -**[14] `db.query.text`:** Non-parameterized query text SHOULD NOT be collected by default unless there is sanitization that excludes sensitive data, e.g. by redacting all literal values present in the query text. See [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext). +**[14] `db.query.text`:** Non-parameterized query text SHOULD NOT be collected by default unless there is sanitization that excludes sensitive data, e.g. by redacting all literal values present in the query text. See [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext). Parameterized query text SHOULD be collected by default (the query parameter values themselves are opt-in, see [`db.query.parameter.`](/docs/registry/attributes/db.md)). -**[15] `db.query.text`:** For sanitization see [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext). +**[15] `db.query.text`:** For sanitization see [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext). For batch operations, if the individual operations are known to have the same query text then that query text SHOULD be used, otherwise all of the individual query texts SHOULD be concatenated with separator `; ` or some other database system specific separator if more applicable. Parameterized query text SHOULD NOT be sanitized. Even though parameterized query text can potentially have sensitive data, by using a parameterized query the user is giving a strong signal that any sensitive data will be passed as parameter values, and the benefit to observability of capturing the static part of the query text by default outweighs the risk. diff --git a/docs/db/cosmosdb.md b/docs/db/cosmosdb.md index dc72d86378..5faf84d8c2 100644 --- a/docs/db/cosmosdb.md +++ b/docs/db/cosmosdb.md @@ -33,14 +33,14 @@ extend and override the [Database Semantic Conventions](README.md). **Status:** ![Development](https://img.shields.io/badge/-development-blue) -Cosmos DB instrumentations include call-level spans that represent logical database calls and adhere to the general [Semantic Conventions for Database Client Spans](/docs/database/database-spans.md). +Cosmos DB instrumentations include call-level spans that represent logical database calls and adhere to the general [Semantic Conventions for Database Client Spans](/docs/db/database-spans.md). Additional spans representing network calls may also be created depending on the connection mode (Gateway or Direct). Semantic conventions described in this document apply to the call-level spans only. `db.system.name` MUST be set to `"azure.cosmosdb"` and SHOULD be provided **at span creation time**. -**Span name** SHOULD follow the general [database span name convention](/docs/database/database-spans.md#name) +**Span name** SHOULD follow the general [database span name convention](/docs/db/database-spans.md#name) **Span kind** SHOULD be `CLIENT`. @@ -214,7 +214,7 @@ Instrumentations SHOULD document how `error.type` is populated. **[9] `db.operation.batch.size`:** Operations are only considered batches when they contain two or more operations, and so `db.operation.batch.size` SHOULD never be `1`. -**[10] `db.query.text`:** For sanitization see [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext). +**[10] `db.query.text`:** For sanitization see [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext). For batch operations, if the individual operations are known to have the same query text then that query text SHOULD be used, otherwise all of the individual query texts SHOULD be concatenated with separator `; ` or some other database system specific separator if more applicable. Parameterized query text SHOULD NOT be sanitized. Even though parameterized query text can potentially have sensitive data, by using a parameterized query the user is giving a strong signal that any sensitive data will be passed as parameter values, and the benefit to observability of capturing the static part of the query text by default outweighs the risk. @@ -320,7 +320,7 @@ The following metrics provide insights into Azure Cosmos DB client operation per This metric is [required][MetricRequired]. -It captures the total time taken by an Azure Cosmos DB operation. This metric follows the common [db.client.operation.duration](/docs/database/database-metrics.md#metric-dbclientoperationduration) definition. +It captures the total time taken by an Azure Cosmos DB operation. This metric follows the common [db.client.operation.duration](/docs/db/database-metrics.md#metric-dbclientoperationduration) definition. Refer [azure.cosmosdb.client.operation.request_charge](#metric-azurecosmosdbclientoperationrequest_charge) metrics for dimensions. @@ -328,7 +328,7 @@ Refer [azure.cosmosdb.client.operation.request_charge](#metric-azurecosmosdbclie This metric is [required][MetricRequired]. -It captures the number of items returned by a query or feed operation in Azure Cosmos DB. It helps identify response sizes that may contribute to high latency, increased memory/CPU usage, or network call failures. This metric follows the common [`db.client.response.returned_rows`](/docs/database/database-metrics.md#metric-dbclientresponsereturned_rows) definition. +It captures the number of items returned by a query or feed operation in Azure Cosmos DB. It helps identify response sizes that may contribute to high latency, increased memory/CPU usage, or network call failures. This metric follows the common [`db.client.response.returned_rows`](/docs/db/database-metrics.md#metric-dbclientresponsereturned_rows) definition. Refer [azure.cosmosdb.client.operation.request_charge](#metric-azurecosmosdbclientoperationrequest_charge) metrics for dimensions. diff --git a/docs/db/couchdb.md b/docs/db/couchdb.md index c24710eae1..015172cc90 100644 --- a/docs/db/couchdb.md +++ b/docs/db/couchdb.md @@ -33,11 +33,11 @@ The following table outlines the span attributes applicable to CouchDB. **Status:** ![Development](https://img.shields.io/badge/-development-blue) -Spans representing calls to CouchDB adhere to the general [Semantic Conventions for Database Client Spans](/docs/database/database-spans.md). +Spans representing calls to CouchDB adhere to the general [Semantic Conventions for Database Client Spans](/docs/db/database-spans.md). `db.system.name` MUST be set to `"couchdb"` and SHOULD be provided **at span creation time**. -**Span name** SHOULD follow the general [database span name convention](/docs/database/database-spans.md#name) +**Span name** SHOULD follow the general [database span name convention](/docs/db/database-spans.md#name) **Span kind** SHOULD be `CLIENT`. diff --git a/docs/db/database-metrics.md b/docs/db/database-metrics.md index 4d2451136e..3e9fc4fece 100644 --- a/docs/db/database-metrics.md +++ b/docs/db/database-metrics.md @@ -155,7 +155,7 @@ calls involving complex queries. Summary may be available to the instrumentation through instrumentation hooks or other means. If it is not available, instrumentations that support query parsing SHOULD generate a summary following -[Generating query summary](/docs/database/database-spans.md#generating-a-summary-of-the-query) +[Generating query summary](/docs/db/database-spans.md#generating-a-summary-of-the-query) section. **[14] `db.stored_procedure.name`:** If operation applies to a specific stored procedure. @@ -171,7 +171,7 @@ If a database operation involved multiple network calls (for example retries), t **[17] `server.address`:** When observed from the client side, and when communicating through an intermediary, `server.address` SHOULD represent the server address behind any intermediaries, for example proxies, if it's available. -**[18] `db.query.text`:** For sanitization see [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext). +**[18] `db.query.text`:** For sanitization see [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext). For batch operations, if the individual operations are known to have the same query text then that query text SHOULD be used, otherwise all of the individual query texts SHOULD be concatenated with separator `; ` or some other database system specific separator if more applicable. Parameterized query text SHOULD NOT be sanitized. Even though parameterized query text can potentially have sensitive data, by using a parameterized query the user is giving a strong signal that any sensitive data will be passed as parameter values, and the benefit to observability of capturing the static part of the query text by default outweighs the risk. @@ -344,7 +344,7 @@ calls involving complex queries. Summary may be available to the instrumentation through instrumentation hooks or other means. If it is not available, instrumentations that support query parsing SHOULD generate a summary following -[Generating query summary](/docs/database/database-spans.md#generating-a-summary-of-the-query) +[Generating query summary](/docs/db/database-spans.md#generating-a-summary-of-the-query) section. **[14] `network.peer.address`:** Semantic conventions for individual database systems SHOULD document whether `network.peer.*` attributes are applicable. Network peer address and port are useful when the application interacts with individual database nodes directly. @@ -352,7 +352,7 @@ If a database operation involved multiple network calls (for example retries), t **[15] `server.address`:** When observed from the client side, and when communicating through an intermediary, `server.address` SHOULD represent the server address behind any intermediaries, for example proxies, if it's available. -**[16] `db.query.text`:** For sanitization see [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext). +**[16] `db.query.text`:** For sanitization see [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext). For batch operations, if the individual operations are known to have the same query text then that query text SHOULD be used, otherwise all of the individual query texts SHOULD be concatenated with separator `; ` or some other database system specific separator if more applicable. Parameterized query text SHOULD NOT be sanitized. Even though parameterized query text can potentially have sensitive data, by using a parameterized query the user is giving a strong signal that any sensitive data will be passed as parameter values, and the benefit to observability of capturing the static part of the query text by default outweighs the risk. diff --git a/docs/db/database-spans.md b/docs/db/database-spans.md index c837460f07..a81e7945c9 100644 --- a/docs/db/database-spans.md +++ b/docs/db/database-spans.md @@ -99,7 +99,7 @@ it is RECOMMENDED to instrument the higher-level convenience APIs. These often allow setting `db.operation.*` attributes, which usually are not readily available at the generic query level. -**Span name** is covered in the [Name](/docs/database/database-spans.md#name) section. +**Span name** is covered in the [Name](/docs/db/database-spans.md#name) section. **Span kind** SHOULD be `CLIENT`. It MAY be set to `INTERNAL` on spans representing in-memory database calls. @@ -191,13 +191,13 @@ calls involving complex queries. Summary may be available to the instrumentation through instrumentation hooks or other means. If it is not available, instrumentations that support query parsing SHOULD generate a summary following -[Generating query summary](/docs/database/database-spans.md#generating-a-summary-of-the-query) +[Generating query summary](/docs/db/database-spans.md#generating-a-summary-of-the-query) section. -**[15] `db.query.text`:** Non-parameterized query text SHOULD NOT be collected by default unless there is sanitization that excludes sensitive data, e.g. by redacting all literal values present in the query text. See [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext). +**[15] `db.query.text`:** Non-parameterized query text SHOULD NOT be collected by default unless there is sanitization that excludes sensitive data, e.g. by redacting all literal values present in the query text. See [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext). Parameterized query text SHOULD be collected by default (the query parameter values themselves are opt-in, see [`db.query.parameter.`](/docs/registry/attributes/db.md)). -**[16] `db.query.text`:** For sanitization see [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext). +**[16] `db.query.text`:** For sanitization see [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext). For batch operations, if the individual operations are known to have the same query text then that query text SHOULD be used, otherwise all of the individual query texts SHOULD be concatenated with separator `; ` or some other database system specific separator if more applicable. Parameterized query text SHOULD NOT be sanitized. Even though parameterized query text can potentially have sensitive data, by using a parameterized query the user is giving a strong signal that any sensitive data will be passed as parameter values, and the benefit to observability of capturing the static part of the query text by default outweighs the risk. diff --git a/docs/db/dynamodb.md b/docs/db/dynamodb.md index b1ff816809..4a7f15b5bf 100644 --- a/docs/db/dynamodb.md +++ b/docs/db/dynamodb.md @@ -28,7 +28,7 @@ aliases: [/docs/specs/semconv/database/dynamodb.md] The Semantic Conventions for [AWS DynamoDB](https://aws.amazon.com/dynamodb/) extend and override the general -[AWS SDK Semantic Conventions](/docs/cloud-providers/aws-sdk.md) and [Database Semantic Conventions](/docs/database/README.md). +[AWS SDK Semantic Conventions](/docs/cloud-providers/aws-sdk.md) and [Database Semantic Conventions](/docs/db/README.md). ## Spans diff --git a/docs/db/elasticsearch.md b/docs/db/elasticsearch.md index d40cd55dc2..3129563aa8 100644 --- a/docs/db/elasticsearch.md +++ b/docs/db/elasticsearch.md @@ -28,11 +28,11 @@ The Semantic Conventions for [Elasticsearch](https://www.elastic.co/) extend and **Status:** ![Development](https://img.shields.io/badge/-development-blue) -Spans representing calls to Elasticsearch adhere to the general [Semantic Conventions for Database Client Spans](/docs/database/database-spans.md). +Spans representing calls to Elasticsearch adhere to the general [Semantic Conventions for Database Client Spans](/docs/db/database-spans.md). `db.system.name` MUST be set to `"elasticsearch"` and SHOULD be provided **at span creation time**. -**Span name** SHOULD follow the general [database span name convention](/docs/database/database-spans.md#name) +**Span name** SHOULD follow the general [database span name convention](/docs/db/database-spans.md#name) with the endpoint identifier stored in `db.operation.name`, and the index stored in `db.collection.name`. **Span kind** SHOULD be `CLIENT`. @@ -120,7 +120,7 @@ Instrumentations SHOULD document how `error.type` is populated. **[12] `db.query.text`:** Should be collected by default for search-type queries and only if there is sanitization that excludes sensitive information. -**[13] `db.query.text`:** For sanitization see [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext). +**[13] `db.query.text`:** For sanitization see [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext). For batch operations, if the individual operations are known to have the same query text then that query text SHOULD be used, otherwise all of the individual query texts SHOULD be concatenated with separator `; ` or some other database system specific separator if more applicable. Parameterized query text SHOULD NOT be sanitized. Even though parameterized query text can potentially have sensitive data, by using a parameterized query the user is giving a strong signal that any sensitive data will be passed as parameter values, and the benefit to observability of capturing the static part of the query text by default outweighs the risk. diff --git a/docs/db/hbase.md b/docs/db/hbase.md index 7eecb00117..a21d2bb105 100644 --- a/docs/db/hbase.md +++ b/docs/db/hbase.md @@ -27,11 +27,11 @@ The Semantic Conventions for [HBase](https://hbase.apache.org/) extend and overr **Status:** ![Development](https://img.shields.io/badge/-development-blue) -Spans representing calls to an HBase database adhere to the general [Semantic Conventions for Database Client Spans](/docs/database/database-spans.md). +Spans representing calls to an HBase database adhere to the general [Semantic Conventions for Database Client Spans](/docs/db/database-spans.md). `db.system.name` MUST be set to `"hbase"` and SHOULD be provided **at span creation time**. -**Span name** SHOULD follow the general [database span name convention](/docs/database/database-spans.md#name) +**Span name** SHOULD follow the general [database span name convention](/docs/db/database-spans.md#name) **Span kind** SHOULD be `CLIENT`. diff --git a/docs/db/mariadb.md b/docs/db/mariadb.md index a3cb971d07..f20f4a277a 100644 --- a/docs/db/mariadb.md +++ b/docs/db/mariadb.md @@ -25,7 +25,7 @@ aliases: [/docs/specs/semconv/database/mariadb.md] **Status:** ![Stable](https://img.shields.io/badge/-stable-lightgreen) -Spans representing calls to MariaDB adhere to the general [Semantic Conventions for Database Client Spans](/docs/database/README.md). +Spans representing calls to MariaDB adhere to the general [Semantic Conventions for Database Client Spans](/docs/db/README.md). `db.system.name` MUST be set to `"mariadb"` and SHOULD be provided **at span creation time**. @@ -92,13 +92,13 @@ calls involving complex queries. Summary may be available to the instrumentation through instrumentation hooks or other means. If it is not available, instrumentations that support query parsing SHOULD generate a summary following -[Generating query summary](/docs/database/database-spans.md#generating-a-summary-of-the-query) +[Generating query summary](/docs/db/database-spans.md#generating-a-summary-of-the-query) section. -**[13] `db.query.text`:** Non-parameterized query text SHOULD NOT be collected by default unless there is sanitization that excludes sensitive data, e.g. by redacting all literal values present in the query text. See [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext). +**[13] `db.query.text`:** Non-parameterized query text SHOULD NOT be collected by default unless there is sanitization that excludes sensitive data, e.g. by redacting all literal values present in the query text. See [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext). Parameterized query text SHOULD be collected by default (the query parameter values themselves are opt-in, see [`db.query.parameter.`](/docs/registry/attributes/db.md)). -**[14] `db.query.text`:** For sanitization see [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext). +**[14] `db.query.text`:** For sanitization see [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext). For batch operations, if the individual operations are known to have the same query text then that query text SHOULD be used, otherwise all of the individual query texts SHOULD be concatenated with separator `; ` or some other database system specific separator if more applicable. Parameterized query text SHOULD NOT be sanitized. Even though parameterized query text can potentially have sensitive data, by using a parameterized query the user is giving a strong signal that any sensitive data will be passed as parameter values, and the benefit to observability of capturing the static part of the query text by default outweighs the risk. diff --git a/docs/db/mongodb.md b/docs/db/mongodb.md index c397fbc0b5..27217d75b4 100644 --- a/docs/db/mongodb.md +++ b/docs/db/mongodb.md @@ -28,10 +28,10 @@ The Semantic Conventions for [MongoDB](https://www.mongodb.com/) extend and over **Status:** ![Development](https://img.shields.io/badge/-development-blue) -Spans representing calls to MongoDB adhere to the general [Semantic Conventions for Database Client Spans](/docs/database/database-spans.md). +Spans representing calls to MongoDB adhere to the general [Semantic Conventions for Database Client Spans](/docs/db/database-spans.md). `db.system.name` MUST be set to `"mongodb"` and SHOULD be provided **at span creation time**. -**Span name** SHOULD follow the general [database span name convention](/docs/database/database-spans.md#name) +**Span name** SHOULD follow the general [database span name convention](/docs/db/database-spans.md#name) **Span kind** SHOULD be `CLIENT`. diff --git a/docs/db/mysql.md b/docs/db/mysql.md index 3b3635e22c..56be60bc3f 100644 --- a/docs/db/mysql.md +++ b/docs/db/mysql.md @@ -92,13 +92,13 @@ calls involving complex queries. Summary may be available to the instrumentation through instrumentation hooks or other means. If it is not available, instrumentations that support query parsing SHOULD generate a summary following -[Generating query summary](/docs/database/database-spans.md#generating-a-summary-of-the-query) +[Generating query summary](/docs/db/database-spans.md#generating-a-summary-of-the-query) section. -**[13] `db.query.text`:** Non-parameterized query text SHOULD NOT be collected by default unless there is sanitization that excludes sensitive data, e.g. by redacting all literal values present in the query text. See [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext). +**[13] `db.query.text`:** Non-parameterized query text SHOULD NOT be collected by default unless there is sanitization that excludes sensitive data, e.g. by redacting all literal values present in the query text. See [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext). Parameterized query text SHOULD be collected by default (the query parameter values themselves are opt-in, see [`db.query.parameter.`](/docs/registry/attributes/db.md)). -**[14] `db.query.text`:** For sanitization see [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext). +**[14] `db.query.text`:** For sanitization see [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext). For batch operations, if the individual operations are known to have the same query text then that query text SHOULD be used, otherwise all of the individual query texts SHOULD be concatenated with separator `; ` or some other database system specific separator if more applicable. Parameterized query text SHOULD NOT be sanitized. Even though parameterized query text can potentially have sensitive data, by using a parameterized query the user is giving a strong signal that any sensitive data will be passed as parameter values, and the benefit to observability of capturing the static part of the query text by default outweighs the risk. diff --git a/docs/db/oracledb.md b/docs/db/oracledb.md index cf6d91f33b..6d6e02d979 100644 --- a/docs/db/oracledb.md +++ b/docs/db/oracledb.md @@ -91,7 +91,7 @@ calls involving complex queries. Summary may be available to the instrumentation through instrumentation hooks or other means. If it is not available, instrumentations that support query parsing SHOULD generate a summary following -[Generating query summary](/docs/database/database-spans.md#generating-a-summary-of-the-query) +[Generating query summary](/docs/db/database-spans.md#generating-a-summary-of-the-query) section. **[13] `db.query.text`:** Non-parameterized query text SHOULD NOT be collected by default unless explicitly configured and sanitized to exclude sensitive data, e.g. by redacting all literal values present in the query text. See [Sanitization of `db.query.text`](../database/database-spans.md#sanitization-of-dbquerytext). Parameterized query text MUST also NOT be collected by default unless explicitly configured. The query parameter values themselves are opt-in, see [`db.query.parameter.`](../registry/attributes/db.md)). diff --git a/docs/db/postgresql.md b/docs/db/postgresql.md index 5cdc9813d7..7927e45248 100644 --- a/docs/db/postgresql.md +++ b/docs/db/postgresql.md @@ -100,13 +100,13 @@ calls involving complex queries. Summary may be available to the instrumentation through instrumentation hooks or other means. If it is not available, instrumentations that support query parsing SHOULD generate a summary following -[Generating query summary](/docs/database/database-spans.md#generating-a-summary-of-the-query) +[Generating query summary](/docs/db/database-spans.md#generating-a-summary-of-the-query) section. -**[13] `db.query.text`:** Non-parameterized query text SHOULD NOT be collected by default unless there is sanitization that excludes sensitive data, e.g. by redacting all literal values present in the query text. See [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext). +**[13] `db.query.text`:** Non-parameterized query text SHOULD NOT be collected by default unless there is sanitization that excludes sensitive data, e.g. by redacting all literal values present in the query text. See [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext). Parameterized query text SHOULD be collected by default (the query parameter values themselves are opt-in, see [`db.query.parameter.`](/docs/registry/attributes/db.md)). -**[14] `db.query.text`:** For sanitization see [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext). +**[14] `db.query.text`:** For sanitization see [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext). For batch operations, if the individual operations are known to have the same query text then that query text SHOULD be used, otherwise all of the individual query texts SHOULD be concatenated with separator `; ` or some other database system specific separator if more applicable. Parameterized query text SHOULD NOT be sanitized. Even though parameterized query text can potentially have sensitive data, by using a parameterized query the user is giving a strong signal that any sensitive data will be passed as parameter values, and the benefit to observability of capturing the static part of the query text by default outweighs the risk. diff --git a/docs/db/redis.md b/docs/db/redis.md index 85ea6d4849..f02779622e 100644 --- a/docs/db/redis.md +++ b/docs/db/redis.md @@ -20,11 +20,11 @@ The Semantic Conventions for [Redis](https://redis.com/) extend and override the **Status:** ![Development](https://img.shields.io/badge/-development-blue) -Spans representing calls to Redis adhere to the general [Semantic Conventions for Database Client Spans](/docs/database/database-spans.md). +Spans representing calls to Redis adhere to the general [Semantic Conventions for Database Client Spans](/docs/db/database-spans.md). `db.system.name` MUST be set to `"redis"` and SHOULD be provided **at span creation time**. -**Span name** SHOULD follow the general [database span name convention](/docs/database/database-spans.md#name) +**Span name** SHOULD follow the general [database span name convention](/docs/db/database-spans.md#name) except that `db.namespace` SHOULD NOT be used in the span name since it is a numeric value that ends up looking confusing. @@ -74,7 +74,7 @@ Instrumentations SHOULD document how `error.type` is populated. **[8] `db.operation.batch.size`:** Operations are only considered batches when they contain two or more operations, and so `db.operation.batch.size` SHOULD never be `1`. **[9] `db.query.text`:** Query text SHOULD NOT be collected by default unless there is sanitization that excludes sensitive data, e.g. by redacting all literal values present in the query text. -See [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext). +See [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext). The value provided for `db.query.text` SHOULD correspond to the syntax of the Redis CLI. If, for example, the [`HMSET` command](https://redis.io/docs/latest/commands/hmset) is invoked, `"HMSET myhash field1 ? field2 ?"` would be a suitable value for `db.query.text`. **[10] `db.stored_procedure.name`:** See [FCALL](https://redis.io/docs/latest/commands/fcall/) and [EVALSHA](https://redis.io/docs/latest/commands/evalsha/). diff --git a/docs/db/sql-server.md b/docs/db/sql-server.md index 14b43b562a..2c8641200c 100644 --- a/docs/db/sql-server.md +++ b/docs/db/sql-server.md @@ -99,13 +99,13 @@ calls involving complex queries. Summary may be available to the instrumentation through instrumentation hooks or other means. If it is not available, instrumentations that support query parsing SHOULD generate a summary following -[Generating query summary](/docs/database/database-spans.md#generating-a-summary-of-the-query) +[Generating query summary](/docs/db/database-spans.md#generating-a-summary-of-the-query) section. -**[13] `db.query.text`:** Non-parameterized query text SHOULD NOT be collected by default unless there is sanitization that excludes sensitive data, e.g. by redacting all literal values present in the query text. See [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext). +**[13] `db.query.text`:** Non-parameterized query text SHOULD NOT be collected by default unless there is sanitization that excludes sensitive data, e.g. by redacting all literal values present in the query text. See [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext). Parameterized query text SHOULD be collected by default (the query parameter values themselves are opt-in, see [`db.query.parameter.`](/docs/registry/attributes/db.md)). -**[14] `db.query.text`:** For sanitization see [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext). +**[14] `db.query.text`:** For sanitization see [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext). For batch operations, if the individual operations are known to have the same query text then that query text SHOULD be used, otherwise all of the individual query texts SHOULD be concatenated with separator `; ` or some other database system specific separator if more applicable. Parameterized query text SHOULD NOT be sanitized. Even though parameterized query text can potentially have sensitive data, by using a parameterized query the user is giving a strong signal that any sensitive data will be passed as parameter values, and the benefit to observability of capturing the static part of the query text by default outweighs the risk. diff --git a/docs/db/sql.md b/docs/db/sql.md index e2d4a16ee1..751044c39a 100644 --- a/docs/db/sql.md +++ b/docs/db/sql.md @@ -18,10 +18,10 @@ aliases: [/docs/specs/semconv/database/sql.md] **Status:** ![Stable](https://img.shields.io/badge/-stable-lightgreen) -The SQL databases Semantic Conventions describes how common [Database Semantic Conventions](/docs/database/database-spans.md) apply to SQL databases. +The SQL databases Semantic Conventions describes how common [Database Semantic Conventions](/docs/db/database-spans.md) apply to SQL databases. The following database systems (defined in the -[`db.system.name`](/docs/database/database-spans.md#notes-and-well-known-identifiers-for-dbsystemname) set) +[`db.system.name`](/docs/db/database-spans.md#notes-and-well-known-identifiers-for-dbsystemname) set) are known to use SQL as their primary query language: - `actian.ingres` @@ -44,7 +44,7 @@ are known to use SQL as their primary query language: Many other database systems support SQL and can be accessed via generic database driver such as JDBC or ODBC. Instrumentations applied to generic SQL drivers SHOULD adhere to SQL semantic conventions. -**Span name** SHOULD follow the general [database span name convention](/docs/database/database-spans.md#name) +**Span name** SHOULD follow the general [database span name convention](/docs/db/database-spans.md#name) **Span kind** SHOULD be `CLIENT`. @@ -149,13 +149,13 @@ calls involving complex queries. Summary may be available to the instrumentation through instrumentation hooks or other means. If it is not available, instrumentations that support query parsing SHOULD generate a summary following -[Generating query summary](/docs/database/database-spans.md#generating-a-summary-of-the-query) +[Generating query summary](/docs/db/database-spans.md#generating-a-summary-of-the-query) section. -**[13] `db.query.text`:** Non-parameterized query text SHOULD NOT be collected by default unless there is sanitization that excludes sensitive data, e.g. by redacting all literal values present in the query text. See [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext). +**[13] `db.query.text`:** Non-parameterized query text SHOULD NOT be collected by default unless there is sanitization that excludes sensitive data, e.g. by redacting all literal values present in the query text. See [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext). Parameterized query text SHOULD be collected by default (the query parameter values themselves are opt-in, see [`db.query.parameter.`](/docs/registry/attributes/db.md)). -**[14] `db.query.text`:** For sanitization see [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext). +**[14] `db.query.text`:** For sanitization see [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext). For batch operations, if the individual operations are known to have the same query text then that query text SHOULD be used, otherwise all of the individual query texts SHOULD be concatenated with separator `; ` or some other database system specific separator if more applicable. Parameterized query text SHOULD NOT be sanitized. Even though parameterized query text can potentially have sensitive data, by using a parameterized query the user is giving a strong signal that any sensitive data will be passed as parameter values, and the benefit to observability of capturing the static part of the query text by default outweighs the risk. diff --git a/docs/general/metrics.md b/docs/general/metrics.md index 23900d88d3..5231dbbb8d 100644 --- a/docs/general/metrics.md +++ b/docs/general/metrics.md @@ -20,7 +20,7 @@ aliases: [metrics-general] The following semantic conventions surrounding metrics are defined: * **[General Guidelines](#general-guidelines): General metrics guidelines.** -* [Database](/docs/database/database-metrics.md): For SQL and NoSQL client metrics. +* [Database](/docs/db/database-metrics.md): For SQL and NoSQL client metrics. * [FaaS](/docs/faas/faas-metrics.md): For [Function as a Service](https://wikipedia.org/wiki/Function_as_a_service) metrics. * [GenAI](/docs/gen-ai/gen-ai-metrics.md): For Generative AI metrics. * [HTTP](/docs/http/http-metrics.md): For HTTP client and server metrics. diff --git a/docs/general/trace.md b/docs/general/trace.md index b60a9f6f69..e49ba799b0 100644 --- a/docs/general/trace.md +++ b/docs/general/trace.md @@ -24,7 +24,7 @@ The following semantic conventions for spans are defined: * [Compatibility](trace-compatibility.md): For spans generated by compatibility components, e.g. OpenTracing Shim layer. * [CloudEvents](/docs/cloudevents/README.md): Semantic Conventions for the CloudEvents spans. * [Cloud Providers](/docs/cloud-providers/README.md): Semantic Conventions for cloud providers spans. -* [Database](/docs/database/database-spans.md): For SQL and NoSQL client call spans. +* [Database](/docs/db/database-spans.md): For SQL and NoSQL client call spans. * [Exceptions](/docs/exceptions/exceptions-spans.md): For recording exceptions associated with a span. * [FaaS](/docs/faas/faas-spans.md): For [Function as a Service](https://wikipedia.org/wiki/Function_as_a_service) (e.g., AWS Lambda) spans. * [HTTP](/docs/http/http-spans.md): For HTTP client and server spans. diff --git a/docs/how-to-write-conventions/README.md b/docs/how-to-write-conventions/README.md index e7bf79e006..39bce32492 100644 --- a/docs/how-to-write-conventions/README.md +++ b/docs/how-to-write-conventions/README.md @@ -170,7 +170,7 @@ For example, `db.system.name` contains database names like `mongodb` or `mysql`. System identifier enums help differentiate telemetry signals. MongoDB and MySQL both follow general database conventions, but populate attributes like `db.collection.name` differently and have system-specific attributes. Each system has its own span definitions and documentation. -See [MongoDB](/docs/database/mongodb.md) and [MySQL](/docs/database/mysql.md) as examples +See [MongoDB](/docs/db/mongodb.md) and [MySQL](/docs/db/mysql.md) as examples and check out [system-specific naming](../general/naming.md#system-specific-attributes) for naming guidance. diff --git a/docs/how-to-write-conventions/t-shaped-signals.md b/docs/how-to-write-conventions/t-shaped-signals.md index ff6eb287c8..a35d43649b 100644 --- a/docs/how-to-write-conventions/t-shaped-signals.md +++ b/docs/how-to-write-conventions/t-shaped-signals.md @@ -53,6 +53,6 @@ for a particular domain first. After providing a baseline set of signals for that domain, then explore deeper integrations that may be vendor or implementation specific. -For example, see [Database semantic conventions](/docs/database/README.md) where +For example, see [Database semantic conventions](/docs/db/README.md) where there is general guidance for spans about communicating with a database, and additionally there is database-specific guidance as an extension of the general. diff --git a/docs/registry/attributes/db.md b/docs/registry/attributes/db.md index a98f57e3c3..e328ad980f 100644 --- a/docs/registry/attributes/db.md +++ b/docs/registry/attributes/db.md @@ -93,10 +93,10 @@ calls involving complex queries. Summary may be available to the instrumentation through instrumentation hooks or other means. If it is not available, instrumentations that support query parsing SHOULD generate a summary following -[Generating query summary](/docs/database/database-spans.md#generating-a-summary-of-the-query) +[Generating query summary](/docs/db/database-spans.md#generating-a-summary-of-the-query) section. -**[8] `db.query.text`:** For sanitization see [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext). +**[8] `db.query.text`:** For sanitization see [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext). For batch operations, if the individual operations are known to have the same query text then that query text SHOULD be used, otherwise all of the individual query texts SHOULD be concatenated with separator `; ` or some other database system specific separator if more applicable. Parameterized query text SHOULD NOT be sanitized. Even though parameterized query text can potentially have sensitive data, by using a parameterized query the user is giving a strong signal that any sensitive data will be passed as parameter values, and the benefit to observability of capturing the static part of the query text by default outweighs the risk. diff --git a/model/db/registry.yaml b/model/db/registry.yaml index e3da7104c8..a115c7897b 100644 --- a/model/db/registry.yaml +++ b/model/db/registry.yaml @@ -63,7 +63,7 @@ groups: brief: > The database query being executed. note: > - For sanitization see [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext). + For sanitization see [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext). For batch operations, if the individual operations are known to have the same query text then that query text SHOULD be used, otherwise all of the individual query texts SHOULD be concatenated @@ -118,7 +118,7 @@ groups: Summary may be available to the instrumentation through instrumentation hooks or other means. If it is not available, instrumentations that support query parsing SHOULD generate a summary following - [Generating query summary](/docs/database/database-spans.md#generating-a-summary-of-the-query) + [Generating query summary](/docs/db/database-spans.md#generating-a-summary-of-the-query) section. examples: [ diff --git a/model/db/spans.yaml b/model/db/spans.yaml index c99e616fbb..7c677145ef 100644 --- a/model/db/spans.yaml +++ b/model/db/spans.yaml @@ -36,7 +36,7 @@ groups: recommended: > Non-parameterized query text SHOULD NOT be collected by default unless there is sanitization that excludes sensitive data, e.g. by redacting all literal values present in the query text. - See [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext). + See [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext). Parameterized query text SHOULD be collected by default (the query parameter values themselves are opt-in, @@ -67,7 +67,7 @@ groups: recommended: > Non-parameterized query text SHOULD NOT be collected by default unless there is sanitization that excludes sensitive data, e.g. by redacting all literal values present in the query text. - See [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext). + See [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext). Parameterized query text SHOULD be collected by default (the query parameter values themselves are opt-in, @@ -122,7 +122,7 @@ groups: These often allow setting `db.operation.*` attributes, which usually are not readily available at the generic query level. - **Span name** is covered in the [Name](/docs/database/database-spans.md#name) section. + **Span name** is covered in the [Name](/docs/db/database-spans.md#name) section. **Span kind** SHOULD be `CLIENT`. It MAY be set to `INTERNAL` on spans representing in-memory database calls. @@ -259,7 +259,7 @@ groups: extends: span.db.sql.client span_kind: client brief: > - Spans representing calls to MariaDB adhere to the general [Semantic Conventions for Database Client Spans](/docs/database/README.md). + Spans representing calls to MariaDB adhere to the general [Semantic Conventions for Database Client Spans](/docs/db/README.md). note: > `db.system.name` MUST be set to `"mariadb"` and SHOULD be provided **at span creation time**. attributes: @@ -299,11 +299,11 @@ groups: stability: development extends: trace.db.common.query_and_collection brief: > - Spans representing calls to a Cassandra database adhere to the general [Semantic Conventions for Database Client Spans](/docs/database/database-spans.md). + Spans representing calls to a Cassandra database adhere to the general [Semantic Conventions for Database Client Spans](/docs/db/database-spans.md). note: | `db.system.name` MUST be set to `"cassandra"` and SHOULD be provided **at span creation time**. - **Span name** SHOULD follow the general [database span name convention](/docs/database/database-spans.md#name) + **Span name** SHOULD follow the general [database span name convention](/docs/db/database-spans.md#name) attributes: - ref: db.namespace sampling_relevant: true @@ -346,11 +346,11 @@ groups: stability: development extends: trace.db.common.minimal brief: > - Spans representing calls to an HBase database adhere to the general [Semantic Conventions for Database Client Spans](/docs/database/database-spans.md). + Spans representing calls to an HBase database adhere to the general [Semantic Conventions for Database Client Spans](/docs/db/database-spans.md). note: | `db.system.name` MUST be set to `"hbase"` and SHOULD be provided **at span creation time**. - **Span name** SHOULD follow the general [database span name convention](/docs/database/database-spans.md#name) + **Span name** SHOULD follow the general [database span name convention](/docs/db/database-spans.md#name) attributes: - ref: db.namespace sampling_relevant: true @@ -388,11 +388,11 @@ groups: stability: development extends: trace.db.common.minimal brief: > - Spans representing calls to CouchDB adhere to the general [Semantic Conventions for Database Client Spans](/docs/database/database-spans.md). + Spans representing calls to CouchDB adhere to the general [Semantic Conventions for Database Client Spans](/docs/db/database-spans.md). note: | `db.system.name` MUST be set to `"couchdb"` and SHOULD be provided **at span creation time**. - **Span name** SHOULD follow the general [database span name convention](/docs/database/database-spans.md#name) + **Span name** SHOULD follow the general [database span name convention](/docs/db/database-spans.md#name) attributes: - ref: db.operation.name sampling_relevant: true @@ -427,11 +427,11 @@ groups: span_kind: client extends: trace.db.common.minimal brief: > - Spans representing calls to Redis adhere to the general [Semantic Conventions for Database Client Spans](/docs/database/database-spans.md). + Spans representing calls to Redis adhere to the general [Semantic Conventions for Database Client Spans](/docs/db/database-spans.md). note: | `db.system.name` MUST be set to `"redis"` and SHOULD be provided **at span creation time**. - **Span name** SHOULD follow the general [database span name convention](/docs/database/database-spans.md#name) + **Span name** SHOULD follow the general [database span name convention](/docs/db/database-spans.md#name) except that `db.namespace` SHOULD NOT be used in the span name since it is a numeric value that ends up looking confusing. attributes: @@ -474,7 +474,7 @@ groups: Query text SHOULD NOT be collected by default unless there is sanitization that excludes sensitive data, e.g. by redacting all literal values present in the query text. - See [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext). + See [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext). The value provided for `db.query.text` SHOULD correspond to the syntax of the Redis CLI. If, for example, the [`HMSET` command](https://redis.io/docs/latest/commands/hmset) is invoked, `"HMSET myhash field1 ? field2 ?"` would be a suitable value for `db.query.text`. @@ -513,11 +513,11 @@ groups: span_kind: client extends: trace.db.common.minimal brief: > - Spans representing calls to MongoDB adhere to the general [Semantic Conventions for Database Client Spans](/docs/database/database-spans.md). + Spans representing calls to MongoDB adhere to the general [Semantic Conventions for Database Client Spans](/docs/db/database-spans.md). note: > `db.system.name` MUST be set to `"mongodb"` and SHOULD be provided **at span creation time**. - **Span name** SHOULD follow the general [database span name convention](/docs/database/database-spans.md#name) + **Span name** SHOULD follow the general [database span name convention](/docs/db/database-spans.md#name) attributes: - ref: db.operation.name sampling_relevant: true @@ -557,11 +557,11 @@ groups: span_kind: client extends: trace.db.common.minimal brief: > - Spans representing calls to Elasticsearch adhere to the general [Semantic Conventions for Database Client Spans](/docs/database/database-spans.md). + Spans representing calls to Elasticsearch adhere to the general [Semantic Conventions for Database Client Spans](/docs/db/database-spans.md). note: | `db.system.name` MUST be set to `"elasticsearch"` and SHOULD be provided **at span creation time**. - **Span name** SHOULD follow the general [database span name convention](/docs/database/database-spans.md#name) + **Span name** SHOULD follow the general [database span name convention](/docs/db/database-spans.md#name) with the endpoint identifier stored in `db.operation.name`, and the index stored in `db.collection.name`. attributes: - ref: http.request.method @@ -638,10 +638,10 @@ groups: stability: stable extends: trace.db.common.query brief: > - The SQL databases Semantic Conventions describes how common [Database Semantic Conventions](/docs/database/database-spans.md) apply to SQL databases. + The SQL databases Semantic Conventions describes how common [Database Semantic Conventions](/docs/db/database-spans.md) apply to SQL databases. note: | The following database systems (defined in the - [`db.system.name`](/docs/database/database-spans.md#notes-and-well-known-identifiers-for-dbsystemname) set) + [`db.system.name`](/docs/db/database-spans.md#notes-and-well-known-identifiers-for-dbsystemname) set) are known to use SQL as their primary query language: - `actian.ingres` @@ -664,7 +664,7 @@ groups: Many other database systems support SQL and can be accessed via generic database driver such as JDBC or ODBC. Instrumentations applied to generic SQL drivers SHOULD adhere to SQL semantic conventions. - **Span name** SHOULD follow the general [database span name convention](/docs/database/database-spans.md#name) + **Span name** SHOULD follow the general [database span name convention](/docs/db/database-spans.md#name) attributes: - ref: db.namespace brief: > @@ -761,14 +761,14 @@ groups: extends: trace.db.common.minimal brief: > Cosmos DB instrumentations include call-level spans that represent logical database - calls and adhere to the general [Semantic Conventions for Database Client Spans](/docs/database/database-spans.md). + calls and adhere to the general [Semantic Conventions for Database Client Spans](/docs/db/database-spans.md). note: | Additional spans representing network calls may also be created depending on the connection mode (Gateway or Direct). Semantic conventions described in this document apply to the call-level spans only. `db.system.name` MUST be set to `"azure.cosmosdb"` and SHOULD be provided **at span creation time**. - **Span name** SHOULD follow the general [database span name convention](/docs/database/database-spans.md#name) + **Span name** SHOULD follow the general [database span name convention](/docs/db/database-spans.md#name) attributes: - ref: azure.client.id - ref: user_agent.original From 8f7b457f4589a9bef99d76d53283d0d92afb9745 Mon Sep 17 00:00:00 2001 From: liudmila molkova Date: Fri, 21 Nov 2025 18:10:47 -0800 Subject: [PATCH 5/6] up --- docs/README.md | 2 +- docs/db/oracledb.md | 4 ++-- docs/general/attribute-requirement-level.md | 2 +- model/db/spans.yaml | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/README.md b/docs/README.md index 84757e51ea..e1ce39640a 100644 --- a/docs/README.md +++ b/docs/README.md @@ -23,7 +23,7 @@ Semantic Conventions are defined for the following areas: * [CICD](cicd/README.md): Semantic Conventions for CICD systems. * [Cloud Providers](cloud-providers/README.md): Semantic Conventions for cloud providers libraries. * [CloudEvents](cloudevents/README.md): Semantic Conventions for the CloudEvents specification. -* [Database](database/README.md): Semantic Conventions for database operations. +* [Database](db/README.md): Semantic Conventions for database operations. * [Exceptions](exceptions/README.md): Semantic Conventions for exceptions. * [FaaS](faas/README.md): Semantic Conventions for Function as a Service (FaaS) operations. * [Feature Flags](feature-flags/README.md): Semantic Conventions for feature flag evaluations. diff --git a/docs/db/oracledb.md b/docs/db/oracledb.md index 6d6e02d979..f9b6ce4da0 100644 --- a/docs/db/oracledb.md +++ b/docs/db/oracledb.md @@ -94,9 +94,9 @@ that support query parsing SHOULD generate a summary following [Generating query summary](/docs/db/database-spans.md#generating-a-summary-of-the-query) section. -**[13] `db.query.text`:** Non-parameterized query text SHOULD NOT be collected by default unless explicitly configured and sanitized to exclude sensitive data, e.g. by redacting all literal values present in the query text. See [Sanitization of `db.query.text`](../database/database-spans.md#sanitization-of-dbquerytext). Parameterized query text MUST also NOT be collected by default unless explicitly configured. The query parameter values themselves are opt-in, see [`db.query.parameter.`](../registry/attributes/db.md)). +**[13] `db.query.text`:** Non-parameterized query text SHOULD NOT be collected by default unless explicitly configured and sanitized to exclude sensitive data, e.g. by redacting all literal values present in the query text. See [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext). Parameterized query text MUST also NOT be collected by default unless explicitly configured. The query parameter values themselves are opt-in, see [`db.query.parameter.`](../registry/attributes/db.md)). -**[14] `db.query.text`:** For sanitization see [Sanitization of `db.query.text`](../database/database-spans.md#sanitization-of-dbquerytext). For batch operations, if the individual operations are known to have the same query text then that query text SHOULD be used, otherwise all of the individual query texts SHOULD be concatenated with separator `; ` or some other database system specific separator if more applicable. +**[14] `db.query.text`:** For sanitization see [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext). For batch operations, if the individual operations are known to have the same query text then that query text SHOULD be used, otherwise all of the individual query texts SHOULD be concatenated with separator `; ` or some other database system specific separator if more applicable. **[15] `db.stored_procedure.name`:** If operation applies to a specific stored procedure. diff --git a/docs/general/attribute-requirement-level.md b/docs/general/attribute-requirement-level.md index 4c971907bd..074027d1be 100644 --- a/docs/general/attribute-requirement-level.md +++ b/docs/general/attribute-requirement-level.md @@ -38,7 +38,7 @@ requirement level from the referred semantic convention applies. -For example, [Database semantic convention](../database/README.md) references +For example, [Database semantic convention](/docs/db/README.md) references `network.transport` attribute defined in [General attributes](./README.md) with `Conditionally Required` level on it. diff --git a/model/db/spans.yaml b/model/db/spans.yaml index 7c677145ef..4593f3ddc4 100644 --- a/model/db/spans.yaml +++ b/model/db/spans.yaml @@ -1008,12 +1008,12 @@ groups: recommended: > Non-parameterized query text SHOULD NOT be collected by default unless explicitly configured and sanitized to exclude sensitive data, e.g. by redacting all literal values present - in the query text. See [Sanitization of `db.query.text`](../database/database-spans.md#sanitization-of-dbquerytext). + in the query text. See [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext). Parameterized query text MUST also NOT be collected by default unless explicitly configured. The query parameter values themselves are opt-in, see [`db.query.parameter.`](../registry/attributes/db.md)). note: > - For sanitization see [Sanitization of `db.query.text`](../database/database-spans.md#sanitization-of-dbquerytext). + For sanitization see [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext). For batch operations, if the individual operations are known to have the same query text then that query text SHOULD be used, otherwise all of the individual query texts SHOULD be concatenated with separator `; ` or some other database system specific separator if more applicable. examples: ["SELECT * FROM wuser_table where username = :mykey"] From 81f6a55ac5a6bf074a4c5b76143eb8cc07186350 Mon Sep 17 00:00:00 2001 From: liudmila molkova Date: Fri, 21 Nov 2025 18:20:30 -0800 Subject: [PATCH 6/6] move ownership check exclusion to separate pr --- .github/scripts/triage/check-changes-ownership.ts | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/.github/scripts/triage/check-changes-ownership.ts b/.github/scripts/triage/check-changes-ownership.ts index fae914db57..ddd4fe3f76 100644 --- a/.github/scripts/triage/check-changes-ownership.ts +++ b/.github/scripts/triage/check-changes-ownership.ts @@ -8,23 +8,17 @@ const prNumber: number = +process.env.PR_NUMBER!; const changes: string[] = process.env.CHANGED_FILES!.split(','); /** - * Checks if the PR already has the 'triage:accepted:ready' or 'triage:accepted:ready-with-sig' label, meaning the triage checks should be skipped. - * Also checks if the PR title starts with '[chore]' which indicates a maintenance PR that should skip checks. - * @returns true if the PR has the 'triage:accepted:ready' or 'triage:accepted:ready-with-sig' label or title starts with '[chore]', false otherwise. + * Checks if the PR already has the 'triage:accepted:ready' label, meaning the triage checks should be skipped. + * @returns true if the PR has the 'triage:accepted:ready' assigned to it, false otherwise. */ async function shouldSkipCheck() { - const result = await octokit.request("GET /repos/{owner}/{repo}/issues/{issue_number}", { + const result = await octokit.request("GET /repos/{owner}/{repo}/issues/{issue_number}/labels", { owner: owner, repo: repo, issue_number: prNumber }); - const hasAcceptedLabel = result.data.labels?.some(l => - l.name === "triage:accepted:ready" || l.name === "triage:accepted:ready-with-sig" - ) ?? false; - const isChore = result.data.title.toLowerCase().startsWith('[chore]'); - - return hasAcceptedLabel || isChore; + return result.data.some(l => l.name === "triage:accepted:ready"); } function getCommentText(changesWithoutOwners: string[]): string {