Metriche di ASP.NET Core
Questo articolo descrive le metriche predefinite per ASP.NET Core prodotte con l'API System.Diagnostics.Metrics. Per un elenco delle metriche basate sull'API EventCounters precedente, vedere qui.
Suggerimento
Per altre informazioni su come raccogliere, creare report, arricchire e testare le metriche di base ASP.NET, vedere Uso di metriche di base ASP.NET.
Microsoft.AspNetCore.Hosting
Le metriche Microsoft.AspNetCore.Hosting
segnalano informazioni generali sulle richieste HTTP ricevute da ASP.NET Core:
Metrica: http.server.request.duration
Nome | Tipo di strumento | Unità (UCUM) | Descrizione |
---|---|---|---|
http.server.request.duration |
Istogramma | s |
Misura la durata delle richieste HTTP in ingresso. |
Attributo | Tipo | Descrizione | Esempi | Presenza |
---|---|---|---|---|
http.route |
string | Route corrispondente. | {controller}/{action}/{id?} |
Se disponibile. |
error.type |
string | Descrive una classe di errore con cui l'operazione è terminata. | timeout ; name_resolution_error ; 500 |
Se la richiesta è terminata con un errore. |
http.request.method |
string | Metodo della richiesta HTTP. | GET ; POST ; HEAD |
Sempre |
http.response.status_code |
int | Codice di stato della risposta HTTP. | 200 |
Se ne è stato inviato uno. |
network.protocol.version |
string | Versione del protocollo specificato in network.protocol.name . |
3.1.1 |
Sempre |
url.scheme |
string | Componente dello schema URI che identifica il protocollo usato. | http ; https |
Sempre |
aspnetcore.request.is_unhandled |
Booleano | True quando la richiesta non è stata gestita dalla pipeline dell'applicazione. | true |
Se la richiesta non è stata gestita. |
Tempo usato per gestire una richiesta HTTP in ingresso misurata al livello di hosting di ASP.NET Core. La misurazione dell'ora inizia dopo che l'host Web sottostante ha:
- Sufficientemente analizzate le intestazioni della richiesta HTTP nel flusso di rete in ingresso per identificare la nuova richiesta.
- Inizializzate le strutture dei dati di contesto, ad esempio HttpContext.
L'ora termina quando:
- L'esecuzione della pipeline del gestore ASP.NET Core è stata completata.
- Tutti i dati di risposta sono stati inviati.
- Le strutture di dati di contesto per la richiesta vengono eliminate.
Quando si usa OpenTelemetry, i bucket predefiniti per questa metrica sono impostati su [ 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 ].
Disponibile a partire da: .NET 8.0.
Metrica: http.server.active_requests
Nome | Tipo di strumento | Unità (UCUM) | Descrizione |
---|---|---|---|
http.server.active_requests |
UpDownCounter | {request} |
Misura il numero di richieste HTTP simultanee attualmente in corso. |
Attributo | Tipo | Descrizione | Esempi | Presenza |
---|---|---|---|---|
http.request.method |
string | Metodo della richiesta HTTP. [1] | GET ; POST ; HEAD |
Sempre |
url.scheme |
string | Componente dello schema URI che identifica il protocollo usato. | http ; https |
Sempre |
Disponibile a partire da: .NET 8.0.
Microsoft.AspNetCore.Routing
Le metriche Microsoft.AspNetCore.Routing
segnalano informazioni sul routing delle richieste HTTP agli endpoint ASP.NET Core:
Metrica: aspnetcore.routing.match_attempts
Nome | Tipo di strumento | Unità (UCUM) | Descrizione |
---|---|---|---|
aspnetcore.routing.match_attempts |
Contatore | {match_attempt} |
Numero di richieste che si è tentato di abbinare a un endpoint. |
Attributo | Tipo | Descrizione | Esempi | Presenza |
---|---|---|---|---|
aspnetcore.routing.match_status |
string | Risultato della corrispondenza | success ; failure |
Sempre |
aspnetcore.routing.is_fallback_route |
boolean | Valore che indica se la route corrispondente è una route di fallback. | True |
Se una route è stata trovata correttamente. |
http.route |
string | Route corrispondente | {controller}/{action}/{id?} |
Se una route è stata trovata correttamente. |
Disponibile a partire da: .NET 8.0.
Microsoft.AspNetCore.Diagnostics
Le metriche Microsoft.AspNetCore.Diagnostics
segnalano le informazioni di diagnostica del middleware di gestione degli errori di base ASP.NET:
Metrica: aspnetcore.diagnostics.exceptions
Nome | Tipo di strumento | Unità (UCUM) | Descrizione |
---|---|---|---|
aspnetcore.diagnostics.exceptions |
Contatore | {exception} |
Numero di eccezioni rilevate dal middleware di gestione delle eccezioni. |
Attributo | Tipo | Descrizione | Esempi | Presenza |
---|---|---|---|---|
aspnetcore.diagnostics.exception.result |
string | Risultato della gestione del middleware delle eccezioni di ASP.NET Core | handled ; unhandled |
Sempre |
aspnetcore.diagnostics.handler.type |
string | Nome completo del tipo dell'implementazione IExceptionHandler che ha gestito l'eccezione. |
Contoso.MyHandler |
Se l'eccezione è stata gestita da questo gestore. |
exception.type |
string | Nome completo del tipo di eccezione. | System.OperationCanceledException ; Contoso.MyException |
Sempre |
Disponibile a partire da: .NET 8.0.
Microsoft.AspNetCore.RateLimiting
Le metriche Microsoft.AspNetCore.RateLimiting
segnalano le informazioni sulla limitazione della frequenza da middleware di limitazione della frequenza ASP.NET Core:
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
Metrica: aspnetcore.rate_limiting.active_request_leases
Nome | Tipo di strumento | Unità (UCUM) | Descrizione |
---|---|---|---|
aspnetcore.rate_limiting.active_request_leases |
UpDownCounter | {request} |
Numero di richieste attualmente attive nel server che contengono un lease di limitazione della frequenza. |
Attributo | Tipo | Descrizione | Esempi | Presenza |
---|---|---|---|---|
aspnetcore.rate_limiting.policy |
string | Nome dei criteri di limitazione della frequenza. | fixed ; sliding ; token |
Se l'endpoint corrispondente per la richiesta ha un criterio di limitazione della frequenza. |
Disponibile a partire da: .NET 8.0.
Metrica: aspnetcore.rate_limiting.request_lease.duration
Nome | Tipo di strumento | Unità (UCUM) | Descrizione |
---|---|---|---|
aspnetcore.rate_limiting.request_lease.duration |
Istogramma | s |
Durata del lease di limitazione della frequenza detenuto dalle richieste nel server. |
Attributo | Tipo | Descrizione | Esempi | Presenza |
---|---|---|---|---|
aspnetcore.rate_limiting.policy |
string | Nome dei criteri di limitazione della frequenza. | fixed ; sliding ; token |
Se l'endpoint corrispondente per la richiesta ha un criterio di limitazione della frequenza. |
Disponibile a partire da: .NET 8.0.
Metrica: aspnetcore.rate_limiting.queued_requests
Nome | Tipo di strumento | Unità (UCUM) | Descrizione |
---|---|---|---|
aspnetcore.rate_limiting.queued_requests |
UpDownCounter | {request} |
Numero di richieste attualmente in coda in attesa di acquisire un lease di limitazione della frequenza. |
Attributo | Tipo | Descrizione | Esempi | Presenza |
---|---|---|---|---|
aspnetcore.rate_limiting.policy |
string | Nome dei criteri di limitazione della frequenza. | fixed ; sliding ; token |
Se l'endpoint corrispondente per la richiesta ha un criterio di limitazione della frequenza. |
Disponibile a partire da: .NET 8.0.
Metrica: aspnetcore.rate_limiting.request.time_in_queue
Nome | Tipo di strumento | Unità (UCUM) | Descrizione |
---|---|---|---|
aspnetcore.rate_limiting.request.time_in_queue |
Istogramma | s |
Tempo impiegato da una richiesta in una coda in attesa di acquisire un lease di limitazione della frequenza. |
Attributo | Tipo | Descrizione | Esempi | Presenza |
---|---|---|---|---|
aspnetcore.rate_limiting.policy |
string | Nome dei criteri di limitazione della frequenza. | fixed ; sliding ; token |
Se l'endpoint corrispondente per la richiesta ha un criterio di limitazione della frequenza. |
aspnetcore.rate_limiting.result |
string | Il risultato della limitazione della frequenza indica se il lease è stato acquisito o contiene un motivo di rifiuto. | acquired ; request_canceled |
Sempre |
Disponibile a partire da: .NET 8.0.
Metrica: aspnetcore.rate_limiting.requests
Nome | Tipo di strumento | Unità (UCUM) | Descrizione |
---|---|---|---|
aspnetcore.rate_limiting.requests |
Contatore | {request} |
Numero di richieste che hanno tentato di acquisire un lease di limitazione della frequenza. |
Attributo | Tipo | Descrizione | Esempi | Presenza |
---|---|---|---|---|
aspnetcore.rate_limiting.policy |
string | Nome dei criteri di limitazione della frequenza. | fixed ; sliding ; token |
Se l'endpoint corrispondente per la richiesta ha un criterio di limitazione della frequenza. |
aspnetcore.rate_limiting.result |
string | Il risultato della limitazione della frequenza indica se il lease è stato acquisito o contiene un motivo di rifiuto. | acquired ; request_canceled |
Sempre |
Disponibile a partire da: .NET 8.0.
Microsoft.AspNetCore.HeaderParsing
Le metriche Microsoft.AspNetCore.HeaderParsing
segnalano informazioni sull'analisi dell'intestazione core ASP.NET:
Metrica: aspnetcore.header_parsing.parse_errors
Nome | Tipo di strumento | Unità (UCUM) | Descrizione |
---|---|---|---|
aspnetcore.header_parsing.parse_errors |
Contatore | {parse_error} |
Numero di errori che si sono verificati durante l'analisi delle intestazioni di richiesta HTTP. |
Attributo | Tipo | Descrizione | Esempi | Presenza |
---|---|---|---|---|
aspnetcore.header_parsing.header.name |
string | Nome dell'intestazione. | Content-Type |
Sempre |
error.type |
string | Messaggio di errore. | Unable to parse media type value. |
Sempre |
Disponibile a partire da: .NET 8.0.
Metrica: aspnetcore.header_parsing.cache_accesses
La metrica viene generata solo per i parser di intestazione della richiesta HTTP che supportano la memorizzazione nella cache.
Nome | Tipo di strumento | Unità (UCUM) | Descrizione |
---|---|---|---|
aspnetcore.header_parsing.cache_accesses |
Contatore | {cache_access} |
Numero di volte in cui è stato eseguito l'accesso a una cache che archivia i valori delle intestazioni analizzate. |
Attributo | Tipo | Descrizione | Esempi | Presenza |
---|---|---|---|---|
aspnetcore.header_parsing.header.name |
string | Nome dell'intestazione. | Content-Type |
Sempre |
aspnetcore.header_parsing.cache_access.type |
string | Valore che indica se il valore dell'intestazione è stato trovato nella cache o meno. | Hit ; Miss |
Sempre |
Disponibile a partire da: .NET 8.0.
Microsoft.AspNetCore.Server.Kestrel
Le metriche Microsoft.AspNetCore.Server.Kestrel
segnalano le informazioni di connessione HTTP da ASP.NET server 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
Metrica: kestrel.active_connections
Nome | Tipo di strumento | Unità (UCUM) | Descrizione |
---|---|---|---|
kestrel.active_connections |
UpDownCounter | {connection} |
Numero di connessioni attualmente attive nel server. |
Attributo | Tipo | Descrizione | Esempi | Presenza |
---|---|---|---|---|
network.transport |
string | Livello di trasporto OSI o metodo di comunicazione tra processi. | tcp ; unix |
Sempre |
network.type |
string | Livello di rete OSI o non OSI equivalente. | ipv4 ; ipv6 |
Se il trasporto è tcp o udp . |
server.address |
string | Nome di dominio dell'indirizzo del server, se disponibile senza ricerca DNS inversa; in caso contrario, indirizzo IP o nome socket di dominio Unix. | example.com |
Sempre |
server.port |
int | Numero Porta server | 80 ; 8080 ; 443 |
Se il trasporto è tcp o udp . |
Disponibile a partire da: .NET 8.0.
Metrica: kestrel.connection.duration
Nome | Tipo di strumento | Unità (UCUM) | Descrizione |
---|---|---|---|
kestrel.connection.duration |
Istogramma | s |
Durata delle connessioni nel server. |
Attributo | Tipo | Descrizione | Esempi | Presenza |
---|---|---|---|---|
error.type |
string | Nome completo del tipo di eccezione. | System.OperationCanceledException ; Contoso.MyException |
Se non è stata generata un'eccezione. |
network.protocol.name |
string | Livello applicazione OSI o equivalente non OSI. | http ; web_sockets |
Sempre |
network.protocol.version |
string | Versione del protocollo specificato in network.protocol.name . |
1.1 ; 2 |
Sempre |
network.transport |
string | Livello di trasporto OSI o metodo di comunicazione tra processi. | tcp ; unix |
Sempre |
network.type |
string | Livello di rete OSI o non OSI equivalente. | ipv4 ; ipv6 |
Se il trasporto è tcp o udp . |
server.address |
string | Nome di dominio dell'indirizzo del server, se disponibile senza ricerca DNS inversa; in caso contrario, indirizzo IP o nome socket di dominio Unix. | example.com |
Sempre |
server.port |
int | Numero Porta server | 80 ; 8080 ; 443 |
Se il trasporto è tcp o udp . |
tls.protocol.version |
string | Versione del protocollo TLS. | 1.2 ; 1.3 |
Se la connessione è protetta con TLS. |
Poiché questa metrica monitora la durata della connessione e idealmente vengono usate connessioni HTTP per più richieste, i bucket devono essere più lunghi di quelli usati per le durate delle richieste. Ad esempio, usando [ 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 300] fornisce un bucket superiore di 5 minuti.
Disponibile a partire da: .NET 8.0.
Metrica: kestrel.rejected_connections
Nome | Tipo di strumento | Unità (UCUM) | Descrizione |
---|---|---|---|
kestrel.rejected_connections |
Contatore | {connection} |
Numero di connessioni rifiutate dal server. |
Attributo | Tipo | Descrizione | Esempi | Presenza |
---|---|---|---|---|
network.transport |
string | Livello di trasporto OSI o metodo di comunicazione tra processi. | tcp ; unix |
Sempre |
network.type |
string | Livello di rete OSI o non OSI equivalente. | ipv4 ; ipv6 |
Se il trasporto è tcp o udp . |
server.address |
string | Nome di dominio dell'indirizzo del server, se disponibile senza ricerca DNS inversa; in caso contrario, indirizzo IP o nome socket di dominio Unix. | example.com |
Sempre |
server.port |
int | Numero Porta server | 80 ; 8080 ; 443 |
Se il trasporto è tcp o udp . |
Le connessioni vengono rifiutate quando il conteggio attualmente attivo supera il valore configurato con MaxConcurrentConnections
.
Disponibile a partire da: .NET 8.0.
Metrica: kestrel.queued_connections
Nome | Tipo di strumento | Unità (UCUM) | Descrizione |
---|---|---|---|
kestrel.queued_connections |
UpDownCounter | {connection} |
Numero di connessioni attualmente in coda e in attesa di avvio. |
Attributo | Tipo | Descrizione | Esempi | Presenza |
---|---|---|---|---|
network.transport |
string | Livello di trasporto OSI o metodo di comunicazione tra processi. | tcp ; unix |
Sempre |
network.transport |
string | Livello di rete OSI o non OSI equivalente. | ipv4 ; ipv6 |
Se il trasporto è tcp o udp . |
server.address |
string | Nome di dominio dell'indirizzo del server, se disponibile senza ricerca DNS inversa; in caso contrario, indirizzo IP o nome socket di dominio Unix. | example.com |
Sempre |
server.port |
int | Numero Porta server | 80 ; 8080 ; 443 |
Se il trasporto è tcp o udp . |
Disponibile a partire da: .NET 8.0.
Metrica: kestrel.queued_requests
Nome | Tipo di strumento | Unità (UCUM) | Descrizione |
---|---|---|---|
kestrel.queued_requests |
UpDownCounter | {request} |
Numero di richieste HTTP su connessioni multiplexed (HTTP/2 e HTTP/3) attualmente in coda e in attesa di avvio. |
Attributo | Tipo | Descrizione | Esempi | Presenza |
---|---|---|---|---|
network.protocol.name |
string | Livello applicazione OSI o equivalente non OSI. | http ; web_sockets |
Sempre |
network.protocol.version |
string | Versione del protocollo specificato in network.protocol.name . |
1.1 ; 2 |
Sempre |
network.transport |
string | Livello di trasporto OSI o metodo di comunicazione tra processi. | tcp ; unix |
Sempre |
network.transport |
string | Livello di rete OSI o non OSI equivalente. | ipv4 ; ipv6 |
Se il trasporto è tcp o udp . |
server.address |
string | Nome di dominio dell'indirizzo del server, se disponibile senza ricerca DNS inversa; in caso contrario, indirizzo IP o nome socket di dominio Unix. | example.com |
Sempre |
server.port |
int | Numero Porta server | 80 ; 8080 ; 443 |
Se il trasporto è tcp o udp . |
Disponibile a partire da: .NET 8.0.
Metrica: kestrel.upgraded_connections
Nome | Tipo di strumento | Unità (UCUM) | Descrizione |
---|---|---|---|
kestrel.upgraded_connections |
UpDownCounter | {connection} |
Numero di connessioni attualmente aggiornate (WebSocket). |
Attributo | Tipo | Descrizione | Esempi | Presenza |
---|---|---|---|---|
network.transport |
string | Livello di trasporto OSI o metodo di comunicazione tra processi. | tcp ; unix |
Sempre |
network.transport |
string | Livello di rete OSI o non OSI equivalente. | ipv4 ; ipv6 |
Se il trasporto è tcp o udp . |
server.address |
string | Nome di dominio dell'indirizzo del server, se disponibile senza ricerca DNS inversa; in caso contrario, indirizzo IP o nome socket di dominio Unix. | example.com |
Sempre |
server.port |
int | Numero Porta server | 80 ; 8080 ; 443 |
Se il trasporto è tcp o udp . |
Il contatore tiene traccia solo delle connessioni HTTP/1.1.
Disponibile a partire da: .NET 8.0.
Metrica: kestrel.tls_handshake.duration
Nome | Tipo di strumento | Unità (UCUM) | Descrizione |
---|---|---|---|
kestrel.tls_handshake.duration |
Istogramma | s |
Durata degli handshake TLS nel server. |
Attributo | Tipo | Descrizione | Esempi | Presenza |
---|---|---|---|---|
error.type |
string | Nome completo del tipo di eccezione. | System.OperationCanceledException ; Contoso.MyException |
Se non è stata generata un'eccezione. |
network.transport |
string | Livello di trasporto OSI o metodo di comunicazione tra processi. | tcp ; unix |
Sempre |
network.transport |
string | Livello di rete OSI o non OSI equivalente. | ipv4 ; ipv6 |
Se il trasporto è tcp o udp . |
server.address |
string | Nome di dominio dell'indirizzo del server, se disponibile senza ricerca DNS inversa; in caso contrario, indirizzo IP o nome socket di dominio Unix. | example.com |
Sempre |
server.port |
int | Numero Porta server | 80 ; 8080 ; 443 |
Se il trasporto è tcp o udp . |
tls.protocol.version |
string | Versione del protocollo TLS. | 1.2 ; 1.3 |
Se la connessione è protetta con TLS. |
Quando si usa OpenTelemetry, i bucket predefiniti per questa metrica sono impostati su [ 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 ].
Disponibile a partire da: .NET 8.0.
Metrica: kestrel.active_tls_handshakes
Nome | Tipo di strumento | Unità (UCUM) | Descrizione |
---|---|---|---|
kestrel.active_tls_handshakes |
UpDownCounter | {handshake} |
Numero di handshake TLS attualmente in corso nel server. |
Attributo | Tipo | Descrizione | Esempi | Presenza |
---|---|---|---|---|
network.transport |
string | Livello di trasporto OSI o metodo di comunicazione tra processi. | tcp ; unix |
Sempre |
network.transport |
string | Livello di rete OSI o non OSI equivalente. | ipv4 ; ipv6 |
Se il trasporto è tcp o udp . |
server.address |
string | Nome di dominio dell'indirizzo del server, se disponibile senza ricerca DNS inversa; in caso contrario, indirizzo IP o nome socket di dominio Unix. | example.com |
Sempre |
server.port |
int | Numero Porta server | 80 ; 8080 ; 443 |
Se il trasporto è tcp o udp . |
Disponibile a partire da: .NET 8.0.
Microsoft.AspNetCore.Http.Connections
Le metriche Microsoft.AspNetCore.Http.Connections
segnalano le informazioni di connessione da ASP.NET Core SignalR:
Metrica: signalr.server.connection.duration
Nome | Tipo di strumento | Unità (UCUM) | Descrizione |
---|---|---|---|
signalr.server.connection.duration |
Istogramma | s |
Durata delle connessioni nel server. |
Attributo | Tipo | Descrizione | Esempi | Presenza |
---|---|---|---|---|
signalr.connection.status |
string | Stato di chiusura della connessione HTTP signalR. | app_shutdown ; timeout |
Sempre |
signalr.transport |
string | Tipo di trasporto SignalR | web_sockets ; long_polling |
Sempre |
Disponibile a partire da: .NET 8.0.
Valore | Descrizione |
---|---|
normal_closure |
La connessione è stata chiusa normalmente. |
timeout |
La connessione è stata chiusa a causa di un timeout. |
app_shutdown |
La connessione è stata chiusa perché l'app viene arrestata. |
signalr.transport
corrisponde a uno dei valori seguenti:
Valore | Protocollo |
---|---|
server_sent_events |
eventi inviati dal server |
long_polling |
Polling lungo |
web_sockets |
WebSocket |
Poiché questa metrica monitora la durata della connessione e idealmente le connessioni SignalR sono durevoli, i bucket devono essere più lunghi di quelli usati per le durate delle richieste. Ad esempio, usando [0, 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 300] fornisce un bucket superiore di 5 minuti.
Disponibile a partire da: .NET 8.0.
Metrica: signalr.server.active_connections
Nome | Tipo di strumento | Unità (UCUM) | Descrizione |
---|---|---|---|
signalr.server.active_connections |
UpDownCounter | {connection} |
Numero di connessioni attualmente attive nel server. |
Attributo | Tipo | Descrizione | Esempi | Presenza |
---|---|---|---|---|
signalr.connection.status |
string | Stato di chiusura della connessione HTTP signalR. | app_shutdown ; timeout |
Sempre |
signalr.transport |
string | Tipo di trasporto SignalR | web_sockets ; long_polling |
Sempre |
Disponibile a partire da: .NET 8.0.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per