Skip to content

Commit 003e675

Browse files
committed
Add statusCode to System.Net.Http/RequestStop event
1 parent a8c0d32 commit 003e675

File tree

3 files changed

+21
-16
lines changed

3 files changed

+21
-16
lines changed

src/libraries/System.Net.Http/src/System/Net/Http/HttpClient.cs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ private async Task<string> GetStringAsyncCore(HttpRequestMessage request, Cancel
227227
}
228228
finally
229229
{
230-
FinishSend(cts, disposeCts, telemetryStarted, responseContentTelemetryStarted);
230+
FinishSend(cts, disposeCts, response, telemetryStarted, responseContentTelemetryStarted);
231231
}
232232
}
233233

@@ -306,7 +306,7 @@ private async Task<byte[]> GetByteArrayAsyncCore(HttpRequestMessage request, Can
306306
}
307307
finally
308308
{
309-
FinishSend(cts, disposeCts, telemetryStarted, responseContentTelemetryStarted);
309+
FinishSend(cts, disposeCts, response, telemetryStarted, responseContentTelemetryStarted);
310310
}
311311
}
312312

@@ -352,7 +352,7 @@ private async Task<Stream> GetStreamAsyncCore(HttpRequestMessage request, Cancel
352352
}
353353
finally
354354
{
355-
FinishSend(cts, disposeCts, telemetryStarted, responseContentTelemetryStarted: false);
355+
FinishSend(cts, disposeCts, response, telemetryStarted, responseContentTelemetryStarted: false);
356356
}
357357
}
358358

@@ -496,7 +496,7 @@ public HttpResponseMessage Send(HttpRequestMessage request, HttpCompletionOption
496496
}
497497
finally
498498
{
499-
FinishSend(cts, disposeCts, telemetryStarted, responseContentTelemetryStarted);
499+
FinishSend(cts, disposeCts, response, telemetryStarted, responseContentTelemetryStarted);
500500
}
501501
}
502502

@@ -551,7 +551,7 @@ async Task<HttpResponseMessage> Core(
551551
}
552552
finally
553553
{
554-
FinishSend(cts, disposeCts, telemetryStarted, responseContentTelemetryStarted);
554+
FinishSend(cts, disposeCts, response, telemetryStarted, responseContentTelemetryStarted);
555555
}
556556
}
557557
}
@@ -642,7 +642,7 @@ private static bool StartSend(HttpRequestMessage request)
642642
return false;
643643
}
644644

645-
private static void FinishSend(CancellationTokenSource cts, bool disposeCts, bool telemetryStarted, bool responseContentTelemetryStarted)
645+
private static void FinishSend(CancellationTokenSource cts, bool disposeCts, HttpResponseMessage? response, bool telemetryStarted, bool responseContentTelemetryStarted)
646646
{
647647
// Log completion.
648648
if (HttpTelemetry.Log.IsEnabled() && telemetryStarted)
@@ -652,7 +652,8 @@ private static void FinishSend(CancellationTokenSource cts, bool disposeCts, boo
652652
HttpTelemetry.Log.ResponseContentStop();
653653
}
654654

655-
HttpTelemetry.Log.RequestStop();
655+
int statusCode = response != null ? (int)response.StatusCode : -1;
656+
HttpTelemetry.Log.RequestStop(statusCode);
656657
}
657658

658659
// Dispose of the CancellationTokenSource if it was created specially for this request

src/libraries/System.Net.Http/src/System/Net/Http/HttpMessageInvoker.cs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,11 @@ public virtual HttpResponseMessage Send(HttpRequestMessage request, Cancellation
4040
if (ShouldSendWithTelemetry(request))
4141
{
4242
HttpTelemetry.Log.RequestStart(request);
43-
43+
HttpResponseMessage? response = null;
4444
try
4545
{
46-
return _handler.Send(request, cancellationToken);
46+
response = _handler.Send(request, cancellationToken);
47+
return response;
4748
}
4849
catch when (LogRequestFailed(telemetryStarted: true))
4950
{
@@ -52,7 +53,8 @@ public virtual HttpResponseMessage Send(HttpRequestMessage request, Cancellation
5253
}
5354
finally
5455
{
55-
HttpTelemetry.Log.RequestStop();
56+
int statusCode = response != null ? (int)response.StatusCode : -1;
57+
HttpTelemetry.Log.RequestStop(statusCode);
5658
}
5759
}
5860
else
@@ -77,10 +79,11 @@ public virtual Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, C
7779
static async Task<HttpResponseMessage> SendAsyncWithTelemetry(HttpMessageHandler handler, HttpRequestMessage request, CancellationToken cancellationToken)
7880
{
7981
HttpTelemetry.Log.RequestStart(request);
80-
82+
HttpResponseMessage? response = null;
8183
try
8284
{
83-
return await handler.SendAsync(request, cancellationToken).ConfigureAwait(false);
85+
response = await handler.SendAsync(request, cancellationToken).ConfigureAwait(false);
86+
return response;
8487
}
8588
catch when (LogRequestFailed(telemetryStarted: true))
8689
{
@@ -89,7 +92,8 @@ static async Task<HttpResponseMessage> SendAsyncWithTelemetry(HttpMessageHandler
8992
}
9093
finally
9194
{
92-
HttpTelemetry.Log.RequestStop();
95+
int statusCode = response != null ? (int)response.StatusCode : -1;
96+
HttpTelemetry.Log.RequestStop(statusCode);
9397
}
9498
}
9599
}

src/libraries/System.Net.Http/src/System/Net/Http/HttpTelemetry.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,11 @@ public void RequestStart(HttpRequestMessage request)
5050
request.VersionPolicy);
5151
}
5252

53-
[Event(2, Level = EventLevel.Informational)]
54-
public void RequestStop()
53+
[Event(2, Level = EventLevel.Informational, Version = 1)]
54+
public void RequestStop(int statusCode)
5555
{
5656
Interlocked.Increment(ref _stoppedRequests);
57-
WriteEvent(eventId: 2);
57+
WriteEvent(eventId: 2, statusCode);
5858
}
5959

6060
[Event(3, Level = EventLevel.Error)]

0 commit comments

Comments
 (0)