ASP.NET Core-Metriken
Artikel 02/09/2024
8 Mitwirkende
Feedback
In diesem Artikel
Dieser Artikel beschreibt die in ASP.NET Core integrierten Metriken, die mit der System.Diagnostics.Metrics -API erstellt wurden. Eine Liste der Metriken, die auf der älteren EventCounters -API basieren, finden Sie hier .
Microsoft.AspNetCore.Hosting
Die Microsoft.AspNetCore.Hosting
-Metriken melden allgemeine Informationen zu von ASP.NET Core empfangenen HTTP-Anforderungen:
Metrik: http.server.request.duration
attribute
type
Beschreibung
Beispiele
Anwesenheit
http.route
Zeichenfolge
Die übereinstimmende Route.
{controller}/{action}/{id?}
Wenn sie verfügbar ist.
error.type
Zeichenfolge
Beschreibt eine Fehlerklasse, mit der der Vorgang beendet wurde.
timeout
; name_resolution_error
; 500
Wenn die Anforderung mit einem Fehler beendet wurde.
http.request.method
Zeichenfolge
HTTP-Anforderungsmethode.
GET
; POST
; HEAD
Always
http.response.status_code
INT
HTTP-Antwortstatuscode .
200
Wenn eine gesendet wurde.
network.protocol.version
Zeichenfolge
Version des in network.protocol.name
angegebenen Protokolls.
3.1.1
Always
url.scheme
Zeichenfolge
Die URI-Schema -Komponente, die das verwendete Protokoll identifiziert.
http
; https
Always
aspnetcore.request.is_unhandled
Boolean
True, wenn die Anforderung nicht von der Anwendungspipeline verarbeitet wurde.
true
Wenn die Anforderung nicht verarbeitet wurde.
Die Zeit, die für die Bearbeitung einer eingehenden HTTP-Anforderung auf der Hosting-Ebene von ASP.NET Core gemessen wird. Die Zeitmessung beginnt, sobald der zugrundeliegende Webhost folgendes getan hat:
Die HTTP-Anforderungsheader des eingehenden Netzwerkstroms wurden hinreichend geparst, um die neue Anforderung zu identifizieren.
Initialisiert die Kontextdatenstrukturen wie z. B. die HttpContext .
Die Zeit endet, wenn:
Die ASP.NET Core-Handlerpipeline die Ausführung beendet hat.
Alle Antwortdaten gesendet wurden.
Die Kontextdatenstrukturen für die Anforderung verworfen werden.
Bei Verwendung von OpenTelemetry werden die Standardbuckets für diese Metrik auf „[ 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 ]“ festgelegt.
Ab .NET 8.0 verfügbar
Metrik: http.server.active_requests
Name
Instrument Typ
Einheit (UCUM)
Beschreibung
http.server.active_requests
UpDownCounter
{request}
Misst die Anzahl der gleichzeitigen HTTP-Anforderungen, die gerade in Bearbeitung sind.
attribute
type
Beschreibung
Beispiele
Anwesenheit
http.request.method
Zeichenfolge
HTTP-Anforderungsmethode. [1]
GET
; POST
; HEAD
Always
url.scheme
Zeichenfolge
Die URI-Schema -Komponente, die das verwendete Protokoll identifiziert.
http
; https
Always
Ab .NET 8.0 verfügbar
Microsoft.AspNetCore.Routing
Die Microsoft.AspNetCore.Routing
-Metriken melden Informationen zum Routing von HTTP-Anforderungen an ASP.NET Core-Endpunkte:
Metrik: aspnetcore.routing.match_attempts
Name
Instrument Typ
Einheit (UCUM)
Beschreibung
aspnetcore.routing.match_attempts
Leistungsindikator
{match_attempt}
Anzahl der Anforderungen, für die eine Zuordnung zu einem Endpunkt versucht wurde.
attribute
type
Beschreibung
Beispiele
Anwesenheit
aspnetcore.routing.match_status
Zeichenfolge
Übereinstimmungsergebnis
success
; failure
Always
aspnetcore.routing.is_fallback_route
boolean
Ein Wert, der angibt, ob die übereinstimmende Route eine Fallbackroute ist.
True
Wenn eine Route erfolgreich abgeglichen wurde.
http.route
Zeichenfolge
Die übereinstimmende Route
{controller}/{action}/{id?}
Wenn eine Route erfolgreich abgeglichen wurde.
Ab .NET 8.0 verfügbar
Microsoft.AspNetCore.Diagnostics
Die Microsoft.AspNetCore.Diagnostics
-Metriken melden Diagnoseinformationen aus ASP.NET Core-Middleware für die Fehlerbehandlung :
Metrik: aspnetcore.diagnostics.exceptions
Name
Instrument Typ
Einheit (UCUM)
Beschreibung
aspnetcore.diagnostics.exceptions
Leistungsindikator
{exception}
Anzahl der Ausnahmen, die von der Middleware für die Ausnahmebehandlung erfasst wurden.
attribute
type
Beschreibung
Beispiele
Anwesenheit
aspnetcore.diagnostics.exception.result
Zeichenfolge
Ergebnis der ASP.NET Core Middleware-Ausnahmebehandlung
handled
; unhandled
Always
aspnetcore.diagnostics.handler.type
Zeichenfolge
Vollständiger Typname der IExceptionHandler
-Implementierung, die die Ausnahme verarbeitet hat.
Contoso.MyHandler
Wenn die Ausnahme von diesem Handler verarbeitet wurde.
exception.type
Zeichenfolge
Vollständiger Name des Ausnahmetyps.
System.OperationCanceledException
; Contoso.MyException
Always
Ab .NET 8.0 verfügbar
Microsoft.AspNetCore.RateLimiting
Die Microsoft.AspNetCore.RateLimiting
-Metriken melden Information zur Ratenbegrenzung aus der ASP.NET Core-Middleware zur Ratenbegrenzung :
Metrik: aspnetcore.rate_limiting.active_request_leases
Name
Instrument Typ
Einheit (UCUM)
Beschreibung
aspnetcore.rate_limiting.active_request_leases
UpDownCounter
{request}
Anzahl der Anforderungen, die derzeit auf dem Server aktiv sind und für die eine Ratenbegrenzungs-Lease festgelegt wurde.
attribute
type
Beschreibung
Beispiele
Anwesenheit
aspnetcore.rate_limiting.policy
Zeichenfolge
Name der Richtlinie zur Ratenbegrenzung.
fixed
; sliding
; token
Wenn der übereinstimmende Endpunkt für die Anforderung eine Richtlinie zur Ratenbegrenzung hatte.
Ab .NET 8.0 verfügbar
Metrik: aspnetcore.rate_limiting.request_lease.duration
attribute
type
Beschreibung
Beispiele
Anwesenheit
aspnetcore.rate_limiting.policy
Zeichenfolge
Name der Richtlinie zur Ratenbegrenzung.
fixed
; sliding
; token
Wenn der übereinstimmende Endpunkt für die Anforderung eine Richtlinie zur Ratenbegrenzung hatte.
Ab .NET 8.0 verfügbar
Metrik: aspnetcore.rate_limiting.queued_requests
Name
Instrument Typ
Einheit (UCUM)
Beschreibung
aspnetcore.rate_limiting.queued_requests
UpDownCounter
{request}
Die Anzahl der Anforderungen, die derzeit in die Warteschlange gestellt wurden, um eine Ratenbegrenzungs-Lease zu erhalten.
attribute
type
Beschreibung
Beispiele
Anwesenheit
aspnetcore.rate_limiting.policy
Zeichenfolge
Name der Richtlinie zur Ratenbegrenzung.
fixed
; sliding
; token
Wenn der übereinstimmende Endpunkt für die Anforderung eine Richtlinie zur Ratenbegrenzung hatte.
Ab .NET 8.0 verfügbar
Metrik: aspnetcore.rate_limiting.request.time_in_queue
attribute
type
Beschreibung
Beispiele
Anwesenheit
aspnetcore.rate_limiting.policy
Zeichenfolge
Name der Richtlinie zur Ratenbegrenzung.
fixed
; sliding
; token
Wenn der übereinstimmende Endpunkt für die Anforderung eine Richtlinie zur Ratenbegrenzung hatte.
aspnetcore.rate_limiting.result
Zeichenfolge
Das Ergebnis der Ratenbegrenzung zeigt an, ob die Lease erhalten wurde oder nicht. In diesem Fall enthält es einen Ablehnungsgrund.
acquired
; request_canceled
Always
Ab .NET 8.0 verfügbar
Metrik: aspnetcore.rate_limiting.requests
Name
Instrument Typ
Einheit (UCUM)
Beschreibung
aspnetcore.rate_limiting.requests
Leistungsindikator
{request}
Die Anzahl der Anforderungen, die versucht haben, eine Ratenbegrenzungs-Lease zu erhalten.
attribute
type
Beschreibung
Beispiele
Anwesenheit
aspnetcore.rate_limiting.policy
Zeichenfolge
Name der Richtlinie zur Ratenbegrenzung.
fixed
; sliding
; token
Wenn der übereinstimmende Endpunkt für die Anforderung eine Richtlinie zur Ratenbegrenzung hatte.
aspnetcore.rate_limiting.result
Zeichenfolge
Das Ergebnis der Ratenbegrenzung zeigt an, ob die Lease erhalten wurde oder nicht. In diesem Fall enthält es einen Ablehnungsgrund.
acquired
; request_canceled
Always
Ab .NET 8.0 verfügbar
Die Microsoft.AspNetCore.HeaderParsing
-Metriken melden Informationen zur ASP.NET Core-Headeranalyse :
Name
Instrument Typ
Einheit (UCUM)
Beschreibung
aspnetcore.header_parsing.parse_errors
Leistungsindikator
{parse_error}
Anzahl der Fehler, die beim Parsen von HTTP-Anforderungsheadern aufgetreten sind.
attribute
type
Beschreibung
Beispiele
Anwesenheit
aspnetcore.header_parsing.header.name
Zeichenfolge
Der Headername.
Content-Type
Always
error.type
Zeichenfolge
Die Fehlermeldung.
Unable to parse media type value.
Always
Ab .NET 8.0 verfügbar
Die Metrik wird nur für HTTP-Anforderungsheader-Parser ausgegeben, die das Zwischenspeichern unterstützen.
Name
Instrument Typ
Einheit (UCUM)
Beschreibung
aspnetcore.header_parsing.cache_accesses
Leistungsindikator
{cache_access}
Anzahl der Zugriffe auf einen Cache für geparste Header-Werte.
attribute
type
Beschreibung
Beispiele
Anwesenheit
aspnetcore.header_parsing.header.name
Zeichenfolge
Der Headername.
Content-Type
Always
aspnetcore.header_parsing.cache_access.type
Zeichenfolge
Ein Wert, der angibt, ob der Wert des Headers im Cache gefunden wurde oder nicht.
Hit
; Miss
Always
Ab .NET 8.0 verfügbar
Microsoft.AspNetCore.Server.Kestrel
Die Microsoft.AspNetCore.Server.Kestrel
-Metriken melden HTTP-Verbindungsinformationen vom ASP.NET Core-Kestrel-Webserver :
Metrik: kestrel.active_connections
Name
Instrument Typ
Einheit (UCUM)
Beschreibung
kestrel.active_connections
UpDownCounter
{connection}
Die Anzahl der Verbindungen, die gerade auf dem Server aktiv sind.
attribute
type
Beschreibung
Beispiele
Anwesenheit
network.transport
Zeichenfolge
OSI-Transportschicht oder Prozessübergreifende Kommunikationsmethode .
tcp
; unix
Always
network.type
Zeichenfolge
OSI-Netzwerkschicht oder Nicht-OSI-Entsprechung.
ipv4
; ipv6
Wenn der Datentransport tcp
oder udp
ist.
server.address
Zeichenfolge
Der Domänenname der Serveradresse, wenn er ohne Reverse-DNS-Lookup verfügbar ist; andernfalls die IP-Adresse oder der Socket-Name der Unix-Domain.
example.com
Always
server.port
INT
Die Portnummer des Servers
80
; 8080
; 443
Wenn der Datentransport tcp
oder udp
ist.
Ab .NET 8.0 verfügbar
Metrik: kestrel.connection.duration
attribute
type
Beschreibung
Beispiele
Anwesenheit
error.type
Zeichenfolge
Beschreibt einen Fehlertyp, mit dem die Verbindung beendet wurde, oder der nicht behandelte Ausnahmetyp, der während der Verbindungspipeline ausgelöst wurde. Bekannte Verbindungsfehler finden Sie in den Semantikkonventionen für Kestrel-Webservermetriken .
connection_reset
; invalid_request_headers
; System.OperationCanceledException
Wenn die Verbindung mit einem bekannten Fehler beendet wurde oder eine Ausnahme ausgelöst wurde.
network.protocol.name
Zeichenfolge
OSI-Anwendungsschicht oder nicht-OSI-Entsprechung.
http
; web_sockets
Always
network.protocol.version
Zeichenfolge
Version des in network.protocol.name
angegebenen Protokolls.
1.1
; 2
Always
network.transport
Zeichenfolge
OSI-Transportschicht oder Prozessübergreifende Kommunikationsmethode .
tcp
; unix
Always
network.type
Zeichenfolge
OSI-Netzwerkschicht oder Nicht-OSI-Entsprechung.
ipv4
; ipv6
Wenn der Datentransport tcp
oder udp
ist.
server.address
Zeichenfolge
Der Domänenname der Serveradresse, wenn er ohne Reverse-DNS-Lookup verfügbar ist; andernfalls die IP-Adresse oder der Socket-Name der Unix-Domain.
example.com
Always
server.port
INT
Die Portnummer des Servers
80
; 8080
; 443
Wenn der Datentransport tcp
oder udp
ist.
tls.protocol.version
Zeichenfolge
Die TLS-Protokollversion.
1.2
; 1.3
Ob die Verbindung mit TLS gesichert ist.
Da diese Metrik die Verbindungsdauer nachverfolgt und im Idealfall HTTP-Verbindungen für mehrere Anforderungen verwendet werden, sollten die Buckets länger sein als die für die Anforderungsdauer verwendeten Buckets. Mithilfe von „[ 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 300 ]“ wird beispielsweise ein oberer Bucket von 5 Minuten angegeben.
Ab .NET 9 wird der error.type
Attributwert auf den bekannten Fehlertyp festgelegt, wenn eine Verbindung mit einem bekannten Fehler endet. Bekannte Verbindungsfehler finden Sie in den Semantikkonventionen für Kestrel-Webservermetriken .
Verfügbar ab: .NET 8.
Metrik: kestrel.rejected_connections
Name
Instrument Typ
Einheit (UCUM)
Beschreibung
kestrel.rejected_connections
Leistungsindikator
{connection}
Die Anzahl der vom Server abgelehnten Verbindungen.
attribute
type
Beschreibung
Beispiele
Anwesenheit
network.transport
Zeichenfolge
OSI-Transportschicht oder Prozessübergreifende Kommunikationsmethode .
tcp
; unix
Always
network.type
Zeichenfolge
OSI-Netzwerkschicht oder Nicht-OSI-Entsprechung.
ipv4
; ipv6
Wenn der Datentransport tcp
oder udp
ist.
server.address
Zeichenfolge
Der Domänenname der Serveradresse, wenn er ohne Reverse-DNS-Lookup verfügbar ist; andernfalls die IP-Adresse oder der Socket-Name der Unix-Domain.
example.com
Always
server.port
INT
Die Portnummer des Servers
80
; 8080
; 443
Wenn der Datentransport tcp
oder udp
ist.
Verbindungen werden abgewiesen, wenn die derzeit aktive Anzahl den mit MaxConcurrentConnections
konfigurierten Wert überschreitet.
Ab .NET 8.0 verfügbar
Metrik: kestrel.queued_connections
Name
Instrument Typ
Einheit (UCUM)
Beschreibung
kestrel.queued_connections
UpDownCounter
{connection}
Die Anzahl der Verbindungen, die sich derzeit in Warteschlangen befinden und auf ihren Start warten.
attribute
type
Beschreibung
Beispiele
Anwesenheit
network.transport
Zeichenfolge
OSI-Transportschicht oder Prozessübergreifende Kommunikationsmethode .
tcp
; unix
Always
network.type
Zeichenfolge
OSI-Netzwerkschicht oder Nicht-OSI-Entsprechung.
ipv4
; ipv6
Wenn der Datentransport tcp
oder udp
ist.
server.address
Zeichenfolge
Der Domänenname der Serveradresse, wenn er ohne Reverse-DNS-Lookup verfügbar ist; andernfalls die IP-Adresse oder der Socket-Name der Unix-Domain.
example.com
Always
server.port
INT
Die Portnummer des Servers
80
; 8080
; 443
Wenn der Datentransport tcp
oder udp
ist.
Ab .NET 8.0 verfügbar
Metrik: kestrel.queued_requests
Name
Instrument Typ
Einheit (UCUM)
Beschreibung
kestrel.queued_requests
UpDownCounter
{request}
Die Anzahl der HTTP-Anforderungen auf Multiplex-Verbindungen (HTTP/2 und HTTP/3), die sich derzeit in der Warteschlange befinden und auf ihren Start warten.
attribute
type
Beschreibung
Beispiele
Anwesenheit
network.protocol.name
Zeichenfolge
OSI-Anwendungsschicht oder nicht-OSI-Entsprechung.
http
; web_sockets
Always
network.protocol.version
Zeichenfolge
Version des in network.protocol.name
angegebenen Protokolls.
1.1
; 2
Always
network.transport
Zeichenfolge
OSI-Transportschicht oder Prozessübergreifende Kommunikationsmethode .
tcp
; unix
Always
network.type
Zeichenfolge
OSI-Netzwerkschicht oder Nicht-OSI-Entsprechung.
ipv4
; ipv6
Wenn der Datentransport tcp
oder udp
ist.
server.address
Zeichenfolge
Der Domänenname der Serveradresse, wenn er ohne Reverse-DNS-Lookup verfügbar ist; andernfalls die IP-Adresse oder der Socket-Name der Unix-Domain.
example.com
Always
server.port
INT
Die Portnummer des Servers
80
; 8080
; 443
Wenn der Datentransport tcp
oder udp
ist.
Ab .NET 8.0 verfügbar
Metrik: kestrel.upgraded_connections
Name
Instrument Typ
Einheit (UCUM)
Beschreibung
kestrel.upgraded_connections
UpDownCounter
{connection}
Die Anzahl der Verbindungen, die derzeit aktualisiert werden (WebSockets).
attribute
type
Beschreibung
Beispiele
Anwesenheit
network.transport
Zeichenfolge
OSI-Transportschicht oder Prozessübergreifende Kommunikationsmethode .
tcp
; unix
Always
network.type
Zeichenfolge
OSI-Netzwerkschicht oder Nicht-OSI-Entsprechung.
ipv4
; ipv6
Wenn der Datentransport tcp
oder udp
ist.
server.address
Zeichenfolge
Der Domänenname der Serveradresse, wenn er ohne Reverse-DNS-Lookup verfügbar ist; andernfalls die IP-Adresse oder der Socket-Name der Unix-Domain.
example.com
Always
server.port
INT
Die Portnummer des Servers
80
; 8080
; 443
Wenn der Datentransport tcp
oder udp
ist.
Der Zähler verfolgt nur HTTP/1.1-Verbindungen nach.
Ab .NET 8.0 verfügbar
Metrik: kestrel.tls_handshake.duration
attribute
type
Beschreibung
Beispiele
Anwesenheit
error.type
Zeichenfolge
Vollständiger Name des Ausnahmetyps.
System.OperationCanceledException
; Contoso.MyException
Ob eine Ausnahme ausgelöst wurde.
network.transport
Zeichenfolge
OSI-Transportschicht oder Prozessübergreifende Kommunikationsmethode .
tcp
; unix
Always
network.type
Zeichenfolge
OSI-Netzwerkschicht oder Nicht-OSI-Entsprechung.
ipv4
; ipv6
Wenn der Datentransport tcp
oder udp
ist.
server.address
Zeichenfolge
Der Domänenname der Serveradresse, wenn er ohne Reverse-DNS-Lookup verfügbar ist; andernfalls die IP-Adresse oder der Socket-Name der Unix-Domain.
example.com
Always
server.port
INT
Die Portnummer des Servers
80
; 8080
; 443
Wenn der Datentransport tcp
oder udp
ist.
tls.protocol.version
Zeichenfolge
Die TLS-Protokollversion.
1.2
; 1.3
Ob die Verbindung mit TLS gesichert ist.
Bei Verwendung von OpenTelemetry werden die Standardbuckets für diese Metrik auf „[ 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 ]“ festgelegt.
Ab .NET 8.0 verfügbar
Metrik: kestrel.active_tls_handshakes
Name
Instrument Typ
Einheit (UCUM)
Beschreibung
kestrel.active_tls_handshakes
UpDownCounter
{handshake}
Die Anzahl der TLS-Handshakes, die derzeit auf dem Server ausgeführt werden.
attribute
type
Beschreibung
Beispiele
Anwesenheit
network.transport
Zeichenfolge
OSI-Transportschicht oder Prozessübergreifende Kommunikationsmethode .
tcp
; unix
Always
network.type
Zeichenfolge
OSI-Netzwerkschicht oder Nicht-OSI-Entsprechung.
ipv4
; ipv6
Wenn der Datentransport tcp
oder udp
ist.
server.address
Zeichenfolge
Der Domänenname der Serveradresse, wenn er ohne Reverse-DNS-Lookup verfügbar ist; andernfalls die IP-Adresse oder der Socket-Name der Unix-Domain.
example.com
Always
server.port
INT
Die Portnummer des Servers
80
; 8080
; 443
Wenn der Datentransport tcp
oder udp
ist.
Ab .NET 8.0 verfügbar
Microsoft.AspNetCore.Http.Connections
Die Microsoft.AspNetCore.Http.Connections
-Metriken melden Verbindungsinformationen von ASP.NET Core SignalR :
Metrik: signalr.server.connection.duration
attribute
type
Beschreibung
Beispiele
Anwesenheit
signalr.connection.status
Zeichenfolge
Der SignalR HTTP-Verbindungsabschlussstatus.
app_shutdown
; timeout
Always
signalr.transport
Zeichenfolge
SignalR-Datentransporttyp
web_sockets
; long_polling
Always
Ab .NET 8.0 verfügbar
Wert
Beschreibung
normal_closure
Die Verbindung wurde ordnungsgemäß geschlossen.
timeout
Die Verbindung wurde aufgrund eines Timeouts geschlossen.
app_shutdown
Die Verbindung wurde geschlossen, da die App heruntergefahren wird.
signalr.transport
ist einer der folgenden Werte:
Da diese Metrik die Verbindungsdauer nachverfolgt und SignalR-Verbindungen im Idealfall dauerhaft sind, sollten die Buckets länger sein als die für die Anforderungsdauer verwendeten Buckets. Mithilfe von „[0, 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 300]“ wird beispielsweise ein oberer Bucket von 5 Minuten angegeben.
Ab .NET 8.0 verfügbar
Metrik: signalr.server.active_connections
Name
Instrument Typ
Einheit (UCUM)
Beschreibung
signalr.server.active_connections
UpDownCounter
{connection}
Die Anzahl der Verbindungen, die gerade auf dem Server aktiv sind.
attribute
type
Beschreibung
Beispiele
Anwesenheit
signalr.connection.status
Zeichenfolge
Der SignalR HTTP-Verbindungsabschlussstatus.
app_shutdown
; timeout
Always
signalr.transport
Zeichenfolge
SignalR-Datentransporttyp
web_sockets
; long_polling
Always
Ab .NET 8.0 verfügbar