Partilhar via


Atividades internas no .NET

Trata-se de uma referência para o rastreio distribuído as atividades emitidas nativamente pela . NET's built-in ActivitySource instâncias.

Atividades System.Net

Dica

Para obter um guia abrangente sobre como coletar e relatar rastreamentos de System.Net, consulte Networking distributed traces in .NET.

Solicitação do cliente HTTP

SocketsHttpHandler e HttpClientHandler relatar a atividade de solicitação do cliente HTTP seguindo as recomendações definidas em OpenTelemetry HTTP Client Semantic Conventions. Ele descreve a solicitação HTTP enviada pelas sobrecargas de envio do HttpClientdurante o intervalo de tempo em que o manipulador subjacente conclui a solicitação. A conclusão da solicitação inclui o tempo até a leitura dos cabeçalhos de resposta do fluxo de rede. Não inclui o tempo gasto lendo o corpo da resposta. SocketsHttpHandler pode repetir solicitações, por exemplo, em falhas de conexão ou downgrades de versão HTTP. As novas tentativas não são relatadas como atividades separadas solicitação cliente HTTP.

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

Observação

A atividade System.Net.Http.HttpRequestOut está de fato disponível em versões anteriores do .NET, no entanto, seus Status, DisplayNamee atributos (tags) só são preenchidos a partir do .NET 9. Em versões anteriores, o OpenTelemetry.Instrumentation.Http pacote é recomendado para preencher as lacunas da instrumentação interna.

Atributos (tags)

Atributo Tipo Descrição Exemplos Presença
http.request.method string Método de solicitação HTTP. [1] GET; POST; HEAD; _OTHER Sempre
server.address string O identificador de host da "origem do URI" solicitação HTTP é enviada. example.com; 10.1.2.80 Sempre
server.port int Identificador de porta do "origem do URI" solicitação HTTP é enviada. 80; 8080; 443 Sempre
url.full string URL absoluto que descreve um recurso de rede de acordo com RFC3986 [2] https://www.foo.bar/search?q=* Sempre
error.type string Motivo da falha da solicitação: um dos erros de solicitação HTTP no snake_case, ou um tipo de exceção completa, ou um código de status HTTP 4xx/5xx. System.OperationCanceledException; name_resolution_error; secure_connection_error ; 404 Se o pedido tiver falhado.
http.request.method_original string Método HTTP original enviado pelo cliente na linha de solicitação. ACL; foo Se http.request.method não é um método bem conhecido.
http.response.status_code int código de status da resposta HTTP. 200 Se a resposta foi recebida.
network.protocol.version string Versão do protocolo HTTP utilizado. 1.1; 2 Se a resposta foi recebida.

[1] http.request.method: O valor contém o nome do método, se o método for um dos métodos bem conhecidos listados em RFC9110; caso contrário, o valor é _OTHER. Os nomes de método fornecidos pelo usuário são mapeados para nomes conhecidos de maneira que não diferencia maiúsculas de minúsculas. Por exemplo, se o usuário fornecer o nome GeT, ele será mapeado para GETe http.request.method_original não será preenchido.

[2] url.full: Para evitar vazamentos de segredos, o valor é editado por padrão: toda a consulta é substituída por um caractere * e as informações do usuário & fragmento são removidas. Para obter mais informações e opções de desativação, consulte o URI redaction breaking change docs.

Solicitação do cliente HTTP: aguarde a conexão (experimental)

Esta atividade é filha de uma solicitação de cliente HTTP atividade. Ele representa o intervalo de tempo em que a solicitação correspondente está aguardando uma conexão disponível na fila de solicitações. Se uma conexão gratuita estiver disponível no pool quando a solicitação chegar, nenhuma esperar pela conexão atividade será criada. Observe que aguardar a conexão não representa o estabelecimento de conexão real; que é modelado pela configuração da conexão HTTP atividade. SocketsHttpHandler pode repetir solicitações, por exemplo, em falhas de conexão ou downgrades de versão HTTP. As novas tentativas não são relatadas como atividades de de solicitação de cliente HTTP separadas; no entanto, cada nova tentativa de conexão resultará em uma nova aguardar a atividade de de conexão na atividade de solicitação pai.

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

Dica

O tempo necessário para obter uma conexão do pool também é relatado pela métrica http.client.request.time_in_queue.

Advertência

Esta atividade é experimental. Ele pode ser alterado ou excluído em uma versão futura.

Atributos (tags)

Atributo Tipo Descrição Exemplos Presença
error.type string O motivo da falha de conexão: um dos erros de solicitação HTTP no snake_case ou um tipo de exceção completa. System.OperationCanceledException; name_resolution_error; secure_connection_error Se a tentativa de conexão falhar.

Configuração de conexão HTTP (experimental)

Esta atividade descreve o estabelecimento de uma conexão HTTP. Normalmente, isso inclui o tempo necessário para resolver o DNS, estabelecer a conexão de soquete e executar o handshake TLS.

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

Não há nenhuma relação pai-filho entre o de solicitação do cliente HTTP e as atividades de configuração da conexão HTTP ; esta última será sempre uma atividade de raiz, vivendo em um traço separado. No entanto, se a tentativa de conexão representada por de configuração de conexão HTTP resultar em uma conexão HTTP bem-sucedida e essa conexão for captada por uma solicitação para atendê-la, a instrumentação adicionará um à atividade solicitação do cliente HTTP apontando para a atividade configuração da conexão HTTP . Ou seja, cada solicitação está vinculada à conexão que atendeu a solicitação.

Observação

Se de configuração de conexão HTTP falhar, ele não será vinculado a nenhuma solicitação de cliente HTTP .

Advertência

Esta atividade é experimental. Ele pode ser alterado ou excluído em uma versão futura.

Atributos (tags)

Atributo Tipo Descrição Exemplos Presença
error.type string Motivo da falha de conexão: um dos erros de solicitação HTTP no snake_case ou um tipo de exceção completa. System.Net.Sockets.SocketException; name_resolution_error; secure_connection_error Se a tentativa de conexão falhar.
network.peer.address string Endereço IP de mesmo nível da conexão de soquete. 10.5.3.2 Se a tentativa de conexão for bem-sucedida.
server.address string Identificador de host do "origem do URI" a solicitação HTTP inicial é enviada. example.com Sempre
server.port int Identificador de porta do "origem do URI" para o qual a solicitação HTTP inicial é enviada. Sempre
url.scheme string O esquema de URI componente que identifica o protocolo usado. http; https Sempre

Pesquisa de DNS (experimental)

Esta atividade descreve pesquisas de DNS realizadas através de chamadas Dns. Corresponde à chamada gerenciada e não à(s) pesquisa(s) de DNS físico feita(s) pelo resolvedor do sistema operacional subjacente. Quando a atividade de pesquisa de DNS é relatada juntamente com uma atividade de configuração de conexão HTTP , de pesquisa de DNS se torna filho de configuração de conexão HTTP.

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

Dica

A duração da pesquisa de DNS também é relatada pela métrica dns.lookup.duration.

Advertência

Esta atividade é experimental. Ele pode ser alterado ou excluído em uma versão futura.

Atributos (tags)

Atributo Tipo Descrição Exemplos Presença
error.type string O código de erro ou o nome da exceção. [1] host_not_found Se a pesquisa falhar.
dns.answers string[] Lista de endereços IP resolvidos (para pesquisa de DNS) ou um único elemento contendo nome de domínio (para pesquisa inversa). ["10.0.0.1", "2001:0db8:85a3:0000:0000:8a2e:0370:7334"] Se a pesquisa for bem-sucedida.
dns.question.name string O nome de domínio ou um endereço IP que está sendo consultado. example.com Sempre

[1]: O valor é um SocketError relacionado ao DNS em snake_case (host_not_found, try_again, no_recovery, address_family_not_supported), ou um nome de exceção completo.

Conexão de soquete (experimental)

Esta atividade descreve o estabelecimento de uma conexão Socket via Connect ou ConnectAsync. Quando a atividade de conexão de soquete é relatada junto com uma atividade de de configuração de conexão HTTP , de conexão de soquete se torna filho de de configuração de conexão HTTP.

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

Advertência

Esta atividade é experimental. Ele pode ser alterado ou excluído em uma versão futura.

Atributos (tags)

Atributo Tipo Descrição Exemplos Presença
error.type string O SocketError em snake_case. address_already_in_use; connection_refused Se a tentativa de conexão de soquete falhar.
network.peer.address string Endereço de mesmo nível da conexão de rede - endereço IP ou nome de soquete de domínio Unix. 10.5.3.2; /tmp/my.sock Soquetes IP e UDS.
network.peer.port int Número da porta de mesmo nível da conexão IP. 65123 Soquetes IP.
network.transport string camada de transporte OSI ou método de comunicação entre processos. tcp; udp; unix Soquetes IP e UDS.
network.type string camada de rede OSI ou equivalente não-OSI. ipv4; ipv6 Soquetes IP.

Aperto de mão TLS (experimental)

Esta atividade descreve o handshake do cliente ou servidor TLS realizado por meio dos métodos de autenticação do SslStream. Quando a atividade de de handshake TLS é relatada para autenticação do lado do cliente, juntamente com a atividade de configuração de conexão HTTP , de handshake TLS se torna filho de configuração de conexão HTTP.

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

Advertência

Esta atividade é experimental. Ele pode ser alterado ou excluído em versões futuras.

Atributos (tags)

Atributo Tipo Descrição Exemplos Presença
error.type string Descreve uma classe de erro com a qual a operação terminou. System.Net.Security.Authentication.AuthenticationException; System.OperationCanceledException Se o aperto de mão falhar.
server.address string A indicação de nome do servidor (SNI) usada na mensagem 'Olá do cliente' durante o handshake TLS. example.com Ao autenticar como cliente.
tls.protocol.name string Nome de protocolo minúsculo normalizado analisado a partir da cadeia de caracteres original da versão negociada do protocolo SSL/TLS ssl; tls Quando as informações do protocolo estiverem disponíveis.
tls.protocol.version string Parte numérica da versão analisada a partir da cadeia de caracteres original da versão negociada do protocolo SSL/TLS 1.2; 1.3 Quando as informações do protocolo estiverem disponíveis.