Metrics tích hợp sẵn trong ASP.NET Core
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:
http.server.request.durationhttp.server.active_requests
Metric: http.server.request.duration
| Tên | Loại Instrument | Đơn vị (UCUM) | Mô tả |
|---|
http.server.request.duration | Histogram | s | Đo thời lượng của inbound HTTP request. |
| Thuộc tính | Kiểu | Mô tả | Ví dụ | Hiện diện |
|---|
http.route | string | Route được khớp. | {controller}/{action}/{id?} | Nếu có. |
error.type | string | Mô tả lớp lỗi mà thao tác kết thúc với. | timeout; name_resolution_error; 500 | Nếu request kết thúc với lỗi. |
http.request.method | string | Phương thức HTTP request. | GET; POST; HEAD | Luôn luôn |
http.response.status_code | int | Status code của HTTP response. | 200 | Nếu đã gửi. |
network.protocol.version | string | Phiên bản của giao thức được chỉ định trong network.protocol.name. | 3.1.1 | Luôn luôn |
url.scheme | string | Thành phần URI scheme xác định giao thức được sử dụng. | http; https | Luôn luôn |
aspnetcore.request.is_unhandled | Boolean | True khi request không được xử lý bởi application pipeline. | true | Nế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:
- Đã phân tích đủ HTTP request headers trên inbound network stream để xác định request mới.
- Đã khởi tạo các cấu trúc dữ liệu context như
HttpContext.
Thời gian kết thúc khi:
- Handler pipeline của ASP.NET Core đã hoàn thành thực thi.
- Tất cả dữ liệu response đã được gửi.
- Các cấu trúc dữ liệu context cho request đang được dispose.
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ên | Loại Instrument | Đơn vị (UCUM) | Mô tả |
|---|
http.server.active_requests | UpDownCounter | {request} | Đo số lượng HTTP request đồng thời hiện đang được xử lý. |
| Thuộc tính | Kiểu | Mô tả | Ví dụ | Hiện diện |
|---|
http.request.method | string | Phương thức HTTP request. | GET; POST; HEAD | Luôn luôn |
url.scheme | string | Thành phần URI scheme xác định giao thức được sử dụng. | http; https | Luô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:
aspnetcore.routing.match_attempts
Metric: aspnetcore.routing.match_attempts
| Tên | Loại Instrument | Đơn vị (UCUM) | Mô tả |
|---|
aspnetcore.routing.match_attempts | Counter | {match_attempt} | Số lượng request đã được thử khớp với một endpoint. |
| Thuộc tính | Kiểu | Mô tả | Ví dụ | Hiện diện |
|---|
aspnetcore.routing.match_status | string | Kết quả khớp | success; failure | Luôn luôn |
aspnetcore.routing.is_fallback_route | boolean | Giá trị cho biết route được khớp có phải là fallback route không. | True | Nếu route được khớp thành công. |
http.route | string | Route đượ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:
aspnetcore.diagnostics.exceptions
Metric: aspnetcore.diagnostics.exceptions
| Tên | Loại Instrument | Đơn vị (UCUM) | Mô tả |
|---|
aspnetcore.diagnostics.exceptions | Counter | {exception} | Số lượng exception được bắt bởi exception handling middleware. |
| Thuộc tính | Kiểu | Mô tả | Ví dụ | Hiện diện |
|---|
aspnetcore.diagnostics.exception.result | string | Kết quả xử lý exception của ASP.NET Core middleware | handled; unhandled | Luôn luôn |
aspnetcore.diagnostics.handler.type | string | Tên đầy đủ của kiểu IExceptionHandler đã xử lý exception. | Contoso.MyHandler | Nếu exception được xử lý bởi handler này. |
exception.type | string | Tên đầy đủ của kiểu exception. | System.OperationCanceledException; Contoso.MyException | Luô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:
aspnetcore.rate_limiting.active_request_leasesaspnetcore.rate_limiting.request_lease.durationaspnetcore.rate_limiting.queued_requestsaspnetcore.rate_limiting.request.time_in_queueaspnetcore.rate_limiting.requests
Metric: aspnetcore.rate_limiting.active_request_leases
| Tên | Loại Instrument | Đơn vị (UCUM) | Mô tả |
|---|
aspnetcore.rate_limiting.active_request_leases | UpDownCounter | {request} | Số lượng request hiện đang active trên server và đang giữ rate limiting lease. |
| Thuộc tính | Kiểu | Mô tả | Ví dụ | Hiện diện |
|---|
aspnetcore.rate_limiting.policy | string | Tên chính sách rate limiting. | fixed; sliding; token | Nếu endpoint được khớp có chính sách rate-limiting. |
Metric: aspnetcore.rate_limiting.request_lease.duration
| Tên | Loại Instrument | Đơn vị (UCUM) | Mô tả |
|---|
aspnetcore.rate_limiting.request_lease.duration | Histogram | s | Thời lượng của rate limiting lease được giữ bởi request trên server. |
| Thuộc tính | Kiểu | Mô tả | Ví dụ | Hiện diện |
|---|
aspnetcore.rate_limiting.policy | string | Tên chính sách rate limiting. | fixed; sliding; token | Nếu endpoint được khớp có chính sách rate-limiting. |
Metric: aspnetcore.rate_limiting.queued_requests
| Tên | Loại Instrument | Đơn vị (UCUM) | Mô tả |
|---|
aspnetcore.rate_limiting.queued_requests | UpDownCounter | {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ên | Loại Instrument | Đơn vị (UCUM) | Mô tả |
|---|
aspnetcore.rate_limiting.request.time_in_queue | Histogram | s | Thời gian request bị giữ trong hàng đợi chờ lấy rate limiting lease. |
| Thuộc tính | Kiểu | Mô tả | Ví dụ | Hiện diện |
|---|
aspnetcore.rate_limiting.policy | string | Tên chính sách rate limiting. | fixed; sliding; token | Nếu endpoint được khớp có chính sách rate-limiting. |
aspnetcore.rate_limiting.result | string | Kết quả rate limiting cho biết lease đã được lấy hay chứa lý do từ chối. | acquired; request_canceled | Luôn luôn |
Metric: aspnetcore.rate_limiting.requests
| Tên | Loại Instrument | Đơn vị (UCUM) | Mô tả |
|---|
aspnetcore.rate_limiting.requests | Counter | {request} | Số lượng request đã cố gắng lấy rate limiting lease. |
| Thuộc tính | Kiểu | Mô tả | Ví dụ | Hiện diện |
|---|
aspnetcore.rate_limiting.policy | string | Tên chính sách rate limiting. | fixed; sliding; token | Nếu endpoint được khớp có chính sách rate-limiting. |
aspnetcore.rate_limiting.result | string | Kết quả rate limiting cho biết lease đã được lấy hay chứa lý do từ chối. | acquired; request_canceled | Luô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:
kestrel.active_connectionskestrel.connection.durationkestrel.rejected_connectionskestrel.queued_connectionskestrel.queued_requestskestrel.upgraded_connectionskestrel.tls_handshake.durationkestrel.active_tls_handshakes
Metric: kestrel.active_connections
| Tên | Loại Instrument | Đơn vị (UCUM) | Mô tả |
|---|
kestrel.active_connections | UpDownCounter | {connection} | Số lượng kết nối hiện đang active trên server. |
| Thuộc tính | Kiểu | Mô tả | Ví dụ | Hiện diện |
|---|
network.transport | string | Lớp transport OSI hoặc phương thức IPC. | tcp; unix | Luôn luôn |
network.type | string | Lớp mạng OSI hoặc tương đương không phải OSI. | ipv4; ipv6 | Nếu transport là tcp hoặc udp. |
server.address | string | Tê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.com | Luôn luôn |
server.port | int | Số port server | 80; 8080; 443 | Nếu transport là tcp hoặc udp. |
Metric: kestrel.connection.duration
| Tên | Loại Instrument | Đơn vị (UCUM) | Mô tả |
|---|
kestrel.connection.duration | Histogram | s | Thờ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ên | Loại Instrument | Đơn vị (UCUM) | Mô tả |
|---|
kestrel.rejected_connections | Counter | {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ên | Loại Instrument | Đơn vị (UCUM) | Mô tả |
|---|
kestrel.queued_connections | UpDownCounter | {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ên | Loại Instrument | Đơn vị (UCUM) | Mô tả |
|---|
kestrel.queued_requests | UpDownCounter | {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ên | Loại Instrument | Đơn vị (UCUM) | Mô tả |
|---|
kestrel.upgraded_connections | UpDownCounter | {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ên | Loại Instrument | Đơn vị (UCUM) | Mô tả |
|---|
kestrel.tls_handshake.duration | Histogram | s | Thời lượng của TLS handshake trên server. |
Metric: kestrel.active_tls_handshakes
| Tên | Loại Instrument | Đơn vị (UCUM) | Mô tả |
|---|
kestrel.active_tls_handshakes | UpDownCounter | {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:
signalr.server.connection.durationsignalr.server.active_connections
Metric: signalr.server.connection.duration
| Tên | Loại Instrument | Đơn vị (UCUM) | Mô tả |
|---|
signalr.server.connection.duration | Histogram | s | Thời lượng kết nối trên server. |
| Thuộc tính | Kiểu | Mô tả | Ví dụ | Hiện diện |
|---|
signalr.connection.status | string | Trạng thái đóng kết nối HTTP SignalR. | app_shutdown; timeout | Luôn luôn |
signalr.transport | string | Loại transport SignalR | web_sockets; long_polling | Luôn luôn |
Giá trị signalr.connection.status:
| Giá trị | Mô tả |
|---|
normal_closure | Kết nối được đóng bình thường. |
timeout | Kết nối bị đóng do timeout. |
app_shutdown | Kết nối bị đóng vì ứng dụng đang shutdown. |
signalr.transport là một trong:
| Giá trị | Mô tả |
|---|
server_sent_events | Server-sent events |
long_polling | Long Polling |
web_sockets | WebSocket |
Metric: signalr.server.active_connections
| Tên | Loại Instrument | Đơn vị (UCUM) | Mô tả |
|---|
signalr.server.active_connections | UpDownCounter | {connection} | Số lượng kết nối hiện đang active trên server. |
Các metrics Microsoft.AspNetCore.HeaderParsing báo cáo thông tin về ASP.NET Core header parsing (phân tích header):
aspnetcore.header_parsing.parse_errorsaspnetcore.header_parsing.cache_accesses
| Tên | Loại Instrument | Đơn vị (UCUM) | Mô tả |
|---|
aspnetcore.header_parsing.parse_errors | Counter | {parse_error} | Số lượng lỗi xảy ra khi phân tích HTTP request headers. |
| Thuộc tính | Kiểu | Mô tả | Ví dụ | Hiện diện |
|---|
aspnetcore.header_parsing.header.name | string | Tên header. | Content-Type | Luôn luôn |
error.type | string | Thông báo lỗi. | Unable to parse media type value. | Luôn luôn |
Metric này chỉ được phát ra cho các HTTP request header parser hỗ trợ caching.
| Tên | Loại Instrument | Đơn vị (UCUM) | Mô tả |
|---|
aspnetcore.header_parsing.cache_accesses | Counter | {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ính | Kiểu | Mô tả | Ví dụ | Hiện diện |
|---|
aspnetcore.header_parsing.header.name | string | Tên header. | Content-Type | Luôn luôn |
aspnetcore.header_parsing.cache_access.type | string | Giá trị cho biết giá trị header có được tìm thấy trong cache hay không. | Hit; Miss | Luôn luôn |