Partager via


Activités intégrées dans .NET

Il s’agit d’une référence pour les activités de suivi distribué émises en mode natif par . Instances ActivitySource intégrées de NET.

activités de System.Net

Requête client HTTP

SocketsHttpHandler et HttpClientHandler signalez l’activité de requête du client HTTP en suivant les recommandations définies dans OpenTelemetry conventions sémantiques du client HTTP. Il décrit la requête HTTP envoyée par les surcharges d’envoi de HttpClientpendant l’intervalle de temps pendant lequel le gestionnaire sous-jacent termine 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. SocketsHttpHandler peut réessayer des requêtes, par exemple sur les échecs de connexion ou les versions HTTP rétrogrades. Les nouvelles tentatives ne sont pas signalées comme des activités de requête client HTTP distinctes.

Disponibilité nom de ActivitySource OperationName DisplayName
.NET 9+ System.Net.Http System.Net.Http.HttpRequestOut {HTTP method}

Note

L’activité System.Net.Http.HttpRequestOut est en fait disponible sur les versions antérieures de .NET, mais ses Status, DisplayNameet attributs (balises) ne sont renseignés qu’à partir de .NET 9. Dans les versions antérieures, le package OpenTelemetry.Instrumentation.Http est recommandé pour combler les lacunes de l’instrumentation intégrée.

Attributs (balises)

Attribut Type Description Exemples Présence
http.request.method string Méthode de requête HTTP. [1] GET; POST; HEAD; _OTHER Toujours
server.address string L’identificateur d’hôte de la « Origine de l’URI » requête HTTP est envoyé. example.com; 10.1.2.80 Toujours
server.port int L’identificateur de port de la « Origine de l’URI » requête HTTP est envoyé. 80; 8080; 443 Toujours
url.full string URL absolue décrivant une ressource réseau en fonction de RFC3986 [2] https://www.foo.bar/search?q=* Toujours
error.type string 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.OperationCanceledException; name_resolution_error; secure_connection_error ; 404 Si la demande a échoué.
http.request.method_original string Méthode HTTP d’origine envoyée par le client dans la ligne de requête. ACL; foo Si http.request.method n’est pas une méthode connue.
http.response.status_code int code d’état de réponse HTTP. 200 Si la réponse a été reçue.
network.protocol.version string Version du protocole HTTP utilisé. 1.1; 2 Si la réponse a été reçue.

[1] 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é à GETet http.request.method_original ne sera pas renseigné.

[2] url.full: Pour éviter la fuite des secrets, la valeur est supprimée par défaut : l’intégralité de la requête est remplacée par un caractère * et les informations utilisateur & fragment sont supprimées. Pour plus d’informations et des commutateurs d’opt-out, consultez la documentation sur les changements cassants d’URI.

Requête du client HTTP : attendre la connexion (expérimentale)

Cette activité est un enfant d’une demande de client HTTP activité. Il représente l’intervalle de temps pendant lequel la requête correspondante attend une connexion disponible dans la file d’attente de demandes. Si une connexion gratuite est disponible dans le pool lorsque la demande est entrée, aucune attendre la création de l’activité de connexion. Notez que attendre la connexion ne représente pas l’établissement de connexion réel ; modélisé par l’activité configuration de connexion HTTP. SocketsHttpHandler peut réessayer des requêtes, par exemple sur les échecs de connexion ou les versions HTTP rétrogrades. Les nouvelles tentatives ne sont pas signalées comme des activités de de requête client HTTP distinctes  ; Toutefois, chaque nouvelle tentative de connexion entraîne une nouvelle attendre l’activité de connexion sous l’activité de demande parente.

Disponibilité nom de ActivitySource OperationName DisplayName
.NET 9+ Experimental.System.Net.Http.Connections Experimental.System.Net.Http.Connections.WaitForConnection HTTP wait_for_connection {address}:{port}

Pourboire

Le temps nécessaire pour obtenir une connexion à partir du pool est également signalé par la métrique http.client.request.time_in_queue.

Avertissement

Cette activité est expérimentale. Il peut être modifié ou supprimé dans une version ultérieure.

Attributs (balises)

Attribut Type Description Exemples Présence
error.type string Raison de l’échec de connexion : l’une des erreurs de requête HTTP dans snake_case ou un type d’exception complet. System.OperationCanceledException; name_resolution_error; secure_connection_error Si la tentative de connexion échoue.

Configuration de la connexion HTTP (expérimentale)

Cette activité décrit l’établissement d’une connexion HTTP. En règle générale, cela inclut le temps nécessaire pour résoudre le DNS, établir la connexion de socket et effectuer l’établissement d’une liaison TLS.

Disponibilité nom de ActivitySource OperationName DisplayName
.NET 9+ Experimental.System.Net.Http.Connections Experimental.System.Net.Http.Connections.ConnectionSetup HTTP connection_setup {address}:{port}

Il n’existe aucune relation parent-enfant entre l' de requête du client HTTP et l’installation de connexion HTTP activités ; ce dernier sera toujours une activité racine, vivant dans une trace distincte. Toutefois, si la tentative de connexion représentée par configuration de la connexion HTTP entraîne une connexion HTTP réussie et que cette connexion est récupérée par une demande pour la servir, l’instrumentation ajoute une ActivityLink à la requête du client HTTP l’activité pointant vers l’activité de connexion HTTP l’activité. Autrement dit, chaque requête est liée à la connexion qui a servi la demande.

Note

Si configuration de la connexion HTTP échoue, elle ne sera liée à aucune requête du client HTTP.

Avertissement

Cette activité est expérimentale. Il peut être modifié ou supprimé dans une version ultérieure.

Attributs (balises)

Attribut Type Description Exemples Présence
error.type string Raison de l’échec de connexion : une des erreurs de requête HTTP dans snake_case ou un type d’exception complet. System.Net.Sockets.SocketException; name_resolution_error; secure_connection_error Si la tentative de connexion échoue.
network.peer.address string Adresse IP homologue de la connexion de socket. 10.5.3.2 Si la tentative de connexion réussit.
server.address string Identificateur d’hôte de l'« Origine de l’URI » la requête HTTP initiale est envoyée. example.com Toujours
server.port int Identificateur de port du « Origine de l’URI » la requête HTTP initiale est envoyée. Toujours
url.scheme string Le schéma d’URI composant identifiant le protocole utilisé. http; https Toujours

Recherche DNS (expérimentale)

Cette activité décrit les recherches DNS effectuées via des appels Dns. Il correspond à l’appel managé et non à la ou les recherches DNS physiques effectuées par le programme de résolution du système d’exploitation sous-jacent. Lorsque l’activité de recherche DNS est signalée avec une activité de configuration de connexion HTTP, recherche DNS devient un enfant de configuration de connexion HTTP.

Disponibilité nom de ActivitySource OperationName DisplayName
.NET 9+ Experimental.System.Net.NameResolution Experimental.System.Net.NameResolution.DnsLookup DNS [reverse] lookup {question}

Pourboire

La durée de recherche DNS est également signalée par la métrique dns.lookup.duration.

Avertissement

Cette activité est expérimentale. Il peut être modifié ou supprimé dans une version ultérieure.

Attributs (balises)

Attribut Type Description Exemples Présence
error.type string Code d’erreur ou nom d’exception. [1] host_not_found Si la recherche échoue.
dns.answers string[] Liste des adresses IP résolues (pour la recherche DNS) ou un seul élément contenant le nom de domaine (pour la recherche inversée). ["10.0.0.1", "2001:0db8:85a3:0000:0000:8a2e:0370:7334"] Si la recherche réussit.
dns.question.name string Nom de domaine ou adresse IP interrogée. example.com Toujours

[1] : La valeur est une SocketError liée au DNS dans snake_case (host_not_found, try_again, no_recovery, address_family_not_supported) ou un nom d’exception complet.

Connexion de socket (expérimentale)

Cette activité décrit l’établissement d’une connexion Socket via Connect ou ConnectAsync. Lorsque l’activité de connexion au socket est signalée avec une activité de configuration de connexion HTTP, se transforme en enfant de configuration de connexion HTTP.

Disponibilité nom de ActivitySource OperationName DisplayName
.NET 9+ Experimental.System.Net.Sockets Experimental.System.Net.Sockets.Connect socket connect {address}[:{port}]

Avertissement

Cette activité est expérimentale. Il peut être modifié ou supprimé dans une version ultérieure.

Attributs (balises)

Attribut Type Description Exemples Présence
error.type string La SocketError dans snake_case. address_already_in_use; connection_refused Si la tentative de connexion de socket échoue.
network.peer.address string Adresse homologue de la connexion réseau : adresse IP ou nom de socket de domaine Unix. 10.5.3.2; /tmp/my.sock Sockets IP et UDS.
network.peer.port int Numéro de port homologue de la connexion IP. 65123 Sockets IP.
network.transport string de la couche de transport OSI ou méthode de communication interprocessus. tcp; udp; unix Sockets IP et UDS.
network.type string couche réseau OSI ou équivalent non-OSI. ipv4; ipv6 Sockets IP.

Liaison TLS (expérimentale)

Cette activité décrit la négociation du client ou du serveur TLS effectuée via les méthodes d’authentification de SslStream. Lorsque l’activité de négociation TLS est signalée pour l’authentification côté client, ainsi que l’activité d’installation de connexion HTTP , l’établissement d’une liaison TLS devient un enfant de configuration de connexion HTTP.

Disponibilité nom de ActivitySource OperationName DisplayName
.NET 9+ Experimental.System.Net.Security Experimental.System.Net.Security.TlsHandshake TLS client handshake {host} -ou- TLS server handshake

Avertissement

Cette activité est expérimentale. Il peut être modifié ou supprimé dans les versions ultérieures.

Attributs (balises)

Attribut Type Description Exemples Présence
error.type string Décrit une classe d’erreur avec qui l’opération s’est terminée. System.Net.Security.Authentication.AuthenticationException; System.OperationCanceledException Si la négociation échoue.
server.address string L’indication de nom de serveur (SNI) utilisée dans le message « Client Hello » lors de l’établissement d’une liaison TLS. example.com Lors de l’authentification en tant que client.
tls.protocol.name string Nom de protocole minuscule normalisé analysé à partir de la chaîne d’origine de la version de protocole SSL/TLS négociée ssl; tls Lorsque les informations de protocole sont disponibles.
tls.protocol.version string Partie numérique de la version analysée à partir de la chaîne d’origine de la version négociée du protocole SSL/TLS 1.2; 1.3 Lorsque les informations de protocole sont disponibles.