Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
EventCounters basit, platformlar arası ve neredeyse gerçek zamanlı performans ölçümü toplama için kullanılan .NET API'leridir.
Ağ bileşenleri, EventCounters kullanarak temel tanılama bilgilerini yayımlamak üzere yapılandırılmıştır. Bunlar aşağıdaki gibi bilgiler içerir:
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
Tavsiye
Listenin tamamı için bkz. iyi bilinen sayaçlar.
Tavsiye
.NET 8+ sürümünü hedefleyen projelerde EventCounters yerine daha yeni ve daha zengin özellik özellikli ağ ölçümlerini kullanmayı göz önünde bulundurun.
Sağlayıcılar
Ağ bilgileri aşağıdaki sağlayıcılar arasında bölünür:
-
System.Net.Http(HttpClientveSocketsHttpHandler) -
System.Net.NameResolution(Dns) -
System.Net.Security(SslStream) System.Net.SocketsMicrosoft.AspNetCore.HostingMicrosoft-AspNetCore-Server-Kestrel
Telemetrinin etkinleştirildiğinde bazı performans yükleri vardır, bu nedenle yalnızca gerçekten ilgilendiğiniz sağlayıcılara abone olduğunuzdan emin olun.
İşlem dışından olay sayaçlarını izleme
dotnet-counters
dotnet-counters doğaçlama sağlık durumu izleme ve birinci düzey performans araştırması için platformlar arası bir performans izleme aracıdır.
dotnet tool install --global dotnet-counters
dotnet-counters monitor --counters System.Net.Http,System.Net.Security --process-id 1234
komutu konsolu sürekli olarak en son sayılarla yeniler.
[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
Tüm kullanılabilir komutlar ve parametreler için dotnet-counter belgelerine bakın.
Uygulama Öngörüleri
Application Insights varsayılan olarak olay sayaçlarını toplamaz. İlgilendiğiniz sayaç kümesini özelleştirme hakkında bilgi için AppInsights EventCounters belgelerine bakın.
Örneğin:
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"));
});
Birçok çalışma zamanına ve ASP.NET olay sayacına abone olma örneği için RuntimeEventCounters örneğine bakın. Her giriş için bir EventCounterCollectionRequest eklemeniz yeterlidir.
foreach (var (eventSource, counters) in RuntimeEventCounters.EventCounters)
{
foreach (string counter in counters)
{
module.Counters.Add(new EventCounterCollectionRequest(eventSource, counter));
}
}
İşlem içi olay sayaçlarını kullanma
Yarp.Telemetry.Consumption kütüphanesi, işlem içindeki olay sayaçlarının kolaylıkla kullanılmasını sağlar.
Paket şu anda YARP projesinin bir parçası olarak korunsa da, herhangi bir .NET uygulamasında kullanılabilir.
Bunu kullanmak için IMetricsConsumer<TMetrics> arabirimi uygulayın.
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");
}
}
Ardından uygulamaları DI kapsayıcınıza kaydedin:
services.AddSingleton<IMetricsConsumer<SocketsMetrics>, MyMetricsConsumer>();
services.AddTelemetryListeners();
Kitaplık aşağıdaki kesin olarak belirlenmiş ölçüm türlerini sağlar:
Daha fazla telemetriye mi ihtiyacınız var?
Olaylar veya ölçümler aracılığıyla kullanıma sunulacak diğer yararlı bilgiler için önerileriniz varsa bir dotnet/runtime sorunu oluşturun.
Kitaplığı kullanıyorsanız Yarp.Telemetry.Consumption ve herhangi bir öneriniz varsa bir microsoft/reverse-proxy sorunu oluşturun.