Sdílet prostřednictvím


metriky System.Net

Tento článek popisuje integrované síťové metriky pro System.Net vytváření pomocí System.Diagnostics.Metrics rozhraní API. Seznam metrik založených na alternativním rozhraní API EventCounters naleznete v tématu Známé eventCounters v .NET.

Tip

Další informace o shromažďování, vytváření sestav, rozšiřování a testování metrik System.Net naleznete v tématu Metriky sítě v .NET.

System.Net.NameResolution

Překlad System.Net.NameResolution názvů DNS sestavy metrik z Dns:

Metrika: dns.lookup.duration
Název Typ přístroje Unit Popis
dns.lookup.duration Histogram s Měří čas potřebný k provedení vyhledávání DNS.
Atribut Typ Popis Příklady Přítomnost
dns.question.name string Název, na který se dotazuje. www.example.com; dot.net Always
error.type string Známý řetězec chyby nebo úplný název typu výjimky, ke které došlo. host_not_found; System.Net.Sockets.SocketException Pokud došlo k chybě

Tato metrika měří čas, který trvá, než se budou provádět požadavky DNS. K těmto požadavkům může dojít voláním metod Dns v rozhraních API vyšší úrovně nebo nepřímo na typech, jako HttpClientje .

Většina chyb při vyhledávání DNS vyvolá SocketExceptionchybu . Pro lepší nejednoznačnost běžných případů chyb jsou výjimky soketů s konkrétními SocketErrorCode názvy chyb uvedeny explicitně v error.type:

SocketErrorCode error.type
HostNotFound host_not_found
TryAgain try_again
AddressFamilyNotSupported address_family_not_supported
NoRecovery no_recovery

Výjimky soketů s jakoukoli jinou SocketError hodnotou jsou hlášeny jako System.Net.Sockets.SocketException.

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

System.Net.Http

Metriky System.Net.Http hlásí požadavek HTTP a informace o připojení z System.Net.Http:

Metrika: http.client.open_connections
Název Typ přístroje Jednotka (UCUM) Popis
http.client.open_connections UpDownCounter {connection} Počet odchozích připojení HTTP, která jsou aktuálně aktivní nebo nečinná v klientovi
Atribut Typ Popis Příklady Přítomnost
http.connection.state string Stav připojení HTTP ve fondu připojení HTTP active; idle Always
network.protocol.version string Verze použitého protokolu aplikační vrstvy 1.1; 2 Always
server.address string Identifikátor hostitele požadavku HTTP "původu identifikátoru URI" se odešle na adresu. example.com Always
server.port int Odešle se identifikátor portu požadavku HTTP "původu identifikátoru URI" . 80; 8080; 443 Pokud není výchozí (80 pro http schéma, 443 pro https)
network.peer.address string IP adresa partnerského vztahu připojení soketu. 10.5.3.2 Always
url.scheme string Komponenta schématu identifikátoru URI identifikující použitý protokol. http; https; ftp Always

HttpClient, pokud je nakonfigurováno tak, aby používalo výchozí SocketsHttpHandler, udržuje fond síťových připojení uložený v mezipaměti pro odesílání zpráv HTTP. Tato metrika počítá, kolik připojení je aktuálně ve fondu. Aktivní připojení zpracovávají aktivní požadavky. Aktivní připojení může přenášet data nebo čekat na klienta nebo server. Nečinná připojení nezpracují žádné požadavky, ale zůstanou otevřená, aby se budoucí žádosti mohly zpracovávat rychleji.

Dostupné od: .NET 8

Metrika: http.client.connection.duration
Název Typ přístroje Jednotka (UCUM) Popis
http.client.connection.duration Histogram s Doba trvání úspěšně navazovaných odchozích připojení HTTP.
Atribut Typ Popis Příklady Přítomnost
network.protocol.version string Verze použitého protokolu aplikační vrstvy 1.1; 2 Always
server.address string Identifikátor hostitele požadavku HTTP "původu identifikátoru URI" se odešle na adresu. example.com Always
server.port int Odešle se identifikátor portu požadavku HTTP "původu identifikátoru URI" . 80; 8080; 443 Pokud není výchozí (80 pro http schéma, 443 pro https)
network.peer.address string IP adresa připojení soketu. 10.5.3.2 Always
url.scheme string Komponenta schématu identifikátoru URI identifikující použitý protokol. http; https; ftp Always

Tato metrika se zaznamenává pouze v případě, že HttpClient je nakonfigurovaná tak, aby používala výchozí SocketsHttpHandlerhodnotu .

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

Metrika: http.client.request.duration
Název Typ přístroje Jednotka (UCUM) Popis
http.client.request.duration Histogram s Doba trvání odchozích požadavků HTTP.
Atribut Typ Popis Příklady Přítomnost
error.type string Důvod selhání požadavku: jedna z chyb požadavku HTTP nebo úplný typ výjimky nebo stavový kód HTTP 4xx/5xx. System.Threading.Tasks.TaskCanceledException; name_resolution_error; secure_connection_error ; 404 Pokud se požadavek nepovedl.
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 přijat.
network.protocol.version string Verze použitého protokolu aplikační vrstvy 1.1; 2 Byla-li přijata odpověď.
server.address string Identifikátor hostitele požadavku HTTP "původu identifikátoru URI" se odešle na adresu. example.com Always
server.port int Odešle se identifikátor portu požadavku HTTP "původu identifikátoru URI" . 80; 8080; 443 Pokud není výchozí (80 pro http schéma, 443 pro https)
url.scheme string Komponenta schématu identifikátoru URI identifikující použitý protokol. http; https; ftp Always

Doba trvání požadavku klienta HTTP měří dobu, po kterou podkladová obslužná rutina klienta trvá dokončení požadavku. Dokončení požadavku zahrnuje čas až do čtení hlaviček odpovědi ze síťového streamu. Nezahrnuje čas strávený čtením textu odpovědi.

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

Metrika: http.client.request.time_in_queue
Název Typ přístroje Jednotka (UCUM) Popis
http.client.request.time_in_queue Histogram s Doba strávená požadavky na frontu čekající na dostupné připojení.
Atribut Typ Popis Příklady Přítomnost
http.request.method string Metoda požadavku HTTP. GET; POST; HEAD Always
network.protocol.version string Verze použitého protokolu aplikační vrstvy 1.1; 2 Always
server.address string Identifikátor hostitele požadavku HTTP "původu identifikátoru URI" se odešle na adresu. example.com Always
server.port int Odešle se identifikátor portu požadavku HTTP "původu identifikátoru URI" . 80; 8080; 443 Pokud není výchozí (80 pro http schéma, 443 pro https)
url.scheme string Komponenta schématu identifikátoru URI identifikující použitý protokol. http; https; ftp Always

HttpClient, pokud je nakonfigurováno pro použití výchozího SocketsHttpHandlernastavení , odešle požadavky HTTP pomocí fondu síťových připojení. Pokud jsou všechna připojení zaneprázdněná zpracováním jiných požadavků, nové požadavky se umístí do fronty a počká, až bude síťové připojení k dispozici pro použití. Tento nástroj měří dobu, po kterou požadavky HTTP tráví čekáním v této frontě před odesláním v síti.

Dostupné od: .NET 8

Metrika: http.client.active_requests
Název Typ přístroje Jednotka (UCUM) Popis
http.client.active_requests UpDownCounter {request} Počet aktivních požadavků HTTP
Atribut Typ Popis Příklady Přítomnost
http.request.method string Metoda požadavku HTTP. GET; POST; HEAD Always
server.address string Identifikátor hostitele požadavku HTTP "původu identifikátoru URI" se odešle na adresu. example.com Always
server.port int Odešle se identifikátor portu požadavku HTTP "původu identifikátoru URI" . 80; 8080; 443 Pokud není výchozí (80 pro http schéma, 443 pro https)
url.scheme string Komponenta schématu identifikátoru URI identifikující použitý protokol. http; https; ftp Always

Tato metrika počítá, kolik požadavků je považováno za aktivní. Požadavky jsou aktivní pro stejné časové období měřené nástrojem http.client.request.duration .

Dostupné od: .NET 8