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 :
http.client.open_connections
http.client.connection.duration
http.client.request.duration
http.client.request.time_in_queue
http.client.active_requests
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