Compartilhar via


Atividades internas no .NET

Essa é uma referência para o rastreamento distribuído atividades emitidas nativamente por . Instâncias de ActivitySource internas do NET.

atividades de System.Net

Ponta

Para obter um guia abrangente sobre como coletar e relatar rastreamentos System.Net, consulte Rastreamentos distribuídos de rede no .NET.

Solicitação de cliente HTTP

SocketsHttpHandler e HttpClientHandler relatam a atividade de solicitação de cliente HTTP seguindo as recomendações definidas nas Convenções Semânticas de Cliente HTTP OpenTelemetry. Ele descreve a solicitação HTTP enviada por sobrecargas de envio de HttpClientdurante o intervalo de tempo em que o manipulador subjacente conclui a solicitação. Concluir a solicitação inclui o tempo de leitura dos cabeçalhos de resposta do fluxo de rede. Ele 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 de solicitação de cliente HTTP separadas.

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

Nota

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

Atributos (marcas)

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 Identificador de host da "origem do URI" solicitação HTTP é enviada. example.com; 10.1.2.80 Sempre
server.port int Identificador de porta da "origem do URI" solicitação HTTP é enviada. 80; 8080; 443 Sempre
url.full string URL absoluta 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 em snake_case ou um tipo de exceção completo ou um código de status HTTP 4xx/5xx. System.OperationCanceledException; name_resolution_error; secure_connection_error; 404 Se a solicitação 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 for um método bem conhecido.
http.response.status_code int código de status de resposta HTTP. 200 Se a resposta foi recebida.
network.protocol.version string Versão do protocolo HTTP usada. 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 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á populado.

[2] url.full: Para evitar o vazamento de segredos, o valor é redigido 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 aceitação, consulte o documentos de alteração de alteração de falha de URI.

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

Essa atividade é filho de uma solicitação de cliente HTTP atividade. Representa o intervalo de tempo que a solicitação correspondente está aguardando uma conexão disponível na fila de solicitação. Se uma conexão gratuita estiver disponível no pool quando a solicitação chegar, nenhuma aguardar a conexão atividade será criada. Observe que aguardar de conexão não representa o estabelecimento de conexão real; que é modelada pela atividade de configuração de conexão HTTP. 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 solicitação de cliente HTTP separadas; no entanto, cada nova tentativa de conexão resultará em um novo aguardar a conexão atividade 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}

Ponta

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

Aviso

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

Atributos (marcas)

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

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

Essa 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 do 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 de cliente HTTP e a configuração de conexão HTTP atividades; este último sempre será uma atividade raiz, vivendo em um rastreamento separado. No entanto, se a tentativa de conexão representada por configuração de conexão HTTP resultar em uma conexão HTTP com êxito e essa conexão for captada por uma solicitação para atendê-la, a instrumentação adicionará um ActivityLink à solicitação de cliente HTTP atividade apontando para a configuração de conexão HTTP atividade. Ou seja, cada solicitação está vinculada à conexão que atendeu à solicitação.

Nota

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

Aviso

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

Atributos (marcas)

Atributo Tipo Descrição Exemplos Presença
error.type string Motivo da falha de conexão: um dos erros de solicitação HTTP em snake_case ou um tipo de exceção completo. System.Net.Sockets.SocketException; name_resolution_error; secure_connection_error Se a tentativa de conexão falhar.
network.peer.address string Endereço IP par da conexão de soquete. 10.5.3.2 Se a tentativa de conexão for bem-sucedida.
server.address string Identificador de host da "origem do URI" a solicitação HTTP inicial é enviada. example.com Sempre
server.port int Identificador de porta da "origem do URI" 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)

Essa atividade descreve pesquisas de DNS executadas por meio de chamadas Dns. Ela corresponde à chamada gerenciada e não às pesquisas de DNS físicas feitas 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, pesquisa de DNS torna-se 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}

Ponta

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

Aviso

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

Atributos (marcas)

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 que contém o 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 a 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)

Essa atividade descreve o estabelecimento de uma conexão Socket por meio de Connect ou ConnectAsync. Quando a atividade de conexão do soquete é relatada juntamente com uma atividade de configuração de conexão HTTP, conexão de soquete torna-se filho 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}]

Aviso

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

Atributos (marcas)

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 do soquete falhar.
network.peer.address string Endereço par da conexão de rede – endereço IP ou nome do soquete de domínio Unix. 10.5.3.2; /tmp/my.sock Soquetes IP e UDS.
network.peer.port int Número da porta par da conexão IP. 65123 Soquetes IP.
network.transport string de camada de transporte OSI ou método de comunicação entre processos. tcp; udp; unix Soquetes IP e UDS.
network.type string de camada de rede OSI ou equivalentes não OSI. ipv4; ipv6 Soquetes IP.

Handshake TLS (experimental)

Essa atividade descreve o handshake de cliente ou servidor do TLS executado por meio dos métodos de autenticação do SslStream. Quando a atividade de de handshake do TLS é relatada para autenticação do lado do cliente, juntamente com a atividade de configuração de conexão HTTP , handshake do 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

Aviso

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

Atributos (marcas)

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 handshake falhar.
server.address string A SNI (indicação de nome do servidor) usada na mensagem "Olá do Cliente" durante o handshake do TLS. example.com Ao autenticar como cliente.
tls.protocol.name string Nome do protocolo minúsculo normalizado analisado da cadeia de caracteres original da versão de protocolo SSL/TLS do negociada ssl; tls Quando as informações do protocolo estiverem disponíveis.
tls.protocol.version string Parte numérica da versão analisada da cadeia de caracteres original da versão de protocolo SSL/TLS do negociada 1.2; 1.3 Quando as informações do protocolo estiverem disponíveis.