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