diff --git a/src/OpenTelemetry.Instrumentation.SqlClient/CHANGELOG.md b/src/OpenTelemetry.Instrumentation.SqlClient/CHANGELOG.md index 0603eeae2c..6db1afbf81 100644 --- a/src/OpenTelemetry.Instrumentation.SqlClient/CHANGELOG.md +++ b/src/OpenTelemetry.Instrumentation.SqlClient/CHANGELOG.md @@ -6,6 +6,12 @@ connection's `DataSource` when used to populate the `server.address` attribute. ([#2674](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/pull/2674)) +* Updates have been made to adhere to recent changes in the new semantic + conventions. These affect you if you have opted in to the new conventions. + When `CommandType` is `StoredProcedure`, the `db.stored_procedure.name` has + been added and the `db.query.text`, `db.operation.name`, and + `db.collection.name` attributes have been removed. + ([#2693](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/pull/2693)) * Updated OpenTelemetry core component version(s) to `1.12.0`. ([#2725](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/pull/2725)) diff --git a/src/OpenTelemetry.Instrumentation.SqlClient/Implementation/SqlActivitySourceHelper.cs b/src/OpenTelemetry.Instrumentation.SqlClient/Implementation/SqlActivitySourceHelper.cs index 1092a9dbb7..1e41af6196 100644 --- a/src/OpenTelemetry.Instrumentation.SqlClient/Implementation/SqlActivitySourceHelper.cs +++ b/src/OpenTelemetry.Instrumentation.SqlClient/Implementation/SqlActivitySourceHelper.cs @@ -36,10 +36,9 @@ internal sealed class SqlActivitySourceHelper [ SemanticConventions.AttributeDbSystem, SemanticConventions.AttributeDbSystemName, - SemanticConventions.AttributeDbCollectionName, SemanticConventions.AttributeDbNamespace, + SemanticConventions.AttributeDbStoredProcedureName, SemanticConventions.AttributeDbResponseStatusCode, - SemanticConventions.AttributeDbOperationName, SemanticConventions.AttributeErrorType, SemanticConventions.AttributeServerPort, SemanticConventions.AttributeServerAddress, diff --git a/src/OpenTelemetry.Instrumentation.SqlClient/Implementation/SqlClientDiagnosticListener.cs b/src/OpenTelemetry.Instrumentation.SqlClient/Implementation/SqlClientDiagnosticListener.cs index 0238960214..619a0189eb 100644 --- a/src/OpenTelemetry.Instrumentation.SqlClient/Implementation/SqlClientDiagnosticListener.cs +++ b/src/OpenTelemetry.Instrumentation.SqlClient/Implementation/SqlClientDiagnosticListener.cs @@ -115,9 +115,7 @@ public override void OnEventWritten(string name, object? payload) if (options.EmitNewAttributes) { - activity.SetTag(SemanticConventions.AttributeDbOperationName, "EXECUTE"); - activity.SetTag(SemanticConventions.AttributeDbCollectionName, commandText); - activity.SetTag(SemanticConventions.AttributeDbQueryText, commandText); + activity.SetTag(SemanticConventions.AttributeDbStoredProcedureName, commandText); } break; @@ -278,8 +276,7 @@ private void RecordDuration(Activity? activity, object? payload, bool hasError = { if (this.commandTextFetcher.TryFetch(command, out var commandText)) { - tags.Add(SemanticConventions.AttributeDbOperationName, "EXECUTE"); - tags.Add(SemanticConventions.AttributeDbCollectionName, commandText); + tags.Add(SemanticConventions.AttributeDbStoredProcedureName, commandText); } } } diff --git a/src/Shared/SemanticConventions.cs b/src/Shared/SemanticConventions.cs index 52eb9cae2b..b00f602907 100644 --- a/src/Shared/SemanticConventions.cs +++ b/src/Shared/SemanticConventions.cs @@ -142,13 +142,12 @@ internal static class SemanticConventions // New database conventions: // https://github.com/open-telemetry/semantic-conventions/blob/main/docs/database public const string AttributeDbSystemName = "db.system.name"; - public const string AttributeDbCollectionName = "db.collection.name"; public const string AttributeDbNamespace = "db.namespace"; - public const string AttributeDbOperationName = "db.operation.name"; public const string AttributeDbResponseStatusCode = "db.response.status_code"; public const string AttributeDbOperationBatchSize = "db.operation.batch.size"; public const string AttributeDbQuerySummary = "db.query.summary"; public const string AttributeDbQueryText = "db.query.text"; + public const string AttributeDbStoredProcedureName = "db.stored_procedure.name"; #pragma warning restore CS1591 // Missing XML comment for publicly visible type or member } diff --git a/test/OpenTelemetry.Instrumentation.SqlClient.Tests/SqlClientTests.cs b/test/OpenTelemetry.Instrumentation.SqlClient.Tests/SqlClientTests.cs index 3d25c082fb..455cd90a40 100644 --- a/test/OpenTelemetry.Instrumentation.SqlClient.Tests/SqlClientTests.cs +++ b/test/OpenTelemetry.Instrumentation.SqlClient.Tests/SqlClientTests.cs @@ -491,9 +491,7 @@ internal static void VerifyActivityData( if (emitNewAttributes) { - Assert.Equal("EXECUTE", activity.GetTagValue(SemanticConventions.AttributeDbOperationName)); - Assert.Equal(commandText, activity.GetTagValue(SemanticConventions.AttributeDbCollectionName)); - Assert.Equal(commandText, activity.GetTagValue(SemanticConventions.AttributeDbQueryText)); + Assert.Equal(commandText, activity.GetTagValue(SemanticConventions.AttributeDbStoredProcedureName)); } break;