Skip to content

Commit ee9b892

Browse files
authored
SqlClient Instrumentation to leverage native Activity Status. (#3751)
1 parent e8af2a0 commit ee9b892

File tree

5 files changed

+24
-30
lines changed

5 files changed

+24
-30
lines changed

src/OpenTelemetry.Instrumentation.SqlClient/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22

33
## Unreleased
44

5+
* Use `Activity.Status` and `Activity.StatusDescription` properties instead of
6+
`OpenTelemetry.Trace.Status` and `OpenTelemetry.Trace.Status.Description`
7+
respectively to set activity status.
8+
([#3118](https://github.com/open-telemetry/opentelemetry-dotnet/issues/3118))
9+
([#3751](https://github.com/open-telemetry/opentelemetry-dotnet/pull/3751))
10+
511
## 1.0.0-rc9.7
612

713
Released 2022-Sep-29

src/OpenTelemetry.Instrumentation.SqlClient/Implementation/SqlClientDiagnosticListener.cs

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -146,17 +146,7 @@ public override void OnEventWritten(string name, object payload)
146146
return;
147147
}
148148

149-
try
150-
{
151-
if (activity.IsAllDataRequested)
152-
{
153-
activity.SetStatus(Status.Unset);
154-
}
155-
}
156-
finally
157-
{
158-
activity.Stop();
159-
}
149+
activity.Stop();
160150
}
161151

162152
break;
@@ -180,7 +170,7 @@ public override void OnEventWritten(string name, object payload)
180170
{
181171
if (this.exceptionFetcher.TryFetch(payload, out Exception exception) && exception != null)
182172
{
183-
activity.SetStatus(Status.Error.WithDescription(exception.Message));
173+
activity.SetStatus(ActivityStatusCode.Error, exception.Message);
184174

185175
if (this.options.RecordException)
186176
{

src/OpenTelemetry.Instrumentation.SqlClient/Implementation/SqlEventSourceListener.netfx.cs

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -181,18 +181,17 @@ private void OnEndExecute(EventWrittenEventArgs eventData)
181181
if (activity.IsAllDataRequested)
182182
{
183183
int compositeState = (int)eventData.Payload[1];
184-
if ((compositeState & 0b001) == 0b001)
184+
if ((compositeState & 0b001) != 0b001)
185185
{
186-
activity.SetStatus(Status.Unset);
187-
}
188-
else if ((compositeState & 0b010) == 0b010)
189-
{
190-
var errorText = $"SqlExceptionNumber {eventData.Payload[2]} thrown.";
191-
activity.SetStatus(Status.Error.WithDescription(errorText));
192-
}
193-
else
194-
{
195-
activity.SetStatus(Status.Error.WithDescription("Unknown Sql failure."));
186+
if ((compositeState & 0b010) == 0b010)
187+
{
188+
var errorText = $"SqlExceptionNumber {eventData.Payload[2]} thrown.";
189+
activity.SetStatus(ActivityStatusCode.Error, errorText);
190+
}
191+
else
192+
{
193+
activity.SetStatus(ActivityStatusCode.Error, "Unknown Sql failure.");
194+
}
196195
}
197196
}
198197
}

test/OpenTelemetry.Instrumentation.SqlClient.Tests/SqlClientTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -326,13 +326,13 @@ private static void VerifyActivityData(
326326

327327
if (!isFailure)
328328
{
329-
Assert.Equal(Status.Unset, activity.GetStatus());
329+
Assert.Equal(ActivityStatusCode.Unset, activity.Status);
330330
}
331331
else
332332
{
333333
var status = activity.GetStatus();
334-
Assert.Equal(Status.Error.StatusCode, status.StatusCode);
335-
Assert.NotNull(status.Description);
334+
Assert.Equal(ActivityStatusCode.Error, activity.Status);
335+
Assert.NotNull(activity.StatusDescription);
336336

337337
if (recordException)
338338
{

test/OpenTelemetry.Instrumentation.SqlClient.Tests/SqlEventSourceTests.netfx.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -276,13 +276,12 @@ private static void VerifyActivityData(
276276

277277
if (!isFailure)
278278
{
279-
Assert.Equal(Status.Unset, activity.GetStatus());
279+
Assert.Equal(ActivityStatusCode.Unset, activity.Status);
280280
}
281281
else
282282
{
283-
var status = activity.GetStatus();
284-
Assert.Equal(Status.Error.StatusCode, status.StatusCode);
285-
Assert.NotNull(status.Description);
283+
Assert.Equal(ActivityStatusCode.Error, activity.Status);
284+
Assert.NotNull(activity.StatusDescription);
286285
}
287286
}
288287

0 commit comments

Comments
 (0)