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:

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