Nguon: Microsoft Learn · .NET 8.0

Metrics tích hợp sẵn trong ASP.NET Core

Nguồn: ASP.NET Core built-in metrics

Bài viết này mô tả các metrics tích hợp sẵn cho ASP.NET Core được tạo ra bằng API System.Diagnostics.Metrics. Để biết danh sách metrics dựa trên API EventCounters cũ hơn, xem Available counters.

Để biết thông tin về cách thu thập, báo cáo, làm phong phú và kiểm thử với ASP.NET Core metrics, xem ASP.NET Core metrics.

Microsoft.AspNetCore.Hosting

Các metrics Microsoft.AspNetCore.Hosting báo cáo thông tin cấp cao về HTTP request nhận bởi ASP.NET Core:

Metric: http.server.request.duration

TênLoại InstrumentĐơn vị (UCUM)Mô tả
http.server.request.durationHistogramsĐo thời lượng của inbound HTTP request.
Thuộc tínhKiểuMô tảVí dụHiện diện
http.routestringRoute được khớp.{controller}/{action}/{id?}Nếu có.
error.typestringMô tả lớp lỗi mà thao tác kết thúc với.timeout; name_resolution_error; 500Nếu request kết thúc với lỗi.
http.request.methodstringPhương thức HTTP request.GET; POST; HEADLuôn luôn
http.response.status_codeintStatus code của HTTP response.200Nếu đã gửi.
network.protocol.versionstringPhiên bản của giao thức được chỉ định trong network.protocol.name.3.1.1Luôn luôn
url.schemestringThành phần URI scheme xác định giao thức được sử dụng.http; httpsLuôn luôn
aspnetcore.request.is_unhandledBooleanTrue khi request không được xử lý bởi application pipeline.trueNếu request không được xử lý.

Thời gian được dùng để xử lý inbound HTTP request được đo tại lớp hosting của ASP.NET Core. Đo thời gian bắt đầu sau khi web host cơ bản:

Thời gian kết thúc khi:

Khi sử dụng OpenTelemetry, các bucket mặc định cho metric này được đặt thành [ 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 ].

Metric: http.server.active_requests

TênLoại InstrumentĐơn vị (UCUM)Mô tả
http.server.active_requestsUpDownCounter{request}Đo số lượng HTTP request đồng thời hiện đang được xử lý.
Thuộc tínhKiểuMô tảVí dụHiện diện
http.request.methodstringPhương thức HTTP request.GET; POST; HEADLuôn luôn
url.schemestringThành phần URI scheme xác định giao thức được sử dụng.http; httpsLuôn luôn

Microsoft.AspNetCore.Routing

Các metrics Microsoft.AspNetCore.Routing báo cáo thông tin về routing (định tuyến) HTTP request đến các ASP.NET Core endpoint:

Metric: aspnetcore.routing.match_attempts

TênLoại InstrumentĐơn vị (UCUM)Mô tả
aspnetcore.routing.match_attemptsCounter{match_attempt}Số lượng request đã được thử khớp với một endpoint.
Thuộc tínhKiểuMô tảVí dụHiện diện
aspnetcore.routing.match_statusstringKết quả khớpsuccess; failureLuôn luôn
aspnetcore.routing.is_fallback_routebooleanGiá trị cho biết route được khớp có phải là fallback route không.TrueNếu route được khớp thành công.
http.routestringRoute được khớp{controller}/{action}/{id?}Nếu route được khớp thành công.

Microsoft.AspNetCore.Diagnostics

Các metrics Microsoft.AspNetCore.Diagnostics báo cáo thông tin diagnostics từ ASP.NET Core error handling middleware:

Metric: aspnetcore.diagnostics.exceptions

TênLoại InstrumentĐơn vị (UCUM)Mô tả
aspnetcore.diagnostics.exceptionsCounter{exception}Số lượng exception được bắt bởi exception handling middleware.
Thuộc tínhKiểuMô tảVí dụHiện diện
aspnetcore.diagnostics.exception.resultstringKết quả xử lý exception của ASP.NET Core middlewarehandled; unhandledLuôn luôn
aspnetcore.diagnostics.handler.typestringTên đầy đủ của kiểu IExceptionHandler đã xử lý exception.Contoso.MyHandlerNếu exception được xử lý bởi handler này.
exception.typestringTên đầy đủ của kiểu exception.System.OperationCanceledException; Contoso.MyExceptionLuôn luôn

Microsoft.AspNetCore.RateLimiting

Các metrics Microsoft.AspNetCore.RateLimiting báo cáo thông tin rate limiting (giới hạn tốc độ) từ ASP.NET Core rate-limiting middleware:

Metric: aspnetcore.rate_limiting.active_request_leases

TênLoại InstrumentĐơn vị (UCUM)Mô tả
aspnetcore.rate_limiting.active_request_leasesUpDownCounter{request}Số lượng request hiện đang active trên server và đang giữ rate limiting lease.
Thuộc tínhKiểuMô tảVí dụHiện diện
aspnetcore.rate_limiting.policystringTên chính sách rate limiting.fixed; sliding; tokenNếu endpoint được khớp có chính sách rate-limiting.

Metric: aspnetcore.rate_limiting.request_lease.duration

TênLoại InstrumentĐơn vị (UCUM)Mô tả
aspnetcore.rate_limiting.request_lease.durationHistogramsThời lượng của rate limiting lease được giữ bởi request trên server.
Thuộc tínhKiểuMô tảVí dụHiện diện
aspnetcore.rate_limiting.policystringTên chính sách rate limiting.fixed; sliding; tokenNếu endpoint được khớp có chính sách rate-limiting.

Metric: aspnetcore.rate_limiting.queued_requests

TênLoại InstrumentĐơn vị (UCUM)Mô tả
aspnetcore.rate_limiting.queued_requestsUpDownCounter{request}Số lượng request hiện đang trong hàng đợi chờ lấy rate limiting lease.

Metric: aspnetcore.rate_limiting.request.time_in_queue

TênLoại InstrumentĐơn vị (UCUM)Mô tả
aspnetcore.rate_limiting.request.time_in_queueHistogramsThời gian request bị giữ trong hàng đợi chờ lấy rate limiting lease.
Thuộc tínhKiểuMô tảVí dụHiện diện
aspnetcore.rate_limiting.policystringTên chính sách rate limiting.fixed; sliding; tokenNếu endpoint được khớp có chính sách rate-limiting.
aspnetcore.rate_limiting.resultstringKết quả rate limiting cho biết lease đã được lấy hay chứa lý do từ chối.acquired; request_canceledLuôn luôn

Metric: aspnetcore.rate_limiting.requests

TênLoại InstrumentĐơn vị (UCUM)Mô tả
aspnetcore.rate_limiting.requestsCounter{request}Số lượng request đã cố gắng lấy rate limiting lease.
Thuộc tínhKiểuMô tảVí dụHiện diện
aspnetcore.rate_limiting.policystringTên chính sách rate limiting.fixed; sliding; tokenNếu endpoint được khớp có chính sách rate-limiting.
aspnetcore.rate_limiting.resultstringKết quả rate limiting cho biết lease đã được lấy hay chứa lý do từ chối.acquired; request_canceledLuôn luôn

Microsoft.AspNetCore.Server.Kestrel

Các metrics Microsoft.AspNetCore.Server.Kestrel báo cáo thông tin kết nối HTTP từ ASP.NET Core Kestrel web server:

Metric: kestrel.active_connections

TênLoại InstrumentĐơn vị (UCUM)Mô tả
kestrel.active_connectionsUpDownCounter{connection}Số lượng kết nối hiện đang active trên server.
Thuộc tínhKiểuMô tảVí dụHiện diện
network.transportstringLớp transport OSI hoặc phương thức IPC.tcp; unixLuôn luôn
network.typestringLớp mạng OSI hoặc tương đương không phải OSI.ipv4; ipv6Nếu transport là tcp hoặc udp.
server.addressstringTên miền địa chỉ server nếu có mà không cần tra cứu DNS ngược; ngược lại, địa chỉ IP hoặc tên Unix domain socket.example.comLuôn luôn
server.portintSố port server80; 8080; 443Nếu transport là tcp hoặc udp.

Metric: kestrel.connection.duration

TênLoại InstrumentĐơn vị (UCUM)Mô tả
kestrel.connection.durationHistogramsThời lượng kết nối trên server.

Vì metric này theo dõi thời lượng kết nối, và lý tưởng là các kết nối http được sử dụng cho nhiều request, các bucket nên dài hơn những bucket được sử dụng cho thời lượng request. Ví dụ, sử dụng [ 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 300] cung cấp bucket trên là 5 phút.

Metric: kestrel.rejected_connections

TênLoại InstrumentĐơn vị (UCUM)Mô tả
kestrel.rejected_connectionsCounter{connection}Số lượng kết nối bị server từ chối.

Kết nối bị từ chối khi số lượng active hiện tại vượt quá giá trị được cấu hình với MaxConcurrentConnections.

Metric: kestrel.queued_connections

TênLoại InstrumentĐơn vị (UCUM)Mô tả
kestrel.queued_connectionsUpDownCounter{connection}Số lượng kết nối hiện đang trong hàng đợi và đang chờ bắt đầu.

Metric: kestrel.queued_requests

TênLoại InstrumentĐơn vị (UCUM)Mô tả
kestrel.queued_requestsUpDownCounter{request}Số lượng HTTP request trên multiplexed connections (HTTP/2 và HTTP/3) hiện đang trong hàng đợi và đang chờ bắt đầu.

Metric: kestrel.upgraded_connections

TênLoại InstrumentĐơn vị (UCUM)Mô tả
kestrel.upgraded_connectionsUpDownCounter{connection}Số lượng kết nối hiện đang được nâng cấp (WebSockets).

Counter này chỉ theo dõi kết nối HTTP/1.1.

Metric: kestrel.tls_handshake.duration

TênLoại InstrumentĐơn vị (UCUM)Mô tả
kestrel.tls_handshake.durationHistogramsThời lượng của TLS handshake trên server.

Metric: kestrel.active_tls_handshakes

TênLoại InstrumentĐơn vị (UCUM)Mô tả
kestrel.active_tls_handshakesUpDownCounter{handshake}Số lượng TLS handshake hiện đang đang xử lý trên server.

Microsoft.AspNetCore.Http.Connections

Các metrics Microsoft.AspNetCore.Http.Connections báo cáo thông tin kết nối từ ASP.NET Core SignalR:

Metric: signalr.server.connection.duration

TênLoại InstrumentĐơn vị (UCUM)Mô tả
signalr.server.connection.durationHistogramsThời lượng kết nối trên server.
Thuộc tínhKiểuMô tảVí dụHiện diện
signalr.connection.statusstringTrạng thái đóng kết nối HTTP SignalR.app_shutdown; timeoutLuôn luôn
signalr.transportstringLoại transport SignalRweb_sockets; long_pollingLuôn luôn

Giá trị signalr.connection.status:

Giá trịMô tả
normal_closureKết nối được đóng bình thường.
timeoutKết nối bị đóng do timeout.
app_shutdownKết nối bị đóng vì ứng dụng đang shutdown.

signalr.transport là một trong:

Giá trịMô tả
server_sent_eventsServer-sent events
long_pollingLong Polling
web_socketsWebSocket

Metric: signalr.server.active_connections

TênLoại InstrumentĐơn vị (UCUM)Mô tả
signalr.server.active_connectionsUpDownCounter{connection}Số lượng kết nối hiện đang active trên server.

Microsoft.AspNetCore.HeaderParsing

Các metrics Microsoft.AspNetCore.HeaderParsing báo cáo thông tin về ASP.NET Core header parsing (phân tích header):

Metric: aspnetcore.header_parsing.parse_errors

TênLoại InstrumentĐơn vị (UCUM)Mô tả
aspnetcore.header_parsing.parse_errorsCounter{parse_error}Số lượng lỗi xảy ra khi phân tích HTTP request headers.
Thuộc tínhKiểuMô tảVí dụHiện diện
aspnetcore.header_parsing.header.namestringTên header.Content-TypeLuôn luôn
error.typestringThông báo lỗi.Unable to parse media type value.Luôn luôn

Metric: aspnetcore.header_parsing.cache_accesses

Metric này chỉ được phát ra cho các HTTP request header parser hỗ trợ caching.

TênLoại InstrumentĐơn vị (UCUM)Mô tả
aspnetcore.header_parsing.cache_accessesCounter{cache_access}Số lần cache lưu trữ các giá trị header đã phân tích được truy cập.
Thuộc tínhKiểuMô tảVí dụHiện diện
aspnetcore.header_parsing.header.namestringTên header.Content-TypeLuôn luôn
aspnetcore.header_parsing.cache_access.typestringGiá trị cho biết giá trị header có được tìm thấy trong cache hay không.Hit; MissLuôn luôn