Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
EventCounters är .NET-API:er som används för enkel, plattformsoberoende och nästan realtidsbaserad insamling av prestandamått.
Nätverkskomponenter instrumenteras för att publicera grundläggande diagnostikinformation med EventCounters. De innehåller information som följande:
System.Net.Http>requests-startedSystem.Net.Http>requests-failedSystem.Net.Http>http11-connections-current-totalSystem.Net.Security>all-tls-sessions-openSystem.Net.Sockets>outgoing-connections-establishedSystem.Net.NameResolution>dns-lookups-duration
Tips/Råd
Den fullständiga listan finns i välkända räknare.
Tips/Råd
Överväg att använda de nyare och mer funktionsrika nätverksmåtten i stället för EventCounters i projekt som är inriktade på .NET 8+.
Leverantörer
Nätverksinformation delas upp mellan följande leverantörer:
-
System.Net.Http(HttpClientochSocketsHttpHandler) -
System.Net.NameResolution(Dns) -
System.Net.Security(SslStream) System.Net.SocketsMicrosoft.AspNetCore.HostingMicrosoft-AspNetCore-Server-Kestrel
Telemetrin har vissa prestandakostnader när den är aktiverad, så se till att endast prenumerera på leverantörer som du faktiskt är intresserad av.
Övervaka händelseräknare utanför processen
dotnet-counters
dotnet-counters är ett plattformsoberoende prestandaövervakningsverktyg för ad hoc-hälsoövervakning och prestandaundersökning på första nivån.
dotnet tool install --global dotnet-counters
dotnet-counters monitor --counters System.Net.Http,System.Net.Security --process-id 1234
Kommandot uppdaterar kontinuerligt konsolen med de senaste numren.
[System.Net.Http]
Current Http 1.1 Connections 3
Current Http 2.0 Connections 1
Current Http 3.0 Connections 0
Current Requests 4
HTTP 1.1 Requests Queue Duration (ms) 0
HTTP 2.0 Requests Queue Duration (ms) 0
HTTP 3.0 Requests Queue Duration (ms) 0
Requests Failed 0
Requests Failed Rate (Count / 1 sec) 0
Requests Started 470
Requests Started Rate (Count / 1 sec) 18
Alla tillgängliga kommandon och parametrar finns i dotnet-counter-dokumenten.
Programinsikter
Application Insights samlar inte in händelseräknare som standard. Information om hur du anpassar den uppsättning räknare som du är intresserad av finns i dokumentationen om AppInsights EventCounters.
Till exempel:
services.ConfigureTelemetryModule<EventCounterCollectionModule>((module, options) =>
{
module.Counters.Add(new EventCounterCollectionRequest("System.Net.Http", "current-requests"));
module.Counters.Add(new EventCounterCollectionRequest("System.Net.Http", "requests-failed"));
module.Counters.Add(new EventCounterCollectionRequest("System.Net.Http", "http11-connections-current-total"));
module.Counters.Add(new EventCounterCollectionRequest("System.Net.Security", "all-tls-sessions-open"));
});
Ett exempel på hur du prenumererar på många körnings- och ASP.NET händelseräknare finns i exemplet RuntimeEventCounters. Lägg bara till en EventCounterCollectionRequest för varje post.
foreach (var (eventSource, counters) in RuntimeEventCounters.EventCounters)
{
foreach (string counter in counters)
{
module.Counters.Add(new EventCounterCollectionRequest(eventSource, counter));
}
}
Använda händelseräknare i processer
Biblioteket Yarp.Telemetry.Consumption gör det enkelt att använda händelseräknare inifrån processen.
Även om paketet för närvarande underhålls som en del av YARP-projektet kan det användas i alla .NET-program.
För att använda den, implementera IMetricsConsumer<TMetrics>-gränssnittet.
public sealed class MyMetricsConsumer : IMetricsConsumer<SocketsMetrics>
{
public void OnMetrics(SocketsMetrics previous, SocketsMetrics current)
{
var elapsedTime = (current.Timestamp - previous.Timestamp).TotalMilliseconds;
Console.WriteLine($"Received {current.BytesReceived - previous.BytesReceived} bytes in the last {elapsedTime:N2} ms");
}
}
Registrera sedan implementeringarna med din DI-container:
services.AddSingleton<IMetricsConsumer<SocketsMetrics>, MyMetricsConsumer>();
services.AddTelemetryListeners();
Biblioteket innehåller följande starkt skrivna måtttyper:
Behöver du mer telemetri?
Om du har förslag på annan användbar information som kan exponeras via händelser eller mått skapar du ett problem med dotnet/runtime.
Om du använder Yarp.Telemetry.Consumption biblioteket och har några förslag skapar du ett microsoft-/reverse-proxy-problem.