Aracılığıyla paylaş


ASP.NET Core ölçümleri

Bu makalede, API kullanılarak System.Diagnostics.Metrics üretilen ASP.NET Core için yerleşik ölçümler açıklanmaktadır. Eski EventCounters API'sini temel alan ölçümlerin listesi için buraya bakın.

İpucu

ASP.NET Core ölçümlerini toplama, raporlama, zenginleştirme ve test etme hakkında daha fazla bilgi için bkz . ASP.NET Core ölçümlerini kullanma.

Microsoft.AspNetCore.Hosting

Ölçümler, Microsoft.AspNetCore.Hosting ASP.NET Core tarafından alınan HTTP istekleriyle ilgili üst düzey bilgileri bildirir:

Metrik: http.server.request.duration
Veri Akışı Adı İzleme Türü Birim (UCUM) Açıklama
http.server.request.duration Histogram s Gelen HTTP isteklerinin süresini ölçer.
Öznitelik Type Açıklama Örnekler İletişim durumu
http.route Dize Eşleşen yol. {controller}/{action}/{id?} Varsa.
error.type Dize İşlemin sona erdiği hata sınıfını açıklar. timeout; name_resolution_error; 500 İstek bir hatayla sona erdiyse.
http.request.method Dize HTTP isteği yöntemi. GET; POST; HEAD Her zaman
http.response.status_code int HTTP yanıt durum kodu. 200 Eğer biri gönderilmişse.
network.protocol.version Dize içinde network.protocol.namebelirtilen protokolün sürümü. 3.1.1 Her zaman
url.scheme Dize Kullanılan protokolü tanımlayan URI düzeni bileşeni. http; https Her zaman
aspnetcore.request.is_unhandled Boolean İstek uygulama işlem hattı tarafından işlenmediğinde true. true İstek işlenmemişse.

ASP.NET Core barındırma katmanında ölçülen gelen HTTP isteğini işlemek için kullanılan süre. Temel web konağı aşağıdakilere sahip olduğunda zaman ölçümü başlar:

  • Yeni isteği tanımlamak için gelen ağ akışındaki HTTP isteği üst bilgilerini yeterince ayrıştırdı.
  • gibi HttpContextbağlam veri yapılarını başlatıldı.

Süre şu durumlarda sona erer:

  • ASP.NET Core işleyici işlem hattının yürütülmesi tamamlandı.
  • Tüm yanıt verileri gönderildi.
  • İsteğin bağlam veri yapıları atılıyor.

OpenTelemetry kullanılırken, bu ölçüm için varsayılan demetler [ 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10 ] olarak ayarlanır.

.NET 8.0'dan itibaren kullanılabilir.

Metrik: http.server.active_requests
Veri Akışı Adı İzleme Türü Birim (UCUM) Açıklama
http.server.active_requests UpDownCounter {request} Şu anda kullanılmakta olan eşzamanlı HTTP isteklerinin sayısını ölçer.
Öznitelik Type Açıklama Örnekler İletişim durumu
http.request.method Dize HTTP isteği yöntemi. [1] GET; POST; HEAD Her zaman
url.scheme Dize Kullanılan protokolü tanımlayan URI düzeni bileşeni. http; https Her zaman

.NET 8.0'dan itibaren kullanılabilir.

Microsoft.AspNetCore.Routing

Ölçümler, Microsoft.AspNetCore.Routing HTTP isteklerini ASP.NET Temel uç noktalarına yönlendirme hakkındaki bilgileri bildirir:

Metrik: aspnetcore.routing.match_attempts
Veri Akışı Adı İzleme Türü Birim (UCUM) Açıklama
aspnetcore.routing.match_attempts Sayaç {match_attempt} Bir uç noktayla eşleştirilmeye çalışılan istek sayısı.
Öznitelik Type Açıklama Örnekler İletişim durumu
aspnetcore.routing.match_status Dize Sonucu eşleştir success; failure Her zaman
aspnetcore.routing.is_fallback_route boolean Eşleşen yolun bir geri dönüş yolu olup olmadığını gösteren değer. True Bir yol başarıyla eşleştirildiyse.
http.route Dize Eşleşen yol {controller}/{action}/{id?} Bir yol başarıyla eşleştirildiyse.

.NET 8.0'dan itibaren kullanılabilir.

Microsoft.AspNetCore.Diagnostics

Ölçümler, Microsoft.AspNetCore.Diagnostics ASP.NET Core hata işleme ara yazılımının tanılama bilgilerini bildirir:

Metrik: aspnetcore.diagnostics.exceptions
Veri Akışı Adı İzleme Türü Birim (UCUM) Açıklama
aspnetcore.diagnostics.exceptions Sayaç {exception} Özel durum işleme ara yazılımı tarafından yakalanan özel durum sayısı.
Öznitelik Type Açıklama Örnekler İletişim durumu
aspnetcore.diagnostics.exception.result Dize ASP.NET Core özel durum ara yazılımı işleme sonucu handled; unhandled Her zaman
aspnetcore.diagnostics.handler.type Dize Özel durumu işleyen uygulamanın tam tür adı IExceptionHandler . Contoso.MyHandler Özel durum bu işleyici tarafından işlendiyse.
exception.type Dize Özel durum türünün tam adı. System.OperationCanceledException; Contoso.MyException Her zaman

.NET 8.0'dan itibaren kullanılabilir.

Microsoft.AspNetCore.RateLimiting

ÖlçümlerMicrosoft.AspNetCore.RateLimiting, ASP.NET Core hız sınırlama ara yazılımından hız sınırlama bilgilerini rapor eder:

Metrik: aspnetcore.rate_limiting.active_request_leases
Veri Akışı Adı İzleme Türü Birim (UCUM) Açıklama
aspnetcore.rate_limiting.active_request_leases UpDownCounter {request} Şu anda sunucuda etkin olan ve kirayı sınırlayan bir hız sınırlayan istek sayısı.
Öznitelik Type Açıklama Örnekler İletişim durumu
aspnetcore.rate_limiting.policy Dize Hız sınırlama ilkesi adı. fixed; sliding; token İstek için eşleşen uç noktanın hız sınırlama ilkesi varsa.

.NET 8.0'dan itibaren kullanılabilir.

Metrik: aspnetcore.rate_limiting.request_lease.duration
Veri Akışı Adı İzleme Türü Birim (UCUM) Açıklama
aspnetcore.rate_limiting.request_lease.duration Histogram s Sunucudaki istekler tarafından tutulan hız sınırlama kirasının süresi.
Öznitelik Type Açıklama Örnekler İletişim durumu
aspnetcore.rate_limiting.policy Dize Hız sınırlama ilkesi adı. fixed; sliding; token İstek için eşleşen uç noktanın hız sınırlama ilkesi varsa.

.NET 8.0'dan itibaren kullanılabilir.

Metrik: aspnetcore.rate_limiting.queued_requests
Veri Akışı Adı İzleme Türü Birim (UCUM) Açıklama
aspnetcore.rate_limiting.queued_requests UpDownCounter {request} Hız sınırlama kiralaması almak için şu anda kuyruğa alınmış istek sayısı.
Öznitelik Type Açıklama Örnekler İletişim durumu
aspnetcore.rate_limiting.policy Dize Hız sınırlama ilkesi adı. fixed; sliding; token İstek için eşleşen uç noktanın hız sınırlama ilkesi varsa.

.NET 8.0'dan itibaren kullanılabilir.

Metrik: aspnetcore.rate_limiting.request.time_in_queue
Veri Akışı Adı İzleme Türü Birim (UCUM) Açıklama
aspnetcore.rate_limiting.request.time_in_queue Histogram s Kirayı sınırlayan bir hız elde etmek için bekleyen bir isteğin kuyrukta harcadığı süre.
Öznitelik Type Açıklama Örnekler İletişim durumu
aspnetcore.rate_limiting.policy Dize Hız sınırlama ilkesi adı. fixed; sliding; token İstek için eşleşen uç noktanın hız sınırlama ilkesi varsa.
aspnetcore.rate_limiting.result Dize Hız sınırlama sonucu, kiranın alınıp alınmadığını veya reddetme nedeni içerdiğini gösterir. acquired; request_canceled Her zaman

.NET 8.0'dan itibaren kullanılabilir.

Metrik: aspnetcore.rate_limiting.requests
Veri Akışı Adı İzleme Türü Birim (UCUM) Açıklama
aspnetcore.rate_limiting.requests Sayaç {request} Kirayı sınırlayan bir hız elde etmeye çalışan istek sayısı.
Öznitelik Type Açıklama Örnekler İletişim durumu
aspnetcore.rate_limiting.policy Dize Hız sınırlama ilkesi adı. fixed; sliding; token İstek için eşleşen uç noktanın hız sınırlama ilkesi varsa.
aspnetcore.rate_limiting.result Dize Hız sınırlama sonucu, kiranın alınıp alınmadığını veya reddetme nedeni içerdiğini gösterir. acquired; request_canceled Her zaman

.NET 8.0'dan itibaren kullanılabilir.

Microsoft.AspNetCore.HeaderParsing

Ölçümler, Microsoft.AspNetCore.HeaderParsing ASP.NET Core üst bilgi ayrıştırma hakkındaki bilgileri bildirir:

Metrik: aspnetcore.header_parsing.parse_errors
Veri Akışı Adı İzleme Türü Birim (UCUM) Açıklama
aspnetcore.header_parsing.parse_errors Sayaç {parse_error} HTTP isteği üst bilgileri ayrıştırılırken oluşan hata sayısı.
Öznitelik Type Açıklama Örnekler İletişim durumu
aspnetcore.header_parsing.header.name Dize Üst bilgi adı. Content-Type Her zaman
error.type Dize Hata iletisi. Unable to parse media type value. Her zaman

.NET 8.0'dan itibaren kullanılabilir.

Metrik: aspnetcore.header_parsing.cache_accesses

Ölçüm yalnızca önbelleğe almayı destekleyen HTTP isteği üst bilgi ayrıştırıcıları için gönderilir.

Veri Akışı Adı İzleme Türü Birim (UCUM) Açıklama
aspnetcore.header_parsing.cache_accesses Sayaç {cache_access} Ayrıştırılmış üst bilgi değerlerinin depolandığı bir önbelleğe kaç kez erişildiği.
Öznitelik Type Açıklama Örnekler İletişim durumu
aspnetcore.header_parsing.header.name Dize Üst bilgi adı. Content-Type Her zaman
aspnetcore.header_parsing.cache_access.type Dize Üst bilgi değerinin önbellekte bulunup bulunmadığını gösteren değer. Hit; Miss Her zaman

.NET 8.0'dan itibaren kullanılabilir.

Microsoft.AspNetCore.Server.Kestrel

Ölçümler, Microsoft.AspNetCore.Server.Kestrel ASP.NET Core Kestrel web sunucusundan HTTP bağlantı bilgilerini bildirir:

Metrik: kestrel.active_connections
Veri Akışı Adı İzleme Türü Birim (UCUM) Açıklama
kestrel.active_connections UpDownCounter {connection} Sunucuda şu anda etkin olan bağlantı sayısı.
Öznitelik Type Açıklama Örnekler İletişim durumu
network.transport Dize OSI aktarım katmanı veya işlemler arası iletişim yöntemi. tcp; unix Her zaman
network.type Dize OSI ağ katmanı veya OSI olmayan eşdeğeri. ipv4; ipv6 Aktarım veya udpisetcp.
server.address Dize Ters DNS araması olmadan varsa sunucu adresi etki alanı adı; aksi takdirde, IP adresi veya Unix etki alanı yuva adı. example.com Her zaman
server.port int Sunucu bağlantı noktası numarası 80; 8080; 443 Aktarım veya udpisetcp.

.NET 8.0'dan itibaren kullanılabilir.

Metrik: kestrel.connection.duration
Veri Akışı Adı İzleme Türü Birim (UCUM) Açıklama
kestrel.connection.duration Histogram s Sunucudaki bağlantıların süresi.
Öznitelik Type Açıklama Örnekler İletişim durumu
error.type Dize Bağlantının sona erdiği hata türünü veya bağlantı işlem hattı sırasında işlenmeyen özel durum türünü açıklar. Bilinen bağlantı hataları Kestrel web sunucusu ölçümleri için Anlam Kuralları'nda bulunabilir. connection_reset; invalid_request_headers; System.OperationCanceledException Bağlantı bilinen bir hatayla sona erdiyse veya bir özel durum oluştuysa.
network.protocol.name Dize OSI uygulama katmanı veya OSI olmayan eşdeğeri. http; web_sockets Her zaman
network.protocol.version Dize içinde network.protocol.namebelirtilen protokolün sürümü. 1.1; 2 Her zaman
network.transport Dize OSI aktarım katmanı veya işlemler arası iletişim yöntemi. tcp; unix Her zaman
network.type Dize OSI ağ katmanı veya OSI olmayan eşdeğeri. ipv4; ipv6 Aktarım veya udpisetcp.
server.address Dize Ters DNS araması olmadan varsa sunucu adresi etki alanı adı; aksi takdirde, IP adresi veya Unix etki alanı yuva adı. example.com Her zaman
server.port int Sunucu bağlantı noktası numarası 80; 8080; 443 Aktarım veya udpisetcp.
tls.protocol.version Dize TLS protokol sürümü. 1.2; 1.3 Bağlantı TLS ile güvenliyse.

Bu ölçüm bağlantı süresini izlediğinden ve ideal olarak http bağlantıları birden çok istek için kullanıldığından, demetler istek süreleri için kullanılanlardan daha uzun olmalıdır. Örneğin, [ 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 300] kullanılması 5 dakikalık bir üst demet sağlar.

.NET 9'dan başlayarak, bağlantı bilinen bir hatayla sona erdiğinde, error.type öznitelik değeri bilinen hata türüne ayarlanır. Bilinen bağlantı hataları Kestrel web sunucusu ölçümleri için Anlam Kuralları'nda bulunabilir.

Şu şekilde kullanılabilir: .NET 8.

Metrik: kestrel.rejected_connections
Veri Akışı Adı İzleme Türü Birim (UCUM) Açıklama
kestrel.rejected_connections Sayaç {connection} Sunucu tarafından reddedilen bağlantı sayısı.
Öznitelik Type Açıklama Örnekler İletişim durumu
network.transport Dize OSI aktarım katmanı veya işlemler arası iletişim yöntemi. tcp; unix Her zaman
network.type Dize OSI ağ katmanı veya OSI olmayan eşdeğeri. ipv4; ipv6 Aktarım veya udpisetcp.
server.address Dize Ters DNS araması olmadan varsa sunucu adresi etki alanı adı; aksi takdirde, IP adresi veya Unix etki alanı yuva adı. example.com Her zaman
server.port int Sunucu bağlantı noktası numarası 80; 8080; 443 Aktarım veya udpisetcp.

Geçerli etkin sayı ile MaxConcurrentConnectionsyapılandırılan değeri aştığında bağlantılar reddedilir.

.NET 8.0'dan itibaren kullanılabilir.

Metrik: kestrel.queued_connections
Veri Akışı Adı İzleme Türü Birim (UCUM) Açıklama
kestrel.queued_connections UpDownCounter {connection} Şu anda kuyruğa alınmış ve başlamayı bekleyen bağlantı sayısı.
Öznitelik Type Açıklama Örnekler İletişim durumu
network.transport Dize OSI aktarım katmanı veya işlemler arası iletişim yöntemi. tcp; unix Her zaman
network.type Dize OSI ağ katmanı veya OSI olmayan eşdeğeri. ipv4; ipv6 Aktarım veya udpisetcp.
server.address Dize Ters DNS araması olmadan varsa sunucu adresi etki alanı adı; aksi takdirde, IP adresi veya Unix etki alanı yuva adı. example.com Her zaman
server.port int Sunucu bağlantı noktası numarası 80; 8080; 443 Aktarım veya udpisetcp.

.NET 8.0'dan itibaren kullanılabilir.

Metrik: kestrel.queued_requests
Veri Akışı Adı İzleme Türü Birim (UCUM) Açıklama
kestrel.queued_requests UpDownCounter {request} Şu anda kuyruğa alınmış ve başlamayı bekleyen çoğullanmış bağlantılardaki (HTTP/2 ve HTTP/3) HTTP isteklerinin sayısı.
Öznitelik Type Açıklama Örnekler İletişim durumu
network.protocol.name Dize OSI uygulama katmanı veya OSI olmayan eşdeğeri. http; web_sockets Her zaman
network.protocol.version Dize içinde network.protocol.namebelirtilen protokolün sürümü. 1.1; 2 Her zaman
network.transport Dize OSI aktarım katmanı veya işlemler arası iletişim yöntemi. tcp; unix Her zaman
network.type Dize OSI ağ katmanı veya OSI olmayan eşdeğeri. ipv4; ipv6 Aktarım veya udpisetcp.
server.address Dize Ters DNS araması olmadan varsa sunucu adresi etki alanı adı; aksi takdirde, IP adresi veya Unix etki alanı yuva adı. example.com Her zaman
server.port int Sunucu bağlantı noktası numarası 80; 8080; 443 Aktarım veya udpisetcp.

.NET 8.0'dan itibaren kullanılabilir.

Metrik: kestrel.upgraded_connections
Veri Akışı Adı İzleme Türü Birim (UCUM) Açıklama
kestrel.upgraded_connections UpDownCounter {connection} Şu anda yükseltilen bağlantı sayısı (WebSockets).
Öznitelik Type Açıklama Örnekler İletişim durumu
network.transport Dize OSI aktarım katmanı veya işlemler arası iletişim yöntemi. tcp; unix Her zaman
network.type Dize OSI ağ katmanı veya OSI olmayan eşdeğeri. ipv4; ipv6 Aktarım veya udpisetcp.
server.address Dize Ters DNS araması olmadan varsa sunucu adresi etki alanı adı; aksi takdirde, IP adresi veya Unix etki alanı yuva adı. example.com Her zaman
server.port int Sunucu bağlantı noktası numarası 80; 8080; 443 Aktarım veya udpisetcp.

Sayaç yalnızca HTTP/1.1 bağlantılarını izler.

.NET 8.0'dan itibaren kullanılabilir.

Metrik: kestrel.tls_handshake.duration
Veri Akışı Adı İzleme Türü Birim (UCUM) Açıklama
kestrel.tls_handshake.duration Histogram s Sunucuda TLS el sıkışması süresi.
Öznitelik Type Açıklama Örnekler İletişim durumu
error.type Dize Özel durum türünün tam adı. System.OperationCanceledException; Contoso.MyException Özel durum oluşturulduysa.
network.transport Dize OSI aktarım katmanı veya işlemler arası iletişim yöntemi. tcp; unix Her zaman
network.type Dize OSI ağ katmanı veya OSI olmayan eşdeğeri. ipv4; ipv6 Aktarım veya udpisetcp.
server.address Dize Ters DNS araması olmadan varsa sunucu adresi etki alanı adı; aksi takdirde, IP adresi veya Unix etki alanı yuva adı. example.com Her zaman
server.port int Sunucu bağlantı noktası numarası 80; 8080; 443 Aktarım veya udpisetcp.
tls.protocol.version Dize TLS protokol sürümü. 1.2; 1.3 Bağlantı TLS ile güvenliyse.

OpenTelemetry kullanılırken, bu metiğin varsayılan demetleri [ 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10 ] olarak ayarlanır.

.NET 8.0'dan itibaren kullanılabilir.

Metrik: kestrel.active_tls_handshakes
Veri Akışı Adı İzleme Türü Birim (UCUM) Açıklama
kestrel.active_tls_handshakes UpDownCounter {handshake} Sunucuda sürmekte olan TLS el sıkışmalarının sayısı.
Öznitelik Type Açıklama Örnekler İletişim durumu
network.transport Dize OSI aktarım katmanı veya işlemler arası iletişim yöntemi. tcp; unix Her zaman
network.type Dize OSI ağ katmanı veya OSI olmayan eşdeğeri. ipv4; ipv6 Aktarım veya udpisetcp.
server.address Dize Ters DNS araması olmadan varsa sunucu adresi etki alanı adı; aksi takdirde, IP adresi veya Unix etki alanı yuva adı. example.com Her zaman
server.port int Sunucu bağlantı noktası numarası 80; 8080; 443 Aktarım veya udpisetcp.

.NET 8.0'dan itibaren kullanılabilir.

Microsoft.AspNetCore.Http.Connections

ÖlçümlerMicrosoft.AspNetCore.Http.Connections, ASP.NET Core SignalR'dan bağlantı bilgilerini bildirir:

Metrik: signalr.server.connection.duration
Veri Akışı Adı İzleme Türü Birim (UCUM) Açıklama
signalr.server.connection.duration Histogram s Sunucudaki bağlantıların süresi.
Öznitelik Type Açıklama Örnekler İletişim durumu
signalr.connection.status Dize SignalR HTTP bağlantı kapatma durumu. app_shutdown; timeout Her zaman
signalr.transport Dize SignalR aktarım türü web_sockets; long_polling Her zaman

.NET 8.0'dan itibaren kullanılabilir.

Value Açıklama
normal_closure Bağlantı normal şekilde kapatıldı.
timeout Zaman aşımı nedeniyle bağlantı kapatıldı.
app_shutdown Uygulama kapatıldığı için bağlantı kapatıldı.

signalr.transport aşağıdakilerden biridir:

Değer Protokol
server_sent_events sunucu tarafından gönderilen olaylar
long_polling Uzun Yoklama
web_sockets WebSocket

Bu ölçüm bağlantı süresini izlediğinden ve ideal olarak SignalR bağlantıları dayanıklı olduğundan, demetler istek süreleri için kullanılanlardan daha uzun olmalıdır. Örneğin, [0, 0,01, 0,02, 0,05, 0,1, 0,2, 0,5, 1, 2, 5, 10, 30, 60, 120, 300] kullanılması 5 dakikalık bir üst demet sağlar.

.NET 8.0'dan itibaren kullanılabilir.

Metrik: signalr.server.active_connections
Veri Akışı Adı İzleme Türü Birim (UCUM) Açıklama
signalr.server.active_connections UpDownCounter {connection} Sunucuda şu anda etkin olan bağlantı sayısı.
Öznitelik Type Açıklama Örnekler İletişim durumu
signalr.connection.status Dize SignalR HTTP bağlantı kapatma durumu. app_shutdown; timeout Her zaman
signalr.transport Dize SignalR aktarım türü web_sockets; long_polling Her zaman

.NET 8.0'dan itibaren kullanılabilir.