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:
http.client.open_connections
http.client.connection.duration
http.client.request.duration
http.client.request.time_in_queue
http.client.active_requests
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í:
- Název výjimky s typem, například TaskCanceledException.
- Stavový kód, který označuje chybu klienta nebo serveru, například
500
. - Pokud HttpRequestException došlo k jinému HttpRequestError než
Unknown
, hodnota výčtu v případě hada, napříkladname_resolution_error
.
[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émahttp
,443
prohttps
) - .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