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
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 GET
e 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
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
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
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
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. |