ASP.NET Core ölçümleri
Makale 02/07/2024
8 katılımcı
Geri Bildirim
Bu makalede
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
Ö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.name
belirtilen 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 HttpContext bağ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
Ö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
Ö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
Ö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
Ö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
Ö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
Ö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.
Ölçümler, Microsoft.AspNetCore.HeaderParsing
ASP.NET Core üst bilgi ayrıştırma hakkındaki bilgileri bildirir:
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.
Ö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 udp
isetcp
.
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 udp
isetcp
.
.NET 8.0'dan itibaren kullanılabilir.
Metrik: kestrel.connection.duration
Ö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.name
belirtilen 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 udp
isetcp
.
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 udp
isetcp
.
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 udp
isetcp
.
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 udp
isetcp
.
Geçerli etkin sayı ile MaxConcurrentConnections
yapı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 udp
isetcp
.
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 udp
isetcp
.
.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.name
belirtilen 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 udp
isetcp
.
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 udp
isetcp
.
.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 udp
isetcp
.
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 udp
isetcp
.
Sayaç yalnızca HTTP/1.1 bağlantılarını izler.
.NET 8.0'dan itibaren kullanılabilir.
Metrik: kestrel.tls_handshake.duration
Ö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 udp
isetcp
.
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 udp
isetcp
.
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 udp
isetcp
.
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 udp
isetcp
.
.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
Ö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:
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
Ö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.