Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
EventCounters jsou API .NET používána pro odlehčené, multiplatformní a téměř v reálném čase probíhající shromažďování metrik výkonu.
Síťové komponenty jsou instrumentované k publikování základních diagnostických informací pomocí eventCounters. Obsahují například následující informace:
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
Návod
Úplný seznam najdete v známých čítačích.
Návod
U projektů, které cílí na .NET 8 nebo novější, zvažte použití novějších a více síťových metrik s bohatými funkcemi místo EventCounters.
Poskytovatelé
Informace o sítích jsou rozdělené mezi následující poskytovatele:
-
System.Net.Http(HttpClientaSocketsHttpHandler) -
System.Net.NameResolution(Dns) -
System.Net.Security(SslStream) System.Net.SocketsMicrosoft.AspNetCore.HostingMicrosoft-AspNetCore-Server-Kestrel
Telemetrie má při povolení určitou výkonnostní režii, ujistěte se proto, že se přihlásíte jenom k těm poskytovatelům, které vás skutečně zajímají.
Monitorování čítačů událostí mimo proces
dotnet-counters
dotnet-counters je nástroj pro ad hoc sledování stavu a prošetření výkonu na první úrovni napříč platformami.
dotnet tool install --global dotnet-counters
dotnet-counters monitor --counters System.Net.Http,System.Net.Security --process-id 1234
Příkaz průběžně aktualizuje konzolu nejnovějšími čísly.
[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
Všechny dostupné příkazy a parametry najdete v dokumentaci k čítači dotnet-counter.
Application Insights
Application Insights ve výchozím nastavení neshromažďuje čítače událostí. Informace o přizpůsobení sady čítačů, které vás zajímají, najdete v dokumentaci ke službě AppInsights EventCounters.
Například:
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"));
});
Příklad, jak se přihlásit k odběru mnoha čítačů událostí runtime a ASP.NET, najdete v ukázce RuntimeEventCounters. Stačí přidat EventCounterCollectionRequest pro každou položku.
foreach (var (eventSource, counters) in RuntimeEventCounters.EventCounters)
{
foreach (string counter in counters)
{
module.Counters.Add(new EventCounterCollectionRequest(eventSource, counter));
}
}
Využívání čítačů událostí v procesu
Knihovna Yarp.Telemetry.Consumption usnadňuje využívání čítačů událostí zevnitř procesu.
I když se balíček v současné době udržuje jako součást projektu YARP , lze ho použít v libovolné aplikaci .NET.
Pro implementaci rozhraní IMetricsConsumer<TMetrics> jej použijte.
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");
}
}
Pak zaregistrujte implementace v kontejneru DI:
services.AddSingleton<IMetricsConsumer<SocketsMetrics>, MyMetricsConsumer>();
services.AddTelemetryListeners();
Knihovna poskytuje následující typy metrik silného typu:
Potřebujete další telemetrii?
Pokud máte návrhy na další užitečné informace, které by mohly být vystaveny prostřednictvím událostí nebo metrik, vytvořte problém s dotnet/runtime.
Pokud knihovnu Yarp.Telemetry.Consumption používáte a máte nějaké návrhy, vytvořte problém s microsoftem nebo reverzním proxy serverem.