Partilhar via


ASP.NET Principais métricas

Este artigo descreve as métricas internas para ASP.NET Core produzidas usando a System.Diagnostics.Metrics API. Para obter uma lista de métricas com base na API EventCounters mais antiga, consulte aqui.

Gorjeta

Para obter mais informações sobre como coletar, relatar, enriquecer e testar métricas ASP.NET Core, consulte Usando métricas ASP.NET Core.

Microsoft.AspNetCore.Hosting

As Microsoft.AspNetCore.Hosting métricas relatam informações de alto nível sobre solicitações HTTP recebidas pelo ASP.NET Core:

Métrica: http.server.request.duration
Nome Tipo de Instrumento Unidade (UCUM) Description
http.server.request.duration Histograma s Mede a duração das solicitações HTTP de entrada.
Atributo Tipo Description Exemplos Presença
http.route string A rota combinada. {controller}/{action}/{id?} Se estiver disponível.
error.type string Descreve uma classe de erro com a qual a operação terminou. timeout; name_resolution_error; 500 Se a solicitação tiver terminado com um erro.
http.request.method string Método de solicitação HTTP. GET; POST; HEAD Sempre
http.response.status_code número inteiro Código de status da resposta HTTP. 200 Se um foi enviado.
network.protocol.version string Versão do protocolo especificado em network.protocol.name. 3.1.1 Sempre
url.scheme string O componente do esquema de URI que identifica o protocolo usado. http; https Sempre
aspnetcore.request.is_unhandled Boolean True quando a solicitação não foi tratada pelo pipeline de aplicativos. true Se o pedido não foi tratado.

O tempo usado para lidar com uma solicitação HTTP de entrada medido na camada de hospedagem do ASP.NET Core. A medição do tempo começa assim que o host subjacente tem:

  • Suficientemente analisados os cabeçalhos de solicitação HTTP no fluxo de rede de entrada para identificar a nova solicitação.
  • Inicializadas as estruturas de dados de contexto, como o HttpContext.

O tempo termina quando:

  • O pipeline do manipulador ASP.NET Core terminou a execução.
  • Todos os dados de resposta foram enviados.
  • As estruturas de dados de contexto para a solicitação estão sendo descartadas.

Ao usar OpenTelemetry, os buckets padrão para essa métrica são definidos como [ 0,005, 0,01, 0,025, 0,05, 0,075, 0,1, 0,25, 0,5, 0,75, 1, 2,5, 5, 7,5, 10 ].

Disponível a partir de: .NET 8.0.

Métrica: http.server.active_requests
Nome Tipo de Instrumento Unidade (UCUM) Description
http.server.active_requests UpDownCounter {request} Mede o número de solicitações HTTP simultâneas que estão atualmente em andamento.
Atributo Tipo Description Exemplos Presença
http.request.method string Método de solicitação HTTP. [1] GET; POST; HEAD Sempre
url.scheme string O componente do esquema de URI que identifica o protocolo usado. http; https Sempre

Disponível a partir de: .NET 8.0.

Microsoft.AspNetCore.Routing

As Microsoft.AspNetCore.Routing métricas relatam informações sobre o roteamento de solicitações HTTP para ASP.NET pontos de extremidade principais:

Métrica: aspnetcore.routing.match_attempts
Nome Tipo de Instrumento Unidade (UCUM) Description
aspnetcore.routing.match_attempts Contador {match_attempt} Número de solicitações que foram tentadas para corresponder a um ponto de extremidade.
Atributo Tipo Description Exemplos Presença
aspnetcore.routing.match_status string Resultado da partida success; failure Sempre
aspnetcore.routing.is_fallback_route boolean Um valor que indica se a rota correspondente é uma rota de fallback. True Se uma rota foi correspondida com êxito.
http.route string A rota correspondente {controller}/{action}/{id?} Se uma rota foi correspondida com êxito.

Disponível a partir de: .NET 8.0.

Microsoft.AspNetCore.Diagnostics

As Microsoft.AspNetCore.Diagnostics métricas relatam informações de diagnóstico do middleware de tratamento de erros ASP.NET Core:

Métrica: aspnetcore.diagnostics.exceptions
Nome Tipo de Instrumento Unidade (UCUM) Description
aspnetcore.diagnostics.exceptions Contador {exception} Número de exceções detetadas pelo middleware de tratamento de exceções.
Atributo Tipo Description Exemplos Presença
aspnetcore.diagnostics.exception.result string ASP.NET Resultado da manipulação de middleware de exceção principal handled; unhandled Sempre
aspnetcore.diagnostics.handler.type string Nome completo do tipo da IExceptionHandler implementação que manipulou a exceção. Contoso.MyHandler Se a exceção foi tratada por este manipulador.
exception.type string O nome completo do tipo de exceção. System.OperationCanceledException; Contoso.MyException Sempre

Disponível a partir de: .NET 8.0.

Microsoft.AspNetCore.RateLimiting

As Microsoft.AspNetCore.RateLimiting métricas relatam informações que limitam a taxa de ASP.NET middleware de limitação de taxa principal:

Métrica: aspnetcore.rate_limiting.active_request_leases
Nome Tipo de Instrumento Unidade (UCUM) Description
aspnetcore.rate_limiting.active_request_leases UpDownCounter {request} Número de solicitações que estão atualmente ativas no servidor que possuem uma concessão de limitação de taxa.
Atributo Tipo Description Exemplos Presença
aspnetcore.rate_limiting.policy string Nome da política de limitação de taxa. fixed; sliding; token Se o ponto de extremidade correspondente para a solicitação tivesse uma política de limitação de taxa.

Disponível a partir de: .NET 8.0.

Métrica: aspnetcore.rate_limiting.request_lease.duration
Nome Tipo de Instrumento Unidade (UCUM) Description
aspnetcore.rate_limiting.request_lease.duration Histograma s A duração da taxa que limita a concessão realizada por solicitações no servidor.
Atributo Tipo Description Exemplos Presença
aspnetcore.rate_limiting.policy string Nome da política de limitação de taxa. fixed; sliding; token Se o ponto de extremidade correspondente para a solicitação tivesse uma política de limitação de taxa.

Disponível a partir de: .NET 8.0.

Métrica: aspnetcore.rate_limiting.queued_requests
Nome Tipo de Instrumento Unidade (UCUM) Description
aspnetcore.rate_limiting.queued_requests UpDownCounter {request} Número de solicitações que estão atualmente na fila aguardando para adquirir uma taxa limitando a locação.
Atributo Tipo Description Exemplos Presença
aspnetcore.rate_limiting.policy string Nome da política de limitação de taxa. fixed; sliding; token Se o ponto de extremidade correspondente para a solicitação tivesse uma política de limitação de taxa.

Disponível a partir de: .NET 8.0.

Métrica: aspnetcore.rate_limiting.request.time_in_queue
Nome Tipo de Instrumento Unidade (UCUM) Description
aspnetcore.rate_limiting.request.time_in_queue Histograma s O tempo que uma solicitação passou em uma fila esperando para adquirir uma taxa limitando a locação.
Atributo Tipo Description Exemplos Presença
aspnetcore.rate_limiting.policy string Nome da política de limitação de taxa. fixed; sliding; token Se o ponto de extremidade correspondente para a solicitação tivesse uma política de limitação de taxa.
aspnetcore.rate_limiting.result string O resultado da limitação da taxa mostra se a locação foi adquirida ou contém um motivo de rejeição. acquired; request_canceled Sempre

Disponível a partir de: .NET 8.0.

Métrica: aspnetcore.rate_limiting.requests
Nome Tipo de Instrumento Unidade (UCUM) Description
aspnetcore.rate_limiting.requests Contador {request} Número de solicitações que tentaram adquirir uma taxa limitando a locação.
Atributo Tipo Description Exemplos Presença
aspnetcore.rate_limiting.policy string Nome da política de limitação de taxa. fixed; sliding; token Se o ponto de extremidade correspondente para a solicitação tivesse uma política de limitação de taxa.
aspnetcore.rate_limiting.result string O resultado da limitação da taxa mostra se a locação foi adquirida ou contém um motivo de rejeição. acquired; request_canceled Sempre

Disponível a partir de: .NET 8.0.

Microsoft.AspNetCore.HeaderParsing

As Microsoft.AspNetCore.HeaderParsing métricas relatam informações sobre ASP.NET análise de cabeçalho principal:

Métrica: aspnetcore.header_parsing.parse_errors
Nome Tipo de Instrumento Unidade (UCUM) Description
aspnetcore.header_parsing.parse_errors Contador {parse_error} Número de erros que ocorreram ao analisar cabeçalhos de solicitação HTTP.
Atributo Tipo Description Exemplos Presença
aspnetcore.header_parsing.header.name string O nome do cabeçalho. Content-Type Sempre
error.type string A mensagem de erro. Unable to parse media type value. Sempre

Disponível a partir de: .NET 8.0.

Métrica: aspnetcore.header_parsing.cache_accesses

A métrica é emitida apenas para analisadores de cabeçalho de solicitação HTTP que suportam cache.

Nome Tipo de Instrumento Unidade (UCUM) Description
aspnetcore.header_parsing.cache_accesses Contador {cache_access} Número de vezes que um cache que armazena valores de cabeçalho analisados foi acessado.
Atributo Tipo Description Exemplos Presença
aspnetcore.header_parsing.header.name string O nome do cabeçalho. Content-Type Sempre
aspnetcore.header_parsing.cache_access.type string Um valor que indica se o valor do cabeçalho foi encontrado no cache ou não. Hit; Miss Sempre

Disponível a partir de: .NET 8.0.

Microsoft.AspNetCore.Server.Kestrel

As Microsoft.AspNetCore.Server.Kestrel métricas relatam informações de conexão HTTP de ASP.NET servidor Web Core Kestrel:

Métrica: kestrel.active_connections
Nome Tipo de Instrumento Unidade (UCUM) Description
kestrel.active_connections UpDownCounter {connection} Número de conexões que estão atualmente ativas no servidor.
Atributo Tipo Description Exemplos Presença
network.transport string Camada de transporte OSI ou método de comunicação entre processos. tcp; unix Sempre
network.type string Camada de rede OSI ou equivalente não-OSI. ipv4; ipv6 Se o transporte for tcp ou udp.
server.address string Nome de domínio do endereço do servidor, se disponível sem pesquisa reversa de DNS; caso contrário, endereço IP ou nome do soquete de domínio Unix. example.com Sempre
server.port número inteiro Número da porta do servidor 80; 8080; 443 Se o transporte for tcp ou udp.

Disponível a partir de: .NET 8.0.

Métrica: kestrel.connection.duration
Nome Tipo de Instrumento Unidade (UCUM) Description
kestrel.connection.duration Histograma s A duração das conexões no servidor.
Atributo Tipo Description Exemplos Presença
error.type string O nome completo do tipo de exceção. System.OperationCanceledException; Contoso.MyException Se uma exceção foi lançada.
network.protocol.name string Camada de aplicação OSI ou equivalente não-OSI. http; web_sockets Sempre
network.protocol.version string Versão do protocolo especificado em network.protocol.name. 1.1; 2 Sempre
network.transport string Camada de transporte OSI ou método de comunicação entre processos. tcp; unix Sempre
network.type string Camada de rede OSI ou equivalente não-OSI. ipv4; ipv6 Se o transporte for tcp ou udp.
server.address string Nome de domínio do endereço do servidor, se disponível sem pesquisa reversa de DNS; caso contrário, endereço IP ou nome do soquete de domínio Unix. example.com Sempre
server.port número inteiro Número da porta do servidor 80; 8080; 443 Se o transporte for tcp ou udp.
tls.protocol.version string Versão do protocolo TLS. 1.2; 1.3 Se a conexão estiver protegida com TLS.

Como essa métrica está rastreando a duração da conexão e, idealmente, as conexões http são usadas para várias solicitações, os buckets devem ser mais longos do que aqueles usados para durações de solicitação. Por exemplo, usar [ 0,01, 0,02, 0,05, 0,1, 0,2, 0,5, 1, 2, 5, 10, 30, 60, 120, 300] fornece um balde superior de 5 minutos.

Disponível a partir de: .NET 8.0.

Métrica: kestrel.rejected_connections
Nome Tipo de Instrumento Unidade (UCUM) Description
kestrel.rejected_connections Contador {connection} Número de conexões rejeitadas pelo servidor.
Atributo Tipo Description Exemplos Presença
network.transport string Camada de transporte OSI ou método de comunicação entre processos. tcp; unix Sempre
network.type string Camada de rede OSI ou equivalente não-OSI. ipv4; ipv6 Se o transporte for tcp ou udp.
server.address string Nome de domínio do endereço do servidor, se disponível sem pesquisa reversa de DNS; caso contrário, endereço IP ou nome do soquete de domínio Unix. example.com Sempre
server.port número inteiro Número da porta do servidor 80; 8080; 443 Se o transporte for tcp ou udp.

As conexões são rejeitadas quando a contagem ativa no momento excede o valor configurado com MaxConcurrentConnections.

Disponível a partir de: .NET 8.0.

Métrica: kestrel.queued_connections
Nome Tipo de Instrumento Unidade (UCUM) Description
kestrel.queued_connections UpDownCounter {connection} Número de conexões que estão atualmente na fila e aguardando para iniciar.
Atributo Tipo Description Exemplos Presença
network.transport string Camada de transporte OSI ou método de comunicação entre processos. tcp; unix Sempre
network.transport string Camada de rede OSI ou equivalente não-OSI. ipv4; ipv6 Se o transporte for tcp ou udp.
server.address string Nome de domínio do endereço do servidor, se disponível sem pesquisa reversa de DNS; caso contrário, endereço IP ou nome do soquete de domínio Unix. example.com Sempre
server.port número inteiro Número da porta do servidor 80; 8080; 443 Se o transporte for tcp ou udp.

Disponível a partir de: .NET 8.0.

Métrica: kestrel.queued_requests
Nome Tipo de Instrumento Unidade (UCUM) Description
kestrel.queued_requests UpDownCounter {request} Número de solicitações HTTP em conexões multiplexadas (HTTP/2 e HTTP/3) que estão atualmente na fila e aguardando para iniciar.
Atributo Tipo Description Exemplos Presença
network.protocol.name string Camada de aplicação OSI ou equivalente não-OSI. http; web_sockets Sempre
network.protocol.version string Versão do protocolo especificado em network.protocol.name. 1.1; 2 Sempre
network.transport string Camada de transporte OSI ou método de comunicação entre processos. tcp; unix Sempre
network.transport string Camada de rede OSI ou equivalente não-OSI. ipv4; ipv6 Se o transporte for tcp ou udp.
server.address string Nome de domínio do endereço do servidor, se disponível sem pesquisa reversa de DNS; caso contrário, endereço IP ou nome do soquete de domínio Unix. example.com Sempre
server.port número inteiro Número da porta do servidor 80; 8080; 443 Se o transporte for tcp ou udp.

Disponível a partir de: .NET 8.0.

Métrica: kestrel.upgraded_connections
Nome Tipo de Instrumento Unidade (UCUM) Description
kestrel.upgraded_connections UpDownCounter {connection} Número de conexões que estão atualizadas atualmente (WebSockets).
Atributo Tipo Description Exemplos Presença
network.transport string Camada de transporte OSI ou método de comunicação entre processos. tcp; unix Sempre
network.transport string Camada de rede OSI ou equivalente não-OSI. ipv4; ipv6 Se o transporte for tcp ou udp.
server.address string Nome de domínio do endereço do servidor, se disponível sem pesquisa reversa de DNS; caso contrário, endereço IP ou nome do soquete de domínio Unix. example.com Sempre
server.port número inteiro Número da porta do servidor 80; 8080; 443 Se o transporte for tcp ou udp.

O contador rastreia apenas conexões HTTP/1.1.

Disponível a partir de: .NET 8.0.

Métrica: kestrel.tls_handshake.duration
Nome Tipo de Instrumento Unidade (UCUM) Description
kestrel.tls_handshake.duration Histograma s A duração dos handshakes TLS no servidor.
Atributo Tipo Description Exemplos Presença
error.type string O nome completo do tipo de exceção. System.OperationCanceledException; Contoso.MyException Se uma exceção foi lançada.
network.transport string Camada de transporte OSI ou método de comunicação entre processos. tcp; unix Sempre
network.transport string Camada de rede OSI ou equivalente não-OSI. ipv4; ipv6 Se o transporte for tcp ou udp.
server.address string Nome de domínio do endereço do servidor, se disponível sem pesquisa reversa de DNS; caso contrário, endereço IP ou nome do soquete de domínio Unix. example.com Sempre
server.port número inteiro Número da porta do servidor 80; 8080; 443 Se o transporte for tcp ou udp.
tls.protocol.version string Versão do protocolo TLS. 1.2; 1.3 Se a conexão estiver protegida com TLS.

Ao usar OpenTelemetry, os buckets padrão para esta métrica são definidos como [ 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10 ].

Disponível a partir de: .NET 8.0.

Métrica: kestrel.active_tls_handshakes
Nome Tipo de Instrumento Unidade (UCUM) Description
kestrel.active_tls_handshakes UpDownCounter {handshake} Número de handshakes TLS que estão atualmente em andamento no servidor.
Atributo Tipo Description Exemplos Presença
network.transport string Camada de transporte OSI ou método de comunicação entre processos. tcp; unix Sempre
network.transport string Camada de rede OSI ou equivalente não-OSI. ipv4; ipv6 Se o transporte for tcp ou udp.
server.address string Nome de domínio do endereço do servidor, se disponível sem pesquisa reversa de DNS; caso contrário, endereço IP ou nome do soquete de domínio Unix. example.com Sempre
server.port número inteiro Número da porta do servidor 80; 8080; 443 Se o transporte for tcp ou udp.

Disponível a partir de: .NET 8.0.

Microsoft.AspNetCore.Http.Connections

As Microsoft.AspNetCore.Http.Connections métricas relatam informações de conexão do ASP.NET Core SignalR:

Métrica: signalr.server.connection.duration
Nome Tipo de Instrumento Unidade (UCUM) Description
signalr.server.connection.duration Histograma s A duração das conexões no servidor.
Atributo Tipo Description Exemplos Presença
signalr.connection.status string Status de fechamento da conexão HTTP SignalR. app_shutdown; timeout Sempre
signalr.transport string Tipo de transporte SignalR web_sockets; long_polling Sempre

Disponível a partir de: .NET 8.0.

valor Description
normal_closure A conexão foi fechada normalmente.
timeout A conexão foi fechada devido a um tempo limite.
app_shutdown A conexão foi fechada porque o aplicativo está sendo desligado.

signalr.transport é uma das seguintes:

Value Protocolo
server_sent_events Eventos enviados pelo servidor
long_polling Votação longa
web_sockets WebSocket

Como essa métrica está rastreando a duração da conexão e, idealmente, as conexões SignalR são duráveis, os buckets devem ser mais longos do que os usados para durações de solicitação. Por exemplo, usar [0, 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 300] fornece um bucket superior de 5 minutos.

Disponível a partir de: .NET 8.0.

Métrica: signalr.server.active_connections
Nome Tipo de Instrumento Unidade (UCUM) Description
signalr.server.active_connections UpDownCounter {connection} Número de conexões que estão atualmente ativas no servidor.
Atributo Tipo Description Exemplos Presença
signalr.connection.status string Status de fechamento da conexão HTTP SignalR. app_shutdown; timeout Sempre
signalr.transport string Tipo de transporte SignalR web_sockets; long_polling Sempre

Disponível a partir de: .NET 8.0.