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
Vollständiger Name des Ausnahmetyps.
System.OperationCanceledException
; Contoso.MyException
Ob 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 8.0 verfügbar
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