Condividi tramite


Attività predefinite in .NET

Si tratta di un riferimento per le attività di traccia distribuita generate in modo nativo da . Istanze di ActivitySource predefinite di NET.

attività System.Net

Richiesta client HTTP

SocketsHttpHandler e HttpClientHandler segnalare l'attività di richiesta client HTTP seguendo le raccomandazioni definite in OpenTelemetry HTTP Client Semantic Conventions. Descrive la richiesta HTTP inviata da HttpClientgli overload di invio durante l'intervallo di tempo in cui il gestore sottostante completa 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. SocketsHttpHandler possono ritentare le richieste, ad esempio in caso di errori di connessione o downgrade della versione HTTP. I tentativi non vengono segnalati come attività separate richiesta client HTTP.

Disponibilità nome ActivitySource OperationName DisplayName
.NET 9+ System.Net.Http System.Net.Http.HttpRequestOut {HTTP method}

Nota

L'attività System.Net.Http.HttpRequestOut è in effetti disponibile nelle versioni precedenti di .NET, ma i relativi attributi Status, DisplayNamee (tag) vengono popolati solo a partire da .NET 9. Nelle versioni precedenti, è consigliabile pacchetto OpenTelemetry.Instrumentation.Http per colmare le lacune della strumentazione predefinita.

Attributi (tag)

Attributo Digitare Descrizione Esempi Presenza
http.request.method string Metodo di richiesta HTTP. [1] GET; POST; HEAD; _OTHER Sempre
server.address string Identificatore host dell'"origine URI" richiesta HTTP viene inviata. example.com; 10.1.2.80 Sempre
server.port int Identificatore di porta dell'"origine URI" richiesta HTTP viene inviata. 80; 8080; 443 Sempre
url.full string URL assoluto che descrive una risorsa di rete in base a RFC3986 [2] https://www.foo.bar/search?q=* Sempre
error.type string Motivo dell'errore della richiesta: uno degli errori di richiesta HTTP in snake_case o un tipo di eccezione completo o un codice di stato HTTP 4xx/5xx. System.OperationCanceledException; name_resolution_error; secure_connection_error ; 404 Se la richiesta non è riuscita.
http.request.method_original string Metodo HTTP originale inviato dal client nella riga della richiesta. ACL; foo Se http.request.method non è un metodo noto.
http.response.status_code int codice di stato della risposta HTTP. 200 Se la risposta è stata ricevuta.
network.protocol.version string Versione del protocollo HTTP usata. 1.1; 2 Se la risposta è stata ricevuta.

[1] http.request.method: Il valore contiene il nome del metodo, se il metodo è uno dei metodi noti elencati in RFC9110; in caso contrario, il valore è _OTHER. I nomi dei metodi forniti dall'utente vengono mappati ai nomi noti in modo senza distinzione tra maiuscole e minuscole. Ad esempio, se l'utente fornisce il nome GeT, verrà eseguito il mapping a GETe http.request.method_original non verranno popolati.

[2] url.full: Per evitare la perdita di segreti, il valore viene modificato per impostazione predefinita: l'intera query viene sostituita con un carattere * e le informazioni utente & frammento vengono rimosse. Per altre informazioni e opzioni di rifiuto esplicito, vedere la documentazione sulla modifica che causa un'interruzione dell'URI .

Richiesta client HTTP: attendere la connessione (sperimentale)

Questa attività è un elemento figlio di una richiesta client HTTP attività. Rappresenta l'intervallo di tempo in cui la richiesta corrispondente è in attesa di una connessione disponibile nella coda delle richieste. Se nel pool è disponibile una connessione gratuita, non verrà creata alcuna attesa di connessione'attività. Si noti che attendere la connessione non rappresenta l'effettiva definizione della connessione; modellato dall'attività di configurazione della connessione HTTP . SocketsHttpHandler possono ritentare le richieste, ad esempio in caso di errori di connessione o downgrade della versione HTTP. I tentativi non vengono segnalati come attività separate richiesta client HTTP; Tuttavia, ogni nuovo tentativo di connessione comporterà una nuova attendere la connessione'attività nell'attività della richiesta padre.

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

Mancia

Il tempo necessario per ottenere una connessione dal pool viene segnalato anche dalla metrica http.client.request.time_in_queue.

Avvertimento

Questa attività è sperimentale. Potrebbe essere modificato o eliminato in una versione futura.

Attributi (tag)

Attributo Digitare Descrizione Esempi Presenza
error.type string Motivo dell'errore di connessione: uno degli errori di richiesta HTTP in snake_case o un tipo di eccezione completo. System.OperationCanceledException; name_resolution_error; secure_connection_error Se il tentativo di connessione non riesce.

Configurazione della connessione HTTP (sperimentale)

Questa attività descrive la creazione di una connessione HTTP. In genere, questo include il tempo necessario per risolvere il DNS, stabilire la connessione socket ed eseguire l'handshake TLS.

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

Non esiste alcuna relazione padre-figlio tra l' richiesta client HTTP e l'configurazione della connessione HTTP attività; quest'ultimo sarà sempre un'attività radice, vivendo in una traccia separata. Tuttavia, se il tentativo di connessione rappresentato da configurazione della connessione HTTP genera una connessione HTTP con successo e tale connessione viene prelevata da una richiesta per la gestione, la strumentazione aggiunge un ActivityLink alla richiesta client HTTP attività che punta all'attività di configurazione della connessione HTTP . Ovvero, ogni richiesta è collegata alla connessione che ha servito la richiesta.

Nota

Se configurazione della connessione HTTP ha esito negativo, non verrà collegato ad alcuna richiesta client HTTP .

Avvertimento

Questa attività è sperimentale. Potrebbe essere modificato o eliminato in una versione futura.

Attributi (tag)

Attributo Digitare Descrizione Esempi Presenza
error.type string Motivo dell'errore di connessione: uno degli errori di richiesta HTTP in snake_case o un tipo di eccezione completo. System.Net.Sockets.SocketException; name_resolution_error; secure_connection_error Se il tentativo di connessione non riesce.
network.peer.address string Indirizzo IP peer della connessione socket. 10.5.3.2 Se il tentativo di connessione ha esito positivo.
server.address string Identificatore host dell'"origine URI" la richiesta HTTP iniziale viene inviata. example.com Sempre
server.port int Identificatore di porta dell'"origine URI" la richiesta HTTP iniziale viene inviata. Sempre
url.scheme string Lo schema URI componente che identifica il protocollo usato. http; https Sempre

Ricerca DNS (sperimentale)

Questa attività descrive le ricerche DNS eseguite tramite chiamate Dns. Corrisponde alla chiamata gestita e non alle ricerche DNS fisiche eseguite dal sistema di risoluzione del sistema operativo sottostante. Quando viene segnalata l'attività di ricerca DNS insieme a un'attività di configurazione della connessione HTTP , ricerca DNS diventa figlio di configurazione della connessione HTTP.

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

Mancia

La durata della ricerca DNS viene segnalata anche dalla metrica dns.lookup.duration.

Avvertimento

Questa attività è sperimentale. Potrebbe essere modificato o eliminato in una versione futura.

Attributi (tag)

Attributo Digitare Descrizione Esempi Presenza
error.type string Il codice di errore o il nome dell'eccezione. [1] host_not_found Se la ricerca ha esito negativo.
dns.answers string[] Elenco di indirizzi IP risolti (per la ricerca DNS) o un singolo elemento contenente il nome di dominio (per la ricerca inversa). ["10.0.0.1", "2001:0db8:85a3:0000:0000:8a2e:0370:7334"] Se la ricerca ha esito positivo.
dns.question.name string Nome di dominio o indirizzo IP sottoposto a query. example.com Sempre

[1]: Il valore è un SocketError correlato a DNS in snake_case (host_not_found, try_again, no_recovery, address_family_not_supported) o un nome di eccezione completo.

Connessione socket (sperimentale)

Questa attività descrive la creazione di una connessione Socket tramite Connect o ConnectAsync. Quando l'attività di connessione socket viene segnalata insieme a un'attività di configurazione della connessione HTTP , socket connect diventa figlio di configurazione della connessione HTTP.

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

Avvertimento

Questa attività è sperimentale. Potrebbe essere modificato o eliminato in una versione futura.

Attributi (tag)

Attributo Digitare Descrizione Esempi Presenza
error.type string SocketError in snake_case. address_already_in_use; connection_refused Se il tentativo di connessione socket non riesce.
network.peer.address string Indirizzo peer della connessione di rete: indirizzo IP o nome socket di dominio Unix. 10.5.3.2; /tmp/my.sock Socket IP e UDS.
network.peer.port int Numero di porta peer della connessione IP. 65123 Socket IP.
network.transport string del livello di trasporto OSI o metodo di comunicazione tra processi. tcp; udp; unix Socket IP e UDS.
network.type string livello di rete OSI o non OSI equivalenti. ipv4; ipv6 Socket IP.

Handshake TLS (sperimentale)

Questa attività descrive l'handshake client o server TLS eseguito tramite i metodi di autenticazione di SslStream. Quando l'attività handshake TLS viene segnalata per l'autenticazione lato client insieme all'attività di configurazione della connessione HTTP , handshake TLS diventa un elemento figlio dell'installazione della connessione HTTP .

Disponibilità nome ActivitySource OperationName DisplayName
.NET 9+ Experimental.System.Net.Security Experimental.System.Net.Security.TlsHandshake TLS client handshake {host} - oppure - TLS server handshake

Avvertimento

Questa attività è sperimentale. Potrebbe essere modificato o eliminato nelle versioni future.

Attributi (tag)

Attributo Digitare Descrizione Esempi Presenza
error.type string Descrive una classe di errore con cui l'operazione è terminata. System.Net.Security.Authentication.AuthenticationException; System.OperationCanceledException Se l'handshake ha esito negativo.
server.address string L'indicazione del nome del server (SNI) usata nel messaggio "Client Hello" durante l'handshake TLS. example.com Durante l'autenticazione come client.
tls.protocol.name string Nome del protocollo minuscolo normalizzato analizzato dalla stringa originale della versione del protocollo SSL/TLS negoziata ssl; tls Quando le informazioni sul protocollo sono disponibili.
tls.protocol.version string Parte numerica della versione analizzata dalla stringa originale della versione negoziata versione del protocollo SSL/TLS 1.2; 1.3 Quando le informazioni sul protocollo sono disponibili.