metriche System.Net
Questo articolo descrive le metriche di rete predefinite per l'uso System.Net dell'API System.Diagnostics.Metrics . Per un elenco delle metriche basate sull'API EventCounters alternativa, vedere EventCounters ben noto in .NET.
Suggerimento
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 System.Net.NameResolution
metriche 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 | Tipo | Descrizione | Esempi | Presenza |
---|---|---|---|---|
dns.question.name |
string | Nome sottoposto a query. | www.example.com ; dot.net |
Sempre |
error.type |
string | 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 in 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'eccezione SocketException. Per disambiguare meglio i casi di errore comuni, alle eccezioni socket con specifiche SocketErrorCode 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 SocketError
valore 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 System.Net.Http
metriche 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 | Tipo | Descrizione | Esempi | Presenza |
---|---|---|---|---|
http.connection.state |
string | Stato della connessione HTTP nel pool di connessioni HTTP. | active ; idle |
Sempre |
network.protocol.version |
string | Versione del protocollo del livello applicazione usato. | 1.1 ; 2 |
Sempre |
server.address |
string | L'identificatore host della richiesta HTTP "origine URI" viene inviato. | example.com |
Sempre |
server.port |
int | Viene inviato l'identificatore di porta della richiesta HTTP "origine URI ". | 80 ; 8080 ; 443 |
Se non è predefinito (80 per http schema, 443 per https ) |
network.peer.address |
string | Indirizzo IP peer della connessione socket. | 10.5.3.2 |
Sempre |
url.scheme |
string | Componente dello schema URI che identifica il protocollo usato. | http ; https ; ftp |
Sempre |
HttpClient, se configurato per l'uso dell'impostazione predefinita SocketsHttpHandler, 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 | Tipo | Descrizione | Esempi | Presenza |
---|---|---|---|---|
network.protocol.version |
string | Versione del protocollo del livello applicazione usato. | 1.1 ; 2 |
Sempre |
server.address |
string | L'identificatore host della richiesta HTTP "origine URI" viene inviato. | example.com |
Sempre |
server.port |
int | Viene inviato l'identificatore di porta della richiesta HTTP "origine URI ". | 80 ; 8080 ; 443 |
Se non è predefinito (80 per http schema, 443 per https ) |
network.peer.address |
string | Indirizzo IP della connessione socket. | 10.5.3.2 |
Sempre |
url.scheme |
string | Componente dello schema URI che identifica il protocollo usato. | http ; https ; ftp |
Sempre |
Questa metrica viene acquisita solo quando HttpClient è configurata per l'uso dell'oggetto predefinito SocketsHttpHandler.
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 | Tipo | Descrizione | Esempi | Presenza |
---|---|---|---|---|
error.type |
string | Motivo dell'errore della richiesta: uno degli errori di richiesta HTTP 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 |
string | Metodo di richiesta HTTP. | GET ; POST ; HEAD |
Sempre |
http.response.status_code |
int | Codice di stato della risposta HTTP. | 200 |
Se ne è stata ricevuta una. |
network.protocol.version |
string | Versione del protocollo del livello applicazione usato. | 1.1 ; 2 |
Se la risposta è stata ricevuta. |
server.address |
string | L'identificatore host della richiesta HTTP "origine URI" viene inviato. | example.com |
Sempre |
server.port |
int | Viene inviato l'identificatore di porta della richiesta HTTP "origine URI ". | 80 ; 8080 ; 443 |
Se non è predefinito (80 per http schema, 443 per https ) |
url.scheme |
string | Componente dello schema URI che identifica il protocollo usato. | http ; https ; ftp |
Sempre |
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
Suggerimento
L'arricchimento è possibile per questa metrica.
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 | Tipo | Descrizione | Esempi | Presenza |
---|---|---|---|---|
http.request.method |
string | Metodo di richiesta HTTP. | GET ; POST ; HEAD |
Sempre |
network.protocol.version |
string | Versione del protocollo del livello applicazione usato. | 1.1 ; 2 |
Sempre |
server.address |
string | L'identificatore host della richiesta HTTP "origine URI" viene inviato. | example.com |
Sempre |
server.port |
int | Viene inviato l'identificatore di porta della richiesta HTTP "origine URI ". | 80 ; 8080 ; 443 |
Se non è predefinito (80 per http schema, 443 per https ) |
url.scheme |
string | Componente dello schema URI che identifica il protocollo usato. | http ; https ; ftp |
Sempre |
HttpClient, se configurato per l'uso dell'oggetto predefinito SocketsHttpHandler, 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 | Tipo | Descrizione | Esempi | Presenza |
---|---|---|---|---|
http.request.method |
string | Metodo di richiesta HTTP. | GET ; POST ; HEAD |
Sempre |
server.address |
string | L'identificatore host della richiesta HTTP "origine URI" viene inviato. | example.com |
Sempre |
server.port |
int | Viene inviato l'identificatore di porta della richiesta HTTP "origine URI ". | 80 ; 8080 ; 443 |
Se non è predefinito (80 per http schema, 443 per https ) |
url.scheme |
string | Componente dello schema URI 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