metriky ASP.NET Core

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
Název Typ přístroje Jednotka (UCUM) Popis
http.server.request.duration Histogram s Měří dobu trvání příchozích požadavků HTTP.
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
Název Typ přístroje Jednotka (UCUM) Popis
aspnetcore.routing.match_attempts Čítač {match_attempt} Počet žádostí, které se pokusily spárovat s koncovým bodem
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
Název Typ přístroje Jednotka (UCUM) Popis
aspnetcore.diagnostics.exceptions Čítač {exception} Počet výjimek zachycených middlewarem zpracování výjimek
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
Název Typ přístroje Jednotka (UCUM) Popis
aspnetcore.rate_limiting.active_request_leases UpDownCounter {request} Počet požadavků, které jsou aktuálně aktivní na serveru, které obsahují zapůjčení s omezením 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_lease.duration
Název Typ přístroje Jednotka (UCUM) Popis
aspnetcore.rate_limiting.request_lease.duration Histogram s Doba trvání zapůjčení omezování rychlosti uchovávané požadavky na serveru.
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
Název Typ přístroje Jednotka (UCUM) Popis
aspnetcore.rate_limiting.request.time_in_queue Histogram s Čas strávený žádostí ve frontě č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.
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
Název Typ přístroje Jednotka (UCUM) Popis
aspnetcore.rate_limiting.requests Čítač {request} Počet žádostí, které se pokusily získat 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.
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.

Microsoft.AspNetCore.HeaderParsing

Informace Microsoft.AspNetCore.HeaderParsing o analýze hlaviček ASP.NET Core v sestavě metrik:

Metrika: aspnetcore.header_parsing.parse_errors
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: aspnetcore.header_parsing.cache_accesses

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
Název Typ přístroje Jednotka (UCUM) Popis
kestrel.connection.duration Histogram s Doba trvání připojení na serveru.
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
Název Typ přístroje Jednotka (UCUM) Popis
kestrel.rejected_connections Čítač {connection} Počet připojení odmítnutých serverem
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
Název Typ přístroje Jednotka (UCUM) Popis
kestrel.tls_handshake.duration Histogram s Doba trvání handshakes protokolu TLS na serveru.
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
Název Typ přístroje Jednotka (UCUM) Popis
signalr.server.connection.duration Histogram s Doba trvání připojení na serveru.
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í:

Hodnota Protokol
server_sent_events události odeslané serverem
long_polling Dlouhé dotazování
web_sockets WebSocket

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
Název Typ přístroje Jednotka (UCUM) Popis
signalr.server.active_connections UpDownCounter {connection} Počet připojení, která jsou aktuálně aktivní na serveru
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.