diff --git a/src/Libraries/Microsoft.Extensions.Http.Diagnostics/Latency/Internal/HttpRequestLatencyListener.cs b/src/Libraries/Microsoft.Extensions.Http.Diagnostics/Latency/Internal/HttpRequestLatencyListener.cs index 5d7238ed8a3..4179759df35 100644 --- a/src/Libraries/Microsoft.Extensions.Http.Diagnostics/Latency/Internal/HttpRequestLatencyListener.cs +++ b/src/Libraries/Microsoft.Extensions.Http.Diagnostics/Latency/Internal/HttpRequestLatencyListener.cs @@ -49,7 +49,9 @@ public void Enable() internal void OnEventWritten(string eventSourceName, string? eventName) { // If event of interest, add a checkpoint for it. - if (eventName != null && _eventToTokenMap[eventSourceName].TryGetValue(eventName, out var token)) + if (eventName != null + && _eventToTokenMap.TryGetValue(eventSourceName, out var tokenMap) + && tokenMap.TryGetValue(eventName, out var token)) { LatencyContext.Get()?.AddCheckpoint(token); } diff --git a/test/Libraries/Microsoft.Extensions.Http.Diagnostics.Tests/Latency/Internal/HttpRequestLatencyListenerTest.cs b/test/Libraries/Microsoft.Extensions.Http.Diagnostics.Tests/Latency/Internal/HttpRequestLatencyListenerTest.cs index fa91daa1c3e..6b384eae928 100644 --- a/test/Libraries/Microsoft.Extensions.Http.Diagnostics.Tests/Latency/Internal/HttpRequestLatencyListenerTest.cs +++ b/test/Libraries/Microsoft.Extensions.Http.Diagnostics.Tests/Latency/Internal/HttpRequestLatencyListenerTest.cs @@ -191,4 +191,19 @@ public void HttpRequestLatencyListener_OnEventWritten_AddsCheckpoints_Http() lc.Verify(a => a.AddCheckpoint(It.IsAny()), Times.Exactly(numHttpEvents + numSocketEvents + numDnsEvents)); } + + [Fact] + public void HttpRequestLatencyListener_OnEventWritten_DoesNotAddCheckpoints_UnknownEventSource() + { + var lcti = HttpMockProvider.GetTokenIssuer(); + var lc = HttpMockProvider.GetLatencyContext(); + var context = new HttpClientLatencyContext(); + context.Set(lc.Object); + + using var listener = HttpMockProvider.GetListener(context, lcti.Object); + + listener.OnEventWritten("System.Runtime", "EventCounters"); + + lc.Verify(a => a.AddCheckpoint(It.IsAny()), Times.Never); + } }