Sdílet prostřednictvím


metriky System.Net

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

Spropitné

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

System.Net.NameResolution

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

Metrika: dns.lookup.duration
Jméno Typ přístroje Jednotka 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 řetězec Název, na který se dotazuje. www.example.com; dot.net Vždy
error.type řetězec 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 nebo nepřímo v rozhraních API vyšší úrovně u typů, jako je HttpClient.

Většina chyb při vyhledávání DNS vyvolá SocketException. Pro lepší nejednoznačnost běžných případů chyb jsou výjimky soketů s konkrétními SocketErrorCode uvedeny explicitní názvy chyb 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 hodnotou SocketError 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

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

Metrika: http.client.open_connections
Jméno 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 řetězec Stav připojení HTTP ve fondu připojení HTTP active; idle Vždy
network.protocol.version řetězec Verze použitého protokolu HTTP. 1.1; 2 Vždy
server.address řetězec Identifikátor hostitele "URI origin" požadavek HTTP se odešle. example.com Vždy
server.port Int Identifikátor portu "původu identifikátoru URI" požadavek HTTP se odešle. 80; 8080; 443 Pokud není výchozí (80 pro schéma http, 443 pro https)
network.peer.address řetězec IP adresa partnerského vztahu připojení soketu. 10.5.3.2 Vždy
url.scheme řetězec Schéma identifikátorů URI komponentu identifikující použitý protokol. http; https; ftp Vždy

HttpClient, pokud je nakonfigurováno na použití 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
Jméno 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 řetězec Verze použitého protokolu HTTP. 1.1; 2 Vždy
server.address řetězec Identifikátor hostitele "URI origin" požadavek HTTP se odešle. example.com Vždy
server.port Int Identifikátor portu "původu identifikátoru URI" požadavek HTTP se odešle. 80; 8080; 443 Pokud není výchozí (80 pro schéma http, 443 pro https)
network.peer.address řetězec IP adresa připojení soketu. 10.5.3.2 Vždy
url.scheme řetězec Schéma identifikátorů URI komponentu identifikující použitý protokol. http; https; ftp Vždy

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

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
Jméno 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 řetězec Důvod selhání požadavku: jedna z chyb požadavků HTTP v snake_case 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 řetězec Metoda požadavku HTTP. GET; POST; HEAD; _OTHER [2] Vždy
http.response.status_code Int stavový kód odpovědi HTTP. 200 Byla-li přijata odpověď.
network.protocol.version řetězec Verze použitého protokolu HTTP. 1.1; 2 Byla-li přijata odpověď.
server.address řetězec Identifikátor hostitele "URI origin" požadavek HTTP se odešle. example.com Vždy
server.port Int Identifikátor portu "původu identifikátoru URI" požadavek HTTP se odešle. 80; 8080; 443 Závisí na verzi .NET. [3]
url.scheme řetězec Schéma identifikátorů URI komponentu identifikující použitý protokol. http; https; ftp Vždy

[1] error.type: Pokud požadavek selhal, je hodnota nastavená na jednu z následujících možností:

[2] http.request.method:http.request.method:** Hodnota obsahuje název metody, pokud je metoda jednou z dobře známých metod uvedených v RFC9110; v opačném případě je hodnota _OTHER. Názvy metod zadaných uživatelem budou mapovány na známé názvy bez rozlišování velkých a malých písmen. Pokud například uživatel zadá jméno GeT, bude mapován na GET.

[3] server.port: Přítomnost hodnoty je závislá na verzi:

  • .NET 8: Prezentovat, pokud není výchozí (80 pro schéma http, 443 pro https)
  • .NET 9 nebo novější: Vždy k dispozici

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

Spropitné

pro tuto metriku je možné rozšiřování.

Metrika: http.client.request.time_in_queue
Jméno 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 řetězec Metoda požadavku HTTP. GET; POST; HEAD Vždy
network.protocol.version řetězec Verze použitého protokolu HTTP. 1.1; 2 Vždy
server.address řetězec Identifikátor hostitele "URI origin" požadavek HTTP se odešle. example.com Vždy
server.port Int Identifikátor portu "původu identifikátoru URI" požadavek HTTP se odešle. 80; 8080; 443 Pokud není výchozí (80 pro schéma http, 443 pro https)
url.scheme řetězec Schéma identifikátorů URI komponentu identifikující použitý protokol. http; https; ftp Vždy

HttpClient, pokud je nakonfigurováno pro použití výchozího SocketsHttpHandler, 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
Jméno 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 řetězec Metoda požadavku HTTP. GET; POST; HEAD Vždy
server.address řetězec Identifikátor hostitele "URI origin" požadavek HTTP se odešle. example.com Vždy
server.port Int Identifikátor portu "původu identifikátoru URI" požadavek HTTP se odešle. 80; 8080; 443 Pokud není výchozí (80 pro schéma http, 443 pro https)
url.scheme řetězec Schéma identifikátorů URI komponentu identifikující použitý protokol. http; https; ftp Vždy

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

Dostupné od: .NET 8