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:
aspnetcore.rate_limiting.active_request_leases
aspnetcore.rate_limiting.request_lease.duration
aspnetcore.rate_limiting.queued_requests
aspnetcore.rate_limiting.request.time_in_queue
aspnetcore.rate_limiting.requests
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:
kestrel.active_connections
kestrel.connection.duration
kestrel.rejected_connections
kestrel.queued_connections
kestrel.queued_requests
kestrel.upgraded_connections
kestrel.tls_handshake.duration
kestrel.active_tls_handshakes
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.
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários