Partager via


Métriques System.Net

Cet article décrit les métriques de réseau intégrées pour System.Net produites à l’aide de l’API System.Diagnostics.Metrics. Pour obtenir la liste des métriques basées sur l’API alternative EventCounters, consultez EventCounters connus dans .NET.

Conseil

Pour plus d’informations sur la collecte, le rapport, l’enrichissement et le test des métriques System.Net, consultez Métriques réseau dans .NET.

System.Net.NameResolution

Les métriques System.Net.NameResolution signalent la résolution de noms DNS à partir de Dns :

Métrique : dns.lookup.duration
Nom Type d’instrument Unité Description
dns.lookup.duration Histogramme s Mesure le temps nécessaire pour effectuer une recherche DNS.
Attribut Type Description Exemples Présence
dns.question.name string Le nom est en cours d’interrogation. www.example.com; dot.net Toujours
error.type string Chaîne d’erreur connue ou nom de type complet d’une exception qui s’est produite. host_not_found; System.Net.Sockets.SocketException Si une erreur est survenue

Cette métrique mesure le temps nécessaire pour effectuer des requêtes DNS. Ces requêtes peuvent se produire en appelant des méthodes sur Dns ou indirectement dans des API de niveau supérieur sur des types tels que HttpClient.

La plupart des erreurs lors de l’exécution d’une recherche DNS lèvent un SocketException. Pour mieux désambiguïser les cas d’erreur courants, les exceptions de socket avec des SocketErrorCode spécifiques reçoivent des noms d’erreur explicites dans error.type :

SocketErrorCode error.type
HostNotFound host_not_found
TryAgain try_again
AddressFamilyNotSupported address_family_not_supported
NoRecovery no_recovery

Les exceptions de socket avec toute autre valeur de SocketError sont signalées en tant que System.Net.Sockets.SocketException.

Lorsque vous utilisez OpenTelemetry, les groupes de données par défaut pour cette mesure sont définis sur [ 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 ].

Disponible à partir de : .NET 8

System.Net.Http

Les métriques System.Net.Http signalent les informations de requête et de connexion HTTP à partir de System.Net.Http :

Métrique : http.client.open_connections
Nom Type d’instrument Unité (UCUM) Description
http.client.open_connections UpDownCounter {connection} Nombre de connexions HTTP sortantes actuellement actives ou inactives sur le client
Attribut Type Description Exemples Présence
http.connection.state string État de la connexion HTTP dans le pool de connexions HTTP. active; idle Toujours
network.protocol.version string Version du protocole de couche Application utilisée. 1.1; 2 Toujours
server.address string L’identificateur d’hôte de la requête HTTP « ORIGINE URL » est envoyé. example.com Toujours
server.port int L’identificateur de port de la requête HTTP « ORIGINE URL » est envoyé. 80; 8080; ; 443 Si ce n’est pas le cas par défaut (80 pour http le schéma, 443 pour https)
network.peer.address string Adresse IP homologue de la connexion de socket. 10.5.3.2 Toujours
url.scheme string Le composant du schéma URI identifiant le protocole utilisé. http; https; ; ftp Toujours

HttpClient, lorsqu’il est configuré pour utiliser la valeur par défaut SocketsHttpHandler, conserve un pool mis en cache de connexions réseau pour l’envoi de messages HTTP. Cette métrique compte le nombre de connexions actuellement dans le pool. Les connexions actives gèrent les requêtes actives. Les connexions actives peuvent transmettre des données ou attendre le client ou le serveur. Les connexions inactives ne gèrent pas de requêtes, mais sont laissées ouvertes afin que les futures requêtes puissent être traitées plus rapidement.

Disponible à partir de : .NET 8

Métrique : http.client.connection.duration
Nom Type d’instrument Unité (UCUM) Description
http.client.connection.duration Histogramme s Durée des connexions HTTP sortantes correctement établies.
Attribut Type Description Exemples Présence
network.protocol.version string Version du protocole de couche Application utilisée. 1.1; 2 Toujours
server.address string L’identificateur d’hôte de la requête HTTP « ORIGINE URL » est envoyé. example.com Toujours
server.port int L’identificateur de port de la requête HTTP « ORIGINE URL » est envoyé. 80; 8080; ; 443 Si ce n’est pas le cas par défaut (80 pour http le schéma, 443 pour https)
network.peer.address string Adresse IP de la connexion de socket. 10.5.3.2 Toujours
url.scheme string Le composant du schéma URI identifiant le protocole utilisé. http; https; ; ftp Toujours

Cette métrique est capturée uniquement lorsqu’elle HttpClient est configurée pour utiliser la valeur par défaut SocketsHttpHandler.

Étant donné que cette mesure suit la durée de la connexion et que, dans l’idéal, les connexions HTTP sont utilisées pour plusieurs requêtes, les intervalles doivent être plus longs que ceux utilisés pour les durées des requêtes. Par exemple, pour un compartiment supérieur de 5 minutes, on va utiliser [0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 300].

Disponible à partir de : .NET 8

Métrique : http.client.request.duration
Nom Type d’instrument Unité (UCUM) Description
http.client.request.duration Histogramme s Durée des requêtes HTTP sortantes.
Attribut Type Description Exemples Présence
error.type string Raison de l’échec de la requête : une des erreurs de requête HTTP, ou un type d’exception complet, ou un code d’état HTTP 4xx/5xx. System.Threading.Tasks.TaskCanceledException; name_resolution_error; ; secure_connection_error ; 404 Si une requête a échoué.
http.request.method string Méthode de requête HTTP. GET; POST; ; HEAD Toujours
http.response.status_code int Code de statut de la réponse HTTP. 200 Si on en a reçu un.
network.protocol.version string Version du protocole de couche Application utilisée. 1.1; 2 Si une réponse a été reçue.
server.address string L’identificateur d’hôte de la requête HTTP « ORIGINE URL » est envoyé. example.com Toujours
server.port int L’identificateur de port de la requête HTTP « ORIGINE URL » est envoyé. 80; 8080; ; 443 Si ce n’est pas le cas par défaut (80 pour http le schéma, 443 pour https)
url.scheme string Le composant du schéma URI identifiant le protocole utilisé. http; https; ; ftp Toujours

La durée de la requête du client HTTP mesure le temps nécessaire au gestionnaire client sous-jacent pour terminer la requête. La fin de la requête inclut le délai de lecture des en-têtes de réponse à partir du flux réseau. Il n’inclut pas le temps passé à lire le corps de la réponse.

Lorsque vous utilisez OpenTelemetry, les groupes de données par défaut pour cette mesure sont définis sur [ 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 ].

Disponible à partir de : .NET 8

Conseil

L’enrichissement est possible pour cette métrique.

Métrique : http.client.request.time_in_queue
Nom Type d’instrument Unité (UCUM) Description
http.client.request.time_in_queue Histogramme s Durée des requêtes passées sur une file d’attente en attente d’une connexion disponible.
Attribut Type Description Exemples Présence
http.request.method string Méthode de requête HTTP. GET; POST; ; HEAD Toujours
network.protocol.version string Version du protocole de couche Application utilisée. 1.1; 2 Toujours
server.address string L’identificateur d’hôte de la requête HTTP « ORIGINE URL » est envoyé. example.com Toujours
server.port int L’identificateur de port de la requête HTTP « ORIGINE URL » est envoyé. 80; 8080; ; 443 Si ce n’est pas le cas par défaut (80 pour http le schéma, 443 pour https)
url.scheme string Le composant du schéma URI identifiant le protocole utilisé. http; https; ; ftp Toujours

HttpClient, lorsqu’il est configuré pour utiliser la valeur par défaut SocketsHttpHandler, envoie des requêtes HTTP à l’aide d’un pool de connexions réseau. Si toutes les connexions sont occupées à gérer d’autres requêtes, les nouvelles requêtes sont placées dans une file d’attente et attendent qu’une connexion réseau soit disponible pour une utilisation. Cet instrument mesure la durée pendant laquelle les requêtes HTTP passent en attente dans cette file d’attente, avant tout envoi sur le réseau.

Disponible à partir de : .NET 8

Métrique : http.client.active_requests
Nom Type d’instrument Unité (UCUM) Description
http.client.active_requests UpDownCounter {request} Nombre de requêtes HTTP actives.
Attribut Type Description Exemples Présence
http.request.method string Méthode de requête HTTP. GET; POST; ; HEAD Toujours
server.address string L’identificateur d’hôte de la requête HTTP « ORIGINE URL » est envoyé. example.com Toujours
server.port int L’identificateur de port de la requête HTTP « ORIGINE URL » est envoyé. 80; 8080; ; 443 Si ce n’est pas le cas par défaut (80 pour http le schéma, 443 pour https)
url.scheme string Le composant du schéma URI identifiant le protocole utilisé. http; https; ; ftp Toujours

Cette métrique compte le nombre de requêtes considérées comme actives. Les requêtes sont actives pendant la même période que celle mesurée par l’instrument http.client.request.duration .

Disponible à partir de : .NET 8