Métriques System.Net
Cet article décrit les métriques de mise en 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 les autres l’API EventCounters, consultez EventCounters connus dans .NET.
Pourboire
Pour plus d’informations sur la collecte, le rapport, l’enrichissement et le test des métriques System.Net, consultez Métriques de mise en 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 |
corde | Nom interrogé. |
www.example.com ; dot.net |
Toujours |
error.type |
corde | 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 s’est produite |
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 d’une recherche DNS lèvent une SocketException. Pour mieux lever l’ambiguïté des 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 comme System.Net.Sockets.SocketException
.
Lorsque vous utilisez OpenTelemetry, les compartiments par défaut de cette métrique 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 HTTP et de connexion à 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 |
corde | État de la connexion HTTP dans le pool de connexions HTTP. |
active ; idle |
Toujours |
network.protocol.version |
corde | Version du protocole HTTP utilisé. |
1.1 ; 2 |
Toujours |
server.address |
corde | L’identificateur d’hôte de la « Origine de l’URI » requête HTTP est envoyé. | example.com |
Toujours |
server.port |
Int | L’identificateur de port de la « Origine de l’URI » requête HTTP est envoyé. |
80 ; 8080 ; 443 |
Si ce n’est pas le cas par défaut (80 pour le schéma de http , 443 pour https ) |
network.peer.address |
corde | Adresse IP homologue de la connexion de socket. | 10.5.3.2 |
Toujours |
url.scheme |
corde | Le schéma d’URI composant identifiant le protocole utilisé. |
http ; https ; ftp |
Toujours |
HttpClient, lorsqu’il est configuré pour utiliser le SocketsHttpHandlerpar défaut, gère 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 |
corde | Version du protocole HTTP utilisé. |
1.1 ; 2 |
Toujours |
server.address |
corde | L’identificateur d’hôte de la « Origine de l’URI » requête HTTP est envoyé. | example.com |
Toujours |
server.port |
Int | L’identificateur de port de la « Origine de l’URI » requête HTTP est envoyé. |
80 ; 8080 ; 443 |
Si ce n’est pas le cas par défaut (80 pour le schéma de http , 443 pour https ) |
network.peer.address |
corde | Adresse IP de la connexion de socket. | 10.5.3.2 |
Toujours |
url.scheme |
corde | Le schéma d’URI composant identifiant le protocole utilisé. |
http ; https ; ftp |
Toujours |
Cette métrique est capturée uniquement lorsque HttpClient est configuré pour utiliser la SocketsHttpHandlerpar défaut.
Étant donné que cette métrique effectue le suivi de la durée de la connexion et que, dans l’idéal, les connexions HTTP sont utilisées pour plusieurs requêtes, les compartiments doivent être plus longs que ceux utilisés pour les durées de requête. Par exemple, l’utilisation de [ 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 300 ] fournit un compartiment supérieur de 5 minutes.
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 |
corde | Raison de l’échec de la demande : l’une des erreurs de requête HTTP dans snake_case, 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 la demande a échoué. |
http.request.method |
corde | Méthode de requête HTTP. |
GET ; POST ; HEAD ; _OTHER [2] |
Toujours |
http.response.status_code |
Int | code d’état de réponse HTTP. | 200 |
Si la réponse a été reçue. |
network.protocol.version |
corde | Version du protocole HTTP utilisé. |
1.1 ; 2 |
Si la réponse a été reçue. |
server.address |
corde | L’identificateur d’hôte de la « Origine de l’URI » requête HTTP est envoyé. | example.com |
Toujours |
server.port |
Int | L’identificateur de port de la « Origine de l’URI » requête HTTP est envoyé. |
80 ; 8080 ; 443 |
Dépend de la version de .NET. [3] |
url.scheme |
corde | Le schéma d’URI composant identifiant le protocole utilisé. |
http ; https ; ftp |
Toujours |
[1] error.type
: Si la requête a échoué, la valeur est définie sur l’une des valeurs suivantes :
- Nom d’exception avec type, par exemple, TaskCanceledException.
- Code d’état qui indique une erreur de client ou de serveur, par exemple,
500
. - Si un HttpRequestException s’est produit avec une HttpRequestError autre que
Unknown
, valeur d’énumération dans le cas de serpent, par exemple,name_resolution_error
.
[2] http.request.method
:http.request.method
:** La valeur contient le nom de la méthode, si la méthode est l’une des méthodes connues répertoriées dans RFC9110; sinon, la valeur est _OTHER
. Les noms de méthode fournis par l’utilisateur sont mappés aux noms connus de manière non sensible à la casse. Par exemple, si l’utilisateur fournit le nom GeT
, il est mappé à GET
.
[3] server.port
: La présence de la valeur dépend de la version :
-
.NET 8: présent s’il n’est pas défini par défaut (
80
pourhttp
schéma,443
pourhttps
) - .NET 9+ : Toujours présent
La durée de la demande du client HTTP mesure le temps nécessaire au gestionnaire client sous-jacent pour terminer la requête. La fin de la demande 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 compartiments par défaut de cette métrique 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
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 demandes passées sur une file d’attente en attente d’une connexion disponible. |
Attribut | Type | Description | Exemples | Présence |
---|---|---|---|---|
http.request.method |
corde | Méthode de requête HTTP. |
GET ; POST ; HEAD |
Toujours |
network.protocol.version |
corde | Version du protocole HTTP utilisé. |
1.1 ; 2 |
Toujours |
server.address |
corde | L’identificateur d’hôte de la « Origine de l’URI » requête HTTP est envoyé. | example.com |
Toujours |
server.port |
Int | L’identificateur de port de la « Origine de l’URI » requête HTTP est envoyé. |
80 ; 8080 ; 443 |
Si ce n’est pas le cas par défaut (80 pour le schéma de http , 443 pour https ) |
url.scheme |
corde | Le schéma d’URI composant identifiant le protocole utilisé. |
http ; https ; ftp |
Toujours |
HttpClient, lorsqu’il est configuré pour utiliser le SocketsHttpHandlerpar défaut, 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 demandes, les nouvelles demandes 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 |
corde | Méthode de requête HTTP. |
GET ; POST ; HEAD |
Toujours |
server.address |
corde | L’identificateur d’hôte de la « Origine de l’URI » requête HTTP est envoyé. | example.com |
Toujours |
server.port |
Int | L’identificateur de port de la « Origine de l’URI » requête HTTP est envoyé. |
80 ; 8080 ; 443 |
Si ce n’est pas le cas par défaut (80 pour le schéma de http , 443 pour https ) |
url.scheme |
corde | Le schéma d’URI composant 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 mesurée par l’instrument http.client.request.duration.
Disponible à partir de : .NET 8