metriche System.Net
Questo articolo descrive le metriche di rete predefinite per System.Net prodotte usando l'API System.Diagnostics.Metrics. Per un elenco delle metriche basate sull'API eventCounters alternativa
Mancia
Per altre informazioni su come raccogliere, creare report, arricchire e testare le metriche di System.Net, vedere metriche di rete in .NET.
System.Net.NameResolution
Le metriche System.Net.NameResolution
segnalano la risoluzione dei nomi DNS da Dns:
Metrica: dns.lookup.duration
Nome | Tipo di strumento | Unità | Descrizione |
---|---|---|---|
dns.lookup.duration |
Istogramma | s |
Misura il tempo impiegato per eseguire una ricerca DNS. |
Attributo | Digitare | Descrizione | Esempi | Presenza |
---|---|---|---|---|
dns.question.name |
corda | Nome sottoposto a query. |
www.example.com ; dot.net |
Sempre |
error.type |
corda | Stringa di errore nota o nome completo di un'eccezione che si è verificata. |
host_not_found ; System.Net.Sockets.SocketException |
Se si è verificato un errore |
Questa metrica misura il tempo necessario per effettuare richieste DNS. Queste richieste possono verificarsi chiamando metodi su Dns o indirettamente all'interno di API di livello superiore su tipi come HttpClient.
La maggior parte degli errori durante l'esecuzione di una ricerca DNS genera un SocketException. Per evitare disambiguare i casi di errore comuni, alle eccezioni socket con SocketErrorCode specifiche vengono assegnati nomi di errore espliciti in error.type
:
SocketErrorCode | error.type |
---|---|
HostNotFound | host_not_found |
TryAgain | try_again |
AddressFamilyNotSupported | address_family_not_supported |
NoRecovery | no_recovery |
Le eccezioni socket con qualsiasi altro valore di SocketError
vengono segnalate come System.Net.Sockets.SocketException
.
Quando si usa OpenTelemetry, i bucket predefiniti per questa metrica sono impostati su [ 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 ].
Disponibile a partire da: .NET 8
System.Net.Http
Le metriche System.Net.Http
segnalano le informazioni di connessione e richiesta HTTP da 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
Metrica: http.client.open_connections
Nome | Tipo di strumento | Unità (UCUM) | Descrizione |
---|---|---|---|
http.client.open_connections |
UpDownCounter | {connection} |
Numero di connessioni HTTP in uscita attualmente attive o inattive nel client |
Attributo | Digitare | Descrizione | Esempi | Presenza |
---|---|---|---|---|
http.connection.state |
corda | Stato della connessione HTTP nel pool di connessioni HTTP. |
active ; idle |
Sempre |
network.protocol.version |
corda | Versione del protocollo HTTP usata. |
1.1 ; 2 |
Sempre |
server.address |
corda | Identificatore host dell'"origine URI" richiesta HTTP viene inviata. | example.com |
Sempre |
server.port |
Int | Identificatore di porta dell'"origine URI" richiesta HTTP viene inviata. |
80 ; 8080 ; 443 |
Se non è predefinito (80 per lo schema di http , 443 per https ) |
network.peer.address |
corda | Indirizzo IP peer della connessione socket. | 10.5.3.2 |
Sempre |
url.scheme |
corda | Lo schema URI componente che identifica il protocollo usato. |
http ; https ; ftp |
Sempre |
HttpClient, se configurato per l'uso del SocketsHttpHandlerpredefinito , mantiene un pool memorizzato nella cache delle connessioni di rete per l'invio di messaggi HTTP. Questa metrica conta il numero di connessioni attualmente presenti nel pool. Le connessioni attive gestiscono le richieste attive. Le connessioni attive possono trasmettere dati o attendere il client o il server. Le connessioni inattive non gestiscono richieste, ma vengono lasciate aperte in modo che le richieste future possano essere gestite più rapidamente.
Disponibile a partire da: .NET 8
Metrica: http.client.connection.duration
Nome | Tipo di strumento | Unità (UCUM) | Descrizione |
---|---|---|---|
http.client.connection.duration |
Istogramma | s |
Durata delle connessioni HTTP in uscita stabilite correttamente. |
Attributo | Digitare | Descrizione | Esempi | Presenza |
---|---|---|---|---|
network.protocol.version |
corda | Versione del protocollo HTTP usata. |
1.1 ; 2 |
Sempre |
server.address |
corda | Identificatore host dell'"origine URI" richiesta HTTP viene inviata. | example.com |
Sempre |
server.port |
Int | Identificatore di porta dell'"origine URI" richiesta HTTP viene inviata. |
80 ; 8080 ; 443 |
Se non è predefinito (80 per lo schema di http , 443 per https ) |
network.peer.address |
corda | Indirizzo IP della connessione socket. | 10.5.3.2 |
Sempre |
url.scheme |
corda | Lo schema URI componente che identifica il protocollo usato. |
http ; https ; ftp |
Sempre |
Questa metrica viene acquisita solo quando HttpClient è configurato per l'uso del SocketsHttpHandlerpredefinito.
Poiché questa metrica monitora la durata della connessione e idealmente vengono usate connessioni HTTP per più richieste, i bucket devono essere più lunghi di quelli usati per le durate delle richieste. Ad esempio, usando [ 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 300 ] fornisce un bucket superiore di 5 minuti.
Disponibile a partire da: .NET 8
Metrica: http.client.request.duration
Nome | Tipo di strumento | Unità (UCUM) | Descrizione |
---|---|---|---|
http.client.request.duration |
Istogramma | s |
Durata delle richieste HTTP in uscita. |
Attributo | Digitare | Descrizione | Esempi | Presenza |
---|---|---|---|---|
error.type |
corda | Motivo dell'errore della richiesta: uno degli errori di richiesta HTTP in snake_case o un tipo di eccezione completo o un codice di stato HTTP 4xx/5xx. |
System.Threading.Tasks.TaskCanceledException ; name_resolution_error ; secure_connection_error ; 404 |
Se la richiesta non è riuscita. |
http.request.method |
corda | Metodo di richiesta HTTP. |
GET ; POST ; HEAD ; _OTHER [2] |
Sempre |
http.response.status_code |
Int | codice di stato della risposta HTTP. | 200 |
Se la risposta è stata ricevuta. |
network.protocol.version |
corda | Versione del protocollo HTTP usata. |
1.1 ; 2 |
Se la risposta è stata ricevuta. |
server.address |
corda | Identificatore host dell'"origine URI" richiesta HTTP viene inviata. | example.com |
Sempre |
server.port |
Int | Identificatore di porta dell'"origine URI" richiesta HTTP viene inviata. |
80 ; 8080 ; 443 |
Dipende dalla versione di .NET. [3] |
url.scheme |
corda | Lo schema URI componente che identifica il protocollo usato. |
http ; https ; ftp |
Sempre |
[1] error.type
: Se la richiesta non è riuscita, il valore viene impostato su uno dei seguenti:
- Nome di eccezione con tipo, ad esempio, TaskCanceledException.
- Codice di stato che indica un errore client o server, ad esempio
500
. - Se si è verificato un HttpRequestException con un HttpRequestError diverso da
Unknown
, il valore di enumerazione nel caso di serpente, ad esempio,name_resolution_error
.
[2] http.request.method
:http.request.method
:** Il valore contiene il nome del metodo, se il metodo è uno dei metodi noti elencati in RFC9110; in caso contrario, il valore è _OTHER
. I nomi dei metodi forniti dall'utente verranno mappati ai nomi noti in modo senza distinzione tra maiuscole e minuscole. Ad esempio, se l'utente fornisce il nome GeT
, verrà eseguito il mapping a GET
.
[3] server.port
: La presenza del valore dipende dalla versione:
-
.NET 8: presente se non è predefinito (
80
per lo schemahttp
,443
perhttps
) - .NET 9+: Sempre presente
La durata della richiesta client HTTP misura il tempo impiegato dal gestore client sottostante per completare la richiesta. Il completamento della richiesta include il tempo necessario per leggere le intestazioni di risposta dal flusso di rete. Non include il tempo impiegato per leggere il corpo della risposta.
Quando si usa OpenTelemetry, i bucket predefiniti per questa metrica sono impostati su [ 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 ].
Disponibile a partire da: .NET 8
Metrica: http.client.request.time_in_queue
Nome | Tipo di strumento | Unità (UCUM) | Descrizione |
---|---|---|---|
http.client.request.time_in_queue |
Istogramma | s |
Quantità di tempo impiegato dalle richieste in una coda in attesa di una connessione disponibile. |
Attributo | Digitare | Descrizione | Esempi | Presenza |
---|---|---|---|---|
http.request.method |
corda | Metodo di richiesta HTTP. |
GET ; POST ; HEAD |
Sempre |
network.protocol.version |
corda | Versione del protocollo HTTP usata. |
1.1 ; 2 |
Sempre |
server.address |
corda | Identificatore host dell'"origine URI" richiesta HTTP viene inviata. | example.com |
Sempre |
server.port |
Int | Identificatore di porta dell'"origine URI" richiesta HTTP viene inviata. |
80 ; 8080 ; 443 |
Se non è predefinito (80 per lo schema di http , 443 per https ) |
url.scheme |
corda | Lo schema URI componente che identifica il protocollo usato. |
http ; https ; ftp |
Sempre |
HttpClient, se configurato per l'uso del SocketsHttpHandlerpredefinito , invia richieste HTTP usando un pool di connessioni di rete. Se tutte le connessioni gestiscono altre richieste, le nuove richieste vengono inserite in una coda e attendono fino a quando non è disponibile una connessione di rete per l'uso. Questo strumento misura la quantità di tempo trascorso dalle richieste HTTP in attesa in tale coda, prima di qualsiasi invio in rete.
Disponibile a partire da: .NET 8
Metrica: http.client.active_requests
Nome | Tipo di strumento | Unità (UCUM) | Descrizione |
---|---|---|---|
http.client.active_requests |
UpDownCounter | {request} |
Numero di richieste HTTP attive. |
Attributo | Digitare | Descrizione | Esempi | Presenza |
---|---|---|---|---|
http.request.method |
corda | Metodo di richiesta HTTP. |
GET ; POST ; HEAD |
Sempre |
server.address |
corda | Identificatore host dell'"origine URI" richiesta HTTP viene inviata. | example.com |
Sempre |
server.port |
Int | Identificatore di porta dell'"origine URI" richiesta HTTP viene inviata. |
80 ; 8080 ; 443 |
Se non è predefinito (80 per lo schema di http , 443 per https ) |
url.scheme |
corda | Lo schema URI componente che identifica il protocollo usato. |
http ; https ; ftp |
Sempre |
Questa metrica conta il numero di richieste considerate attive. Le richieste sono attive per lo stesso periodo di tempo misurato dallo strumento http.client.request.duration.
Disponibile a partire da: .NET 8