metriky ASP.NET Core
Článek 02/05/2024
Přispěvatelé: 8
Váš názor
V tomto článku
Tento článek popisuje metriky integrované pro ASP.NET Core vytvořené pomocí System.Diagnostics.Metrics rozhraní API. Seznam metrik založených na starším rozhraní API EventCounters najdete tady .
Tip
Další informace o shromažďování, vytváření sestav, rozšiřování a testování metrik ASP.NET Core najdete v tématu Použití metrik ASP.NET Core.
Microsoft.AspNetCore.Hosting
Metriky Microsoft.AspNetCore.Hosting
hlásí základní informace o požadavcích HTTP přijatých službou ASP.NET Core:
Metrika: http.server.request.duration
Atribut
Typ
Popis
Příklady
Přítomnost
http.route
string
Odpovídající trasa.
{controller}/{action}/{id?}
Pokud je k dispozici.
error.type
string
Popisuje třídu chyby, na které operace skončila.
timeout
; name_resolution_error
; 500
Pokud žádost skončila s chybou.
http.request.method
string
Metoda požadavku HTTP.
GET
; POST
; HEAD
Always
http.response.status_code
int
Stavový kód odpovědi HTTP.
200
Pokud byl odeslán.
network.protocol.version
string
Verze protokolu zadaného v network.protocol.name
.
3.1.1
Always
url.scheme
string
Komponenta schématu identifikátoru URI identifikující použitý protokol.
http
; https
Always
aspnetcore.request.is_unhandled
Logická hodnota
Hodnota True, pokud kanál aplikace nezpracoval požadavek.
true
Pokud byl požadavek neošetřený.
Čas použitý ke zpracování příchozího požadavku HTTP měřený na hostitelské vrstvě ASP.NET Core. Časové měření začíná, jakmile má podkladový webový hostitel:
Dostatečně parsovali hlavičky požadavku HTTP v příchozím síťovém streamu, aby bylo možné identifikovat nový požadavek.
Inicializovali kontextové datové struktury, jako je například HttpContext .
Čas končí v následujících případech:
Spuštění kanálu obslužné rutiny ASP.NET Core.
Všechna data odpovědi byla odeslána.
Zlikvidují se kontextové datové struktury požadavku.
Při použití OpenTelemetry jsou výchozí kontejnery pro tuto metriku nastaveny na [ 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 ].
Dostupné od: .NET 8.0.
Metrika: http.server.active_requests
Název
Typ přístroje
Jednotka (UCUM)
Popis
http.server.active_requests
UpDownCounter
{request}
Měří počet souběžných požadavků HTTP, které jsou aktuálně v testovací verzi.
Atribut
Typ
Popis
Příklady
Přítomnost
http.request.method
string
Metoda požadavku HTTP. [1]
GET
; POST
; HEAD
Always
url.scheme
string
Komponenta schématu identifikátoru URI identifikující použitý protokol.
http
; https
Always
Dostupné od: .NET 8.0.
Microsoft.AspNetCore.Routing
Sestava Microsoft.AspNetCore.Routing
metrik o směrování požadavků HTTP na koncové body ASP.NET Core:
Metrika: aspnetcore.routing.match_attempts
Atribut
Typ
Popis
Příklady
Přítomnost
aspnetcore.routing.match_status
string
Výsledek shody
success
; failure
Always
aspnetcore.routing.is_fallback_route
boolean
Hodnota, která označuje, jestli je spárovaná trasa náhradní trasou.
True
Pokud se trasa úspěšně shodovala.
http.route
string
Odpovídající trasa
{controller}/{action}/{id?}
Pokud se trasa úspěšně shodovala.
Dostupné od: .NET 8.0.
Microsoft.AspNetCore.Diagnostics
Informace Microsoft.AspNetCore.Diagnostics
o diagnostice metriky ze ASP.NET middlewaru pro zpracování chyb core:
Metrika: aspnetcore.diagnostics.exceptions
Atribut
Typ
Popis
Příklady
Přítomnost
aspnetcore.diagnostics.exception.result
string
výsledek zpracování middlewaru výjimky ASP.NET Core
handled
; unhandled
Always
aspnetcore.diagnostics.handler.type
string
Úplný název IExceptionHandler
typu implementace, která zpracovala výjimku.
Contoso.MyHandler
Pokud byla výjimka zpracována touto obslužnou rutinou.
exception.type
string
Úplný název typu výjimky.
System.OperationCanceledException
; Contoso.MyException
Always
Dostupné od: .NET 8.0.
Microsoft.AspNetCore.RateLimiting
Informace Microsoft.AspNetCore.RateLimiting
o omezování rychlosti sestavy metrik z ASP.NET middlewaru s omezením rychlosti jádra:
Metrika: aspnetcore.rate_limiting.active_request_leases
Atribut
Typ
Popis
Příklady
Přítomnost
aspnetcore.rate_limiting.policy
string
Název zásady omezování rychlosti
fixed
; sliding
; token
Pokud měl odpovídající koncový bod pro požadavek zásadu omezování rychlosti.
Dostupné od: .NET 8.0.
Metrika: aspnetcore.rate_limiting.request_lease.duration
Atribut
Typ
Popis
Příklady
Přítomnost
aspnetcore.rate_limiting.policy
string
Název zásady omezování rychlosti
fixed
; sliding
; token
Pokud měl odpovídající koncový bod pro požadavek zásadu omezování rychlosti.
Dostupné od: .NET 8.0.
Metrika: aspnetcore.rate_limiting.queued_requests
Název
Typ přístroje
Jednotka (UCUM)
Popis
aspnetcore.rate_limiting.queued_requests
UpDownCounter
{request}
Počet požadavků, které jsou aktuálně zařazeny do fronty čekající na získání zapůjčení omezování rychlosti
Atribut
Typ
Popis
Příklady
Přítomnost
aspnetcore.rate_limiting.policy
string
Název zásady omezování rychlosti
fixed
; sliding
; token
Pokud měl odpovídající koncový bod pro požadavek zásadu omezování rychlosti.
Dostupné od: .NET 8.0.
Metrika: aspnetcore.rate_limiting.request.time_in_queue
Atribut
Typ
Popis
Příklady
Přítomnost
aspnetcore.rate_limiting.policy
string
Název zásady omezování rychlosti
fixed
; sliding
; token
Pokud měl odpovídající koncový bod pro požadavek zásadu omezování rychlosti.
aspnetcore.rate_limiting.result
string
Výsledek omezování rychlosti ukazuje, jestli bylo zapůjčení získáno nebo obsahuje důvod zamítnutí.
acquired
; request_canceled
Always
Dostupné od: .NET 8.0.
Metrika: aspnetcore.rate_limiting.requests
Atribut
Typ
Popis
Příklady
Přítomnost
aspnetcore.rate_limiting.policy
string
Název zásady omezování rychlosti
fixed
; sliding
; token
Pokud měl odpovídající koncový bod pro požadavek zásadu omezování rychlosti.
aspnetcore.rate_limiting.result
string
Výsledek omezování rychlosti ukazuje, jestli bylo zapůjčení získáno nebo obsahuje důvod zamítnutí.
acquired
; request_canceled
Always
Dostupné od: .NET 8.0.
Informace Microsoft.AspNetCore.HeaderParsing
o analýze hlaviček ASP.NET Core v sestavě metrik:
Název
Typ přístroje
Jednotka (UCUM)
Popis
aspnetcore.header_parsing.parse_errors
Čítač
{parse_error}
Počet chyb, ke kterým došlo při analýze hlaviček požadavků HTTP
Atribut
Typ
Popis
Příklady
Přítomnost
aspnetcore.header_parsing.header.name
string
Název záhlaví.
Content-Type
Always
error.type
string
Chybová zpráva
Unable to parse media type value.
Always
Dostupné od: .NET 8.0.
Metrika se vygeneruje jenom pro analyzátory hlaviček požadavků HTTP, které podporují ukládání do mezipaměti.
Název
Typ přístroje
Jednotka (UCUM)
Popis
aspnetcore.header_parsing.cache_accesses
Čítač
{cache_access}
Počet přístupů k mezipaměti, do které se ukládají analyzované hodnoty hlaviček
Atribut
Typ
Popis
Příklady
Přítomnost
aspnetcore.header_parsing.header.name
string
Název záhlaví.
Content-Type
Always
aspnetcore.header_parsing.cache_access.type
string
Hodnota označující, zda byla hodnota hlavičky nalezena v mezipaměti, nebo ne.
Hit
; Miss
Always
Dostupné od: .NET 8.0.
Microsoft.AspNetCore.Server.Kestrel
Metriky Microsoft.AspNetCore.Server.Kestrel
hlásí informace o připojení HTTP z webového serveru ASP.NET Core Kestrel:
Metrika: kestrel.active_connections
Název
Typ přístroje
Jednotka (UCUM)
Popis
kestrel.active_connections
UpDownCounter
{connection}
Počet připojení, která jsou aktuálně aktivní na serveru
Atribut
Typ
Popis
Příklady
Přítomnost
network.transport
string
Přenosová vrstva OSI nebo metoda komunikace mezi procesy
tcp
; unix
Always
network.type
string
Síťová vrstva OSI nebo jiná než OSI ekvivalentní.
ipv4
; ipv6
Je-li přeprava tcp
nebo udp
.
server.address
string
Název domény adresy serveru, pokud je k dispozici bez zpětného vyhledávání DNS; jinak, IP adresa nebo název soketu domény unix.
example.com
Always
server.port
int
Číslo portu serveru
80
; 8080
; 443
Je-li přeprava tcp
nebo udp
.
Dostupné od: .NET 8.0.
Metrika: kestrel.connection.duration
Atribut
Typ
Popis
Příklady
Přítomnost
error.type
string
Úplný název typu výjimky.
System.OperationCanceledException
; Contoso.MyException
Pokud byla vyvolán výjimka.
network.protocol.name
string
Aplikační vrstva OSI nebo jiná než OSI ekvivalentní.
http
; web_sockets
Always
network.protocol.version
string
Verze protokolu zadaného v network.protocol.name
.
1.1
; 2
Always
network.transport
string
Přenosová vrstva OSI nebo metoda komunikace mezi procesy
tcp
; unix
Always
network.type
string
Síťová vrstva OSI nebo jiná než OSI ekvivalentní.
ipv4
; ipv6
Je-li přeprava tcp
nebo udp
.
server.address
string
Název domény adresy serveru, pokud je k dispozici bez zpětného vyhledávání DNS; jinak, IP adresa nebo název soketu domény unix.
example.com
Always
server.port
int
Číslo portu serveru
80
; 8080
; 443
Je-li přeprava tcp
nebo udp
.
tls.protocol.version
string
Verze protokolu TLS.
1.2
; 1.3
Pokud je připojení zabezpečené pomocí protokolu TLS.
Vzhledem k tomu, že tato metrika sleduje dobu trvání připojení a v ideálním případě se připojení HTTP používají pro více požadavků, měly by být kontejnery delší než ty, které se používají pro dobu trvání požadavků. Například použití [ 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 300] poskytuje horní kbelík s 5 minutami.
Dostupné od: .NET 8.0.
Metrika: kestrel.rejected_connections
Atribut
Typ
Popis
Příklady
Přítomnost
network.transport
string
Přenosová vrstva OSI nebo metoda komunikace mezi procesy
tcp
; unix
Always
network.type
string
Síťová vrstva OSI nebo jiná než OSI ekvivalentní.
ipv4
; ipv6
Je-li přeprava tcp
nebo udp
.
server.address
string
Název domény adresy serveru, pokud je k dispozici bez zpětného vyhledávání DNS; jinak, IP adresa nebo název soketu domény unix.
example.com
Always
server.port
int
Číslo portu serveru
80
; 8080
; 443
Je-li přeprava tcp
nebo udp
.
Připojení iony jsou odmítnuty, pokud aktuálně aktivní počet překračuje hodnotu nakonfigurovanou MaxConcurrentConnections
.
Dostupné od: .NET 8.0.
Metrika: kestrel.queued_connections
Název
Typ přístroje
Jednotka (UCUM)
Popis
kestrel.queued_connections
UpDownCounter
{connection}
Počet připojení, která jsou aktuálně zařazená do fronty a čekají na spuštění
Atribut
Typ
Popis
Příklady
Přítomnost
network.transport
string
Přenosová vrstva OSI nebo metoda komunikace mezi procesy
tcp
; unix
Always
network.type
string
Síťová vrstva OSI nebo jiná než OSI ekvivalentní.
ipv4
; ipv6
Je-li přeprava tcp
nebo udp
.
server.address
string
Název domény adresy serveru, pokud je k dispozici bez zpětného vyhledávání DNS; jinak, IP adresa nebo název soketu domény unix.
example.com
Always
server.port
int
Číslo portu serveru
80
; 8080
; 443
Je-li přeprava tcp
nebo udp
.
Dostupné od: .NET 8.0.
Metrika: kestrel.queued_requests
Název
Typ přístroje
Jednotka (UCUM)
Popis
kestrel.queued_requests
UpDownCounter
{request}
Počet požadavků HTTP na multiplexovaná připojení (HTTP/2 a HTTP/3), které jsou aktuálně zařazeny do fronty a čekají na spuštění.
Atribut
Typ
Popis
Příklady
Přítomnost
network.protocol.name
string
Aplikační vrstva OSI nebo jiná než OSI ekvivalentní.
http
; web_sockets
Always
network.protocol.version
string
Verze protokolu zadaného v network.protocol.name
.
1.1
; 2
Always
network.transport
string
Přenosová vrstva OSI nebo metoda komunikace mezi procesy
tcp
; unix
Always
network.type
string
Síťová vrstva OSI nebo jiná než OSI ekvivalentní.
ipv4
; ipv6
Je-li přeprava tcp
nebo udp
.
server.address
string
Název domény adresy serveru, pokud je k dispozici bez zpětného vyhledávání DNS; jinak, IP adresa nebo název soketu domény unix.
example.com
Always
server.port
int
Číslo portu serveru
80
; 8080
; 443
Je-li přeprava tcp
nebo udp
.
Dostupné od: .NET 8.0.
Metrika: kestrel.upgraded_connections
Název
Typ přístroje
Jednotka (UCUM)
Popis
kestrel.upgraded_connections
UpDownCounter
{connection}
Počet aktuálně upgradovaných připojení (WebSockets).
Atribut
Typ
Popis
Příklady
Přítomnost
network.transport
string
Přenosová vrstva OSI nebo metoda komunikace mezi procesy
tcp
; unix
Always
network.type
string
Síťová vrstva OSI nebo jiná než OSI ekvivalentní.
ipv4
; ipv6
Je-li přeprava tcp
nebo udp
.
server.address
string
Název domény adresy serveru, pokud je k dispozici bez zpětného vyhledávání DNS; jinak, IP adresa nebo název soketu domény unix.
example.com
Always
server.port
int
Číslo portu serveru
80
; 8080
; 443
Je-li přeprava tcp
nebo udp
.
Čítač sleduje pouze připojení HTTP/1.1.
Dostupné od: .NET 8.0.
Metrika: kestrel.tls_handshake.duration
Atribut
Typ
Popis
Příklady
Přítomnost
error.type
string
Úplný název typu výjimky.
System.OperationCanceledException
; Contoso.MyException
Pokud byla vyvolán výjimka.
network.transport
string
Přenosová vrstva OSI nebo metoda komunikace mezi procesy
tcp
; unix
Always
network.type
string
Síťová vrstva OSI nebo jiná než OSI ekvivalentní.
ipv4
; ipv6
Je-li přeprava tcp
nebo udp
.
server.address
string
Název domény adresy serveru, pokud je k dispozici bez zpětného vyhledávání DNS; jinak, IP adresa nebo název soketu domény unix.
example.com
Always
server.port
int
Číslo portu serveru
80
; 8080
; 443
Je-li přeprava tcp
nebo udp
.
tls.protocol.version
string
Verze protokolu TLS.
1.2
; 1.3
Pokud je připojení zabezpečené pomocí protokolu TLS.
Při použití OpenTelemetry jsou výchozí kontejnery pro tuto metickou hodnotu nastaveny na [ 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 ].
Dostupné od: .NET 8.0.
Metrika: kestrel.active_tls_handshakes
Název
Typ přístroje
Jednotka (UCUM)
Popis
kestrel.active_tls_handshakes
UpDownCounter
{handshake}
Počet metod handshake protokolu TLS, které aktuálně probíhají na serveru
Atribut
Typ
Popis
Příklady
Přítomnost
network.transport
string
Přenosová vrstva OSI nebo metoda komunikace mezi procesy
tcp
; unix
Always
network.type
string
Síťová vrstva OSI nebo jiná než OSI ekvivalentní.
ipv4
; ipv6
Je-li přeprava tcp
nebo udp
.
server.address
string
Název domény adresy serveru, pokud je k dispozici bez zpětného vyhledávání DNS; jinak, IP adresa nebo název soketu domény unix.
example.com
Always
server.port
int
Číslo portu serveru
80
; 8080
; 443
Je-li přeprava tcp
nebo udp
.
Dostupné od: .NET 8.0.
Microsoft.AspNetCore.Http.Connections
Metriky Microsoft.AspNetCore.Http.Connections
hlásí informace o připojení z ASP.NET Core SignalR :
Metrika: signalr.server.connection.duration
Atribut
Typ
Popis
Příklady
Přítomnost
signalr.connection.status
string
Stav uzavření připojení HTTP služby SignalR.
app_shutdown
; timeout
Always
signalr.transport
string
Typ přenosu signalR
web_sockets
; long_polling
Always
Dostupné od: .NET 8.0.
Hodnota
Popis
normal_closure
Připojení bylo normálně uzavřeno.
timeout
Připojení bylo uzavřeno kvůli vypršení časového limitu.
app_shutdown
Připojení se ukončilo, protože aplikace se vypíná.
signalr.transport
je jedna z následujících možností:
Vzhledem k tomu, že tato metrika sleduje dobu trvání připojení a v ideálním případě jsou připojení SignalR odolná, měly by být kontejnery delší než ty, které se používají pro dobu trvání požadavků. Například použití [0, 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 300] poskytuje horní kbelík s 5 minutami.
Dostupné od: .NET 8.0.
Metrika: signalr.server.active_connections
Atribut
Typ
Popis
Příklady
Přítomnost
signalr.connection.status
string
Stav uzavření připojení HTTP služby SignalR.
app_shutdown
; timeout
Always
signalr.transport
string
Typ přenosu signalR
web_sockets
; long_polling
Always
Dostupné od: .NET 8.0.