本文介绍使用 System.Diagnostics.Metrics API 生成的 ASP.NET Core 的内置指标。 有关基于较旧 EventCounters API 的指标列表,请参阅 “可用计数器”。
有关如何收集、报告、扩充和测试 ASP.NET 核心指标的信息,请参阅 ASP.NET 核心指标
Microsoft.AspNetCore.Hosting
指标 Microsoft.AspNetCore.Hosting
报告有关 ASP.NET Core 收到的 HTTP 请求的高级信息:
指标:http.server.request.duration
特征 |
类型 |
说明 |
例子 |
状态 |
http.route |
字符串 |
匹配的路由。 |
{controller}/{action}/
{id?} |
如果可用。 |
error.type |
字符串 |
描述操作结束的错误类。 |
timeout ;name_resolution_error ;500 |
如果请求已以错误结束。 |
http.request.method |
字符串 |
HTTP 请求方法。 |
GET ;POST ;HEAD |
始终 |
http.response.status_code |
整数 (int) |
HTTP 响应状态代码。 |
200 |
如果发送了一个。 |
network.protocol.version |
字符串 |
中指定的 network.protocol.name 协议的版本。 |
3.1.1 |
始终 |
url.scheme |
字符串 |
标识已用协议的 URI 方案 组件。 |
http ;https |
始终 |
aspnetcore.request.is_unhandled |
布尔值 |
如果应用程序管道未处理请求,则为 True。 |
true |
如果请求未处理。 |
在 ASP.NET Core 的托管层测量的入站 HTTP 请求所用的时间。 基础 Web 主机具有以下功能后开始时间度量:
- 充分分析入站网络流上的 HTTP 请求标头,以标识新请求。
- 初始化上下文数据结构,如 HttpContext.
时间结束时间:
- ASP.NET 核心处理程序管道已完成执行。
- 已发送所有响应数据。
- 正在释放请求的上下文数据结构。
使用 OpenTelemetry 时,此指标的默认存储桶设置为 [ 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 ]。
指标:http.server.active_requests
特征 |
类型 |
说明 |
例子 |
状态 |
http.request.method |
字符串 |
HTTP 请求方法。 [1] |
GET ;POST ;HEAD |
始终 |
url.scheme |
字符串 |
标识已用协议的 URI 方案 组件。 |
http ;https |
始终 |
.
Microsoft.AspNetCore.Routing
指标 Microsoft.AspNetCore.Routing
报告有关 将 HTTP 请求路由 到 ASP.NET 核心终结点的信息:
指标:aspnetcore.routing.match_attempts
特征 |
类型 |
说明 |
例子 |
状态 |
aspnetcore.routing.match_status |
字符串 |
匹配结果 |
success ;failure |
始终 |
aspnetcore.routing.is_fallback_route |
布尔型 |
一个值,该值指示匹配的路由是否为回退路由。 |
True |
如果已成功匹配路由。 |
http.route |
字符串 |
匹配的路由 |
{controller}/{action}/
{id?} |
如果已成功匹配路由。 |
.
Microsoft.AspNetCore.Diagnostics
指标 Microsoft.AspNetCore.Diagnostics
报告 来自 ASP.NET 核心错误处理中间件的诊断信息:
指标:aspnetcore.diagnostics.exceptions
特征 |
类型 |
说明 |
例子 |
状态 |
aspnetcore.diagnostics.exception.result |
字符串 |
ASP.NET 核心异常中间件处理结果 |
handled ;unhandled |
始终 |
aspnetcore.diagnostics.handler.type |
字符串 |
处理异常的实现的 IExceptionHandler 全类型名称。 |
Contoso.MyHandler |
如果此处理程序处理了异常。 |
exception.type |
字符串 |
异常类型的全名。 |
System.OperationCanceledException ;Contoso.MyException |
始终 |
.
Microsoft.AspNetCore.RateLimiting
指标 Microsoft.AspNetCore.RateLimiting
报告 来自 ASP.NET 核心速率限制中间件的速率限制信息:
指标:aspnetcore.rate_limiting.active_request_leases
特征 |
类型 |
说明 |
例子 |
状态 |
aspnetcore.rate_limiting.policy |
字符串 |
速率限制策略名称。 |
fixed ;sliding ;token |
如果请求的匹配终结点具有速率限制策略。 |
.
指标:aspnetcore.rate_limiting.request_lease.duration
特征 |
类型 |
说明 |
例子 |
状态 |
aspnetcore.rate_limiting.policy |
字符串 |
速率限制策略名称。 |
fixed ;sliding ;token |
如果请求的匹配终结点具有速率限制策略。 |
.
指标:aspnetcore.rate_limiting.queued_requests
特征 |
类型 |
说明 |
例子 |
状态 |
aspnetcore.rate_limiting.policy |
字符串 |
速率限制策略名称。 |
fixed ;sliding ;token |
如果请求的匹配终结点具有速率限制策略。 |
.
指标:aspnetcore.rate_limiting.request.time_in_queue
特征 |
类型 |
说明 |
例子 |
状态 |
aspnetcore.rate_limiting.policy |
字符串 |
速率限制策略名称。 |
fixed ;sliding ;token |
如果请求的匹配终结点具有速率限制策略。 |
aspnetcore.rate_limiting.result |
字符串 |
速率限制结果显示是获取租约还是包含拒绝原因。 |
acquired ;request_canceled |
始终 |
.
指标:aspnetcore.rate_limiting.requests
特征 |
类型 |
说明 |
例子 |
状态 |
aspnetcore.rate_limiting.policy |
字符串 |
速率限制策略名称。 |
fixed ;sliding ;token |
如果请求的匹配终结点具有速率限制策略。 |
aspnetcore.rate_limiting.result |
字符串 |
速率限制结果显示是获取租约还是包含拒绝原因。 |
acquired ;request_canceled |
始终 |
.
指标 Microsoft.AspNetCore.HeaderParsing
报告 有关 ASP.NET Core 标头分析的信息:
名字 |
检测类型 |
单位(UCUM) |
说明 |
aspnetcore.header_parsing.parse_errors |
计数器 |
{parse_error} |
分析 HTTP 请求标头时发生的错误数。 |
特征 |
类型 |
说明 |
例子 |
状态 |
aspnetcore.header_parsing.header.name |
字符串 |
标头名称。 |
Content-Type |
始终 |
error.type |
字符串 |
错误消息。 |
Unable to parse media type value. |
始终 |
.
仅针对支持缓存的 HTTP 请求标头分析程序发出指标。
名字 |
检测类型 |
单位(UCUM) |
说明 |
aspnetcore.header_parsing.cache_accesses |
计数器 |
{cache_access} |
访问存储已分析标头值的缓存的次数。 |
特征 |
类型 |
说明 |
例子 |
状态 |
aspnetcore.header_parsing.header.name |
字符串 |
标头名称。 |
Content-Type |
始终 |
aspnetcore.header_parsing.cache_access.type |
字符串 |
一个值,该值指示是否在缓存中找到标头的值。 |
Hit ;Miss |
始终 |
.
Microsoft.AspNetCore.Server.Kestrel
指标 Microsoft.AspNetCore.Server.Kestrel
报告 来自 ASP.NET Core Kestrel Web 服务器的 HTTP 连接信息:
指标:kestrel.active_connections
特征 |
类型 |
说明 |
例子 |
状态 |
network.transport |
字符串 |
OSI 传输层 或 进程间通信方法。 |
tcp ;unix |
始终 |
network.type |
字符串 |
OSI 网络层 或非 OSI 等效项。 |
ipv4 ;ipv6 |
如果传输为 tcp 或 udp 。 |
server.address |
字符串 |
如果没有反向 DNS 查找,则服务器地址域名可用;否则为 IP 地址或 Unix 域套接字名称。 |
example.com |
始终 |
server.port |
整数 (int) |
服务器端口号 |
80 ;8080 ;443 |
如果传输为 tcp 或 udp 。 |
.
指标:kestrel.connection.duration
特征 |
类型 |
说明 |
例子 |
状态 |
error.type |
字符串 |
描述连接结束的错误类型,或连接管道期间引发的未经处理的异常类型。 可以在 Web 服务器指标的语义约定Kestrel中找到已知的连接错误。 |
connection_reset ;invalid_request_headers ;System.OperationCanceledException |
如果连接以已知错误结束或引发异常。 |
network.protocol.name |
字符串 |
OSI 应用程序层或非 OSI 等效层 。 |
http ;web_sockets |
始终 |
network.protocol.version |
字符串 |
中指定的 network.protocol.name 协议的版本。 |
1.1 ;2 |
始终 |
network.transport |
字符串 |
OSI 传输层 或 进程间通信方法。 |
tcp ;unix |
始终 |
network.type |
字符串 |
OSI 网络层 或非 OSI 等效项。 |
ipv4 ;ipv6 |
如果传输为 tcp 或 udp 。 |
server.address |
字符串 |
如果没有反向 DNS 查找,则服务器地址域名可用;否则为 IP 地址或 Unix 域套接字名称。 |
example.com |
始终 |
server.port |
整数 (int) |
服务器端口号 |
80 ;8080 ;443 |
如果传输为 tcp 或 udp 。 |
tls.protocol.version |
字符串 |
TLS 协议版本。 |
1.2 ;1.3 |
如果连接使用 TLS 进行保护。 |
由于此指标正在跟踪连接持续时间,理想情况下,http 连接用于多个请求,因此存储桶应比用于请求持续时间的存储桶长。 例如,使用 [ 0.01、0.02、0.05、0.1、0.2、0.5、1、2、5、10、30、60、120、300] 提供 5 分钟大桶。
当连接以已知错误结尾时,属性值 error.type
将设置为已知错误类型。 可以在 Web 服务器指标的语义约定Kestrel中找到已知的连接错误。
指标:kestrel.rejected_connections
特征 |
类型 |
说明 |
例子 |
状态 |
network.transport |
字符串 |
OSI 传输层 或 进程间通信方法。 |
tcp ;unix |
始终 |
network.type |
字符串 |
OSI 网络层 或非 OSI 等效项。 |
ipv4 ;ipv6 |
如果传输为 tcp 或 udp 。 |
server.address |
字符串 |
如果没有反向 DNS 查找,则服务器地址域名可用;否则为 IP 地址或 Unix 域套接字名称。 |
example.com |
始终 |
server.port |
整数 (int) |
服务器端口号 |
80 ;8080 ;443 |
如果传输为 tcp 或 udp 。 |
当当前活动计数超过配置 MaxConcurrentConnections
的值时,将拒绝连接。
.
指标:kestrel.queued_connections
特征 |
类型 |
说明 |
例子 |
状态 |
network.transport |
字符串 |
OSI 传输层 或 进程间通信方法。 |
tcp ;unix |
始终 |
network.type |
字符串 |
OSI 网络层 或非 OSI 等效项。 |
ipv4 ;ipv6 |
如果传输为 tcp 或 udp 。 |
server.address |
字符串 |
如果没有反向 DNS 查找,则服务器地址域名可用;否则为 IP 地址或 Unix 域套接字名称。 |
example.com |
始终 |
server.port |
整数 (int) |
服务器端口号 |
80 ;8080 ;443 |
如果传输为 tcp 或 udp 。 |
.
指标:kestrel.queued_requests
名字 |
检测类型 |
单位(UCUM) |
说明 |
kestrel.queued_requests |
UpDownCounter |
{request} |
多路复用连接(HTTP/2 和 HTTP/3)上的 HTTP 请求数,这些请求当前已排队并正在等待启动。 |
特征 |
类型 |
说明 |
例子 |
状态 |
network.protocol.name |
字符串 |
OSI 应用程序层或非 OSI 等效层 。 |
http ;web_sockets |
始终 |
network.protocol.version |
字符串 |
中指定的 network.protocol.name 协议的版本。 |
1.1 ;2 |
始终 |
network.transport |
字符串 |
OSI 传输层 或 进程间通信方法。 |
tcp ;unix |
始终 |
network.type |
字符串 |
OSI 网络层 或非 OSI 等效项。 |
ipv4 ;ipv6 |
如果传输为 tcp 或 udp 。 |
server.address |
字符串 |
如果没有反向 DNS 查找,则服务器地址域名可用;否则为 IP 地址或 Unix 域套接字名称。 |
example.com |
始终 |
server.port |
整数 (int) |
服务器端口号 |
80 ;8080 ;443 |
如果传输为 tcp 或 udp 。 |
.
指标:kestrel.upgraded_connections
特征 |
类型 |
说明 |
例子 |
状态 |
network.transport |
字符串 |
OSI 传输层 或 进程间通信方法。 |
tcp ;unix |
始终 |
network.type |
字符串 |
OSI 网络层 或非 OSI 等效项。 |
ipv4 ;ipv6 |
如果传输为 tcp 或 udp 。 |
server.address |
字符串 |
如果没有反向 DNS 查找,则服务器地址域名可用;否则为 IP 地址或 Unix 域套接字名称。 |
example.com |
始终 |
server.port |
整数 (int) |
服务器端口号 |
80 ;8080 ;443 |
如果传输为 tcp 或 udp 。 |
计数器仅跟踪 HTTP/1.1 连接。
.
指标:kestrel.tls_handshake.duration
特征 |
类型 |
说明 |
例子 |
状态 |
error.type |
字符串 |
异常类型的全名。 |
System.OperationCanceledException ;Contoso.MyException |
如果引发了异常。 |
network.transport |
字符串 |
OSI 传输层 或 进程间通信方法。 |
tcp ;unix |
始终 |
network.type |
字符串 |
OSI 网络层 或非 OSI 等效项。 |
ipv4 ;ipv6 |
如果传输为 tcp 或 udp 。 |
server.address |
字符串 |
如果没有反向 DNS 查找,则服务器地址域名可用;否则为 IP 地址或 Unix 域套接字名称。 |
example.com |
始终 |
server.port |
整数 (int) |
服务器端口号 |
80 ;8080 ;443 |
如果传输为 tcp 或 udp 。 |
tls.protocol.version |
字符串 |
TLS 协议版本。 |
1.2 ;1.3 |
如果连接使用 TLS 进行保护。 |
使用 OpenTelemetry 时,此 metic 的默认存储桶设置为 [ 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 ]。
.
指标:kestrel.active_tls_handshakes
特征 |
类型 |
说明 |
例子 |
状态 |
network.transport |
字符串 |
OSI 传输层 或 进程间通信方法。 |
tcp ;unix |
始终 |
network.type |
字符串 |
OSI 网络层 或非 OSI 等效项。 |
ipv4 ;ipv6 |
如果传输为 tcp 或 udp 。 |
server.address |
字符串 |
如果没有反向 DNS 查找,则服务器地址域名可用;否则为 IP 地址或 Unix 域套接字名称。 |
example.com |
始终 |
server.port |
整数 (int) |
服务器端口号 |
80 ;8080 ;443 |
如果传输为 tcp 或 udp 。 |
.
Microsoft.AspNetCore.Http.Connections
指标 Microsoft.AspNetCore.Http.Connections
报告 来自 ASP.NET 核心 SignalR的连接信息:
指标:signalr.server.connection.duration
特征 |
类型 |
说明 |
例子 |
状态 |
signalr.connection.status |
字符串 |
SignalR HTTP 连接关闭状态。 |
app_shutdown ;timeout |
始终 |
signalr.transport |
字符串 |
SignalR 传输类型 |
web_sockets ;long_polling |
始终 |
.
价值 |
说明 |
normal_closure |
连接正常关闭。 |
timeout |
由于超时,连接已关闭。 |
app_shutdown |
连接已关闭,因为应用正在关闭。 |
signalr.transport
是以下项之一:
由于此指标跟踪连接持续时间,理想情况下 SignalR 连接是持久的,因此存储桶应比请求持续时间使用的持续时间长。 例如,使用 [0, 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 300] 提供 5 分钟的高桶。
.
指标:signalr.server.active_connections
特征 |
类型 |
说明 |
例子 |
状态 |
signalr.connection.status |
字符串 |
SignalR HTTP 连接关闭状态。 |
app_shutdown ;timeout |
始终 |
signalr.transport |
字符串 |
SignalR 传输类型 |
web_sockets ;long_polling |
始终 |
.
Microsoft.AspNetCore.Authorization
指标 Microsoft.AspNetCore.Authorization
报告有关 ASP.NET Core 应用中 授权尝试 的信息:
指标:aspnetcore.authorization.attempts
名字 |
检测类型 |
单位(UCUM) |
说明 |
aspnetcore.authorization.attempts
|
计数器 |
{request} |
尝试授权的请求总数。 |
特征 |
类型 |
说明 |
例子 |
状态 |
user.is_authenticated |
布尔型 |
请求是否来自经过身份验证的用户 |
true |
Required |
aspnetcore.authorization.policy |
字符串 |
授权策略的名称。 |
AtLeast21 ;EmployeeOnly |
Conditionally required 如果使用授权策略 |
aspnetcore.authorization.result |
字符串 |
授权是成功还是失败。 |
success ;failure |
Conditionally Required 如果在授权期间未引发异常 |
error.type |
字符串 |
异常类型的全名。 |
System.InvalidOperationException ;Contoso.MyException |
Conditionally Required 如果请求已以错误结束 |
.
Microsoft.AspNetCore.Authentication
指标 Microsoft.AspNetCore.Authentication
报告有关 ASP.NET Core 应用中 的身份验证 的信息:
指标:aspnetcore.authentication.authenticate.duration
名字 |
检测类型 |
单位(UCUM) |
说明 |
aspnetcore.authentication.authenticate.duration
|
直方图 |
s |
请求的身份验证持续时间。 |
特征 |
类型 |
说明 |
例子 |
状态 |
aspnetcore.authentication.result |
字符串 |
身份验证结果。 |
success ;failure ;none ;_OTHER |
Conditionally Required 如果请求未以错误结尾,则为 |
aspnetcore.authentication.scheme |
字符串 |
身份验证方案的名称。 |
Bearer ;Cookies |
Conditionally Required 如果请求未以错误结尾,则为 |
error.type |
字符串 |
异常类型的全名。 |
System.InvalidOperationException ;Contoso.MyException |
Conditionally Required 如果身份验证失败或请求已以错误结束 |
.
指标:aspnetcore.authentication.challenges
名字 |
检测类型 |
单位(UCUM) |
说明 |
aspnetcore.authentication.challenges
|
计数器 |
{request} |
对方案提出质询的总次数。 |
特征 |
类型 |
说明 |
例子 |
状态 |
aspnetcore.authentication.scheme |
字符串 |
身份验证方案的名称。 |
Bearer ;Cookies |
Conditionally Required 如果请求未以错误结尾,则为 |
error.type |
字符串 |
异常类型的全名。 |
System.InvalidOperationException ;Contoso.MyException |
Conditionally Required 如果请求已以错误结束 |
.
指标:aspnetcore.authentication.forbids
名字 |
检测类型 |
单位(UCUM) |
说明 |
aspnetcore.authentication.forbids
|
计数器 |
{request} |
经过身份验证的用户尝试访问其不允许访问的资源的总次数。 |
特征 |
类型 |
说明 |
例子 |
状态 |
aspnetcore.authentication.scheme |
字符串 |
身份验证方案的名称。 |
Bearer ;Cookies |
Conditionally Required 如果请求未以错误结尾,则为 |
error.type |
字符串 |
异常类型的全名。 |
System.InvalidOperationException ;Contoso.MyException |
Conditionally Required 如果请求已以错误结束 |
.
指标:aspnetcore.authentication.sign_ins
名字 |
检测类型 |
单位(UCUM) |
说明 |
aspnetcore.authentication.sign_ins
|
计数器 |
{request} |
主体使用方案登录的总次数。 |
特征 |
类型 |
说明 |
例子 |
状态 |
aspnetcore.authentication.scheme |
字符串 |
身份验证方案的名称。 |
Bearer ;Cookies |
Conditionally Required 如果请求未以错误结尾,则为 |
error.type |
字符串 |
异常类型的全名。 |
System.InvalidOperationException ;Contoso.MyException |
Conditionally Required 如果请求已以错误结束 |
.
指标:aspnetcore.authentication.sign_outs
名字 |
检测类型 |
单位(UCUM) |
说明 |
aspnetcore.authentication.sign_outs
|
计数器 |
{request} |
主体使用方案注销的总次数。 |
特征 |
类型 |
说明 |
例子 |
状态 |
aspnetcore.authentication.scheme |
字符串 |
身份验证方案的名称。 |
Bearer ;Cookies |
Conditionally Required 如果请求未以错误结尾,则为 |
error.type |
字符串 |
异常类型的全名。 |
System.InvalidOperationException ;Contoso.MyException |
Conditionally Required 如果请求已以错误结束 |
本文介绍使用 System.Diagnostics.Metrics API 生成的 ASP.NET Core 的内置指标。 有关基于较旧 EventCounters API 的指标列表,请参阅 “可用计数器”。
Microsoft.AspNetCore.Hosting
指标 Microsoft.AspNetCore.Hosting
报告有关 ASP.NET Core 收到的 HTTP 请求的高级信息:
指标:http.server.request.duration
特征 |
类型 |
说明 |
例子 |
状态 |
http.route |
字符串 |
匹配的路由。 |
{controller}/{action}/{id?} |
如果可用。 |
error.type |
字符串 |
描述操作结束的错误类。 |
timeout ;name_resolution_error ;500 |
如果请求已以错误结束。 |
http.request.method |
字符串 |
HTTP 请求方法。 |
GET ;POST ;HEAD |
始终 |
http.response.status_code |
整数 (int) |
HTTP 响应状态代码。 |
200 |
如果发送了一个。 |
network.protocol.version |
字符串 |
中指定的 network.protocol.name 协议的版本。 |
3.1.1 |
始终 |
url.scheme |
字符串 |
标识已用协议的 URI 方案 组件。 |
http ;https |
始终 |
aspnetcore.request.is_unhandled |
布尔值 |
如果应用程序管道未处理请求,则为 True。 |
true |
如果请求未处理。 |
在 ASP.NET Core 的托管层测量的入站 HTTP 请求所用的时间。 基础 Web 主机具有以下功能后开始时间度量:
- 充分分析入站网络流上的 HTTP 请求标头,以标识新请求。
- 初始化上下文数据结构,如 HttpContext.
时间结束时间:
- ASP.NET 核心处理程序管道已完成执行。
- 已发送所有响应数据。
- 正在释放请求的上下文数据结构。
使用 OpenTelemetry 时,此指标的默认存储桶设置为 [ 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 ]。
指标:http.server.active_requests
特征 |
类型 |
说明 |
例子 |
状态 |
http.request.method |
字符串 |
HTTP 请求方法。 [1] |
GET ;POST ;HEAD |
始终 |
url.scheme |
字符串 |
标识已用协议的 URI 方案 组件。 |
http ;https |
始终 |
Microsoft.AspNetCore.Routing
指标 Microsoft.AspNetCore.Routing
报告有关 将 HTTP 请求路由 到 ASP.NET 核心终结点的信息:
指标:aspnetcore.routing.match_attempts
特征 |
类型 |
说明 |
例子 |
状态 |
aspnetcore.routing.match_status |
字符串 |
匹配结果 |
success ;failure |
始终 |
aspnetcore.routing.is_fallback_route |
布尔型 |
一个值,该值指示匹配的路由是否为回退路由。 |
True |
如果已成功匹配路由。 |
http.route |
字符串 |
匹配的路由 |
{controller}/{action}/{id?} |
如果已成功匹配路由。 |
Microsoft.AspNetCore.Diagnostics
指标 Microsoft.AspNetCore.Diagnostics
报告 来自 ASP.NET 核心错误处理中间件的诊断信息:
指标:aspnetcore.diagnostics.exceptions
特征 |
类型 |
说明 |
例子 |
状态 |
aspnetcore.diagnostics.exception.result |
字符串 |
ASP.NET 核心异常中间件处理结果 |
handled ;unhandled |
始终 |
aspnetcore.diagnostics.handler.type |
字符串 |
处理异常的实现的 IExceptionHandler 全类型名称。 |
Contoso.MyHandler |
如果此处理程序处理了异常。 |
exception.type |
字符串 |
异常类型的全名。 |
System.OperationCanceledException ;Contoso.MyException |
始终 |
Microsoft.AspNetCore.RateLimiting
指标 Microsoft.AspNetCore.RateLimiting
报告 来自 ASP.NET 核心速率限制中间件的速率限制信息:
指标:aspnetcore.rate_limiting.active_request_leases
特征 |
类型 |
说明 |
例子 |
状态 |
aspnetcore.rate_limiting.policy |
字符串 |
速率限制策略名称。 |
fixed ;sliding ;token |
如果请求的匹配终结点具有速率限制策略。 |
指标:aspnetcore.rate_limiting.request_lease.duration
特征 |
类型 |
说明 |
例子 |
状态 |
aspnetcore.rate_limiting.policy |
字符串 |
速率限制策略名称。 |
fixed ;sliding ;token |
如果请求的匹配终结点具有速率限制策略。 |
指标:aspnetcore.rate_limiting.queued_requests
特征 |
类型 |
说明 |
例子 |
状态 |
aspnetcore.rate_limiting.policy |
字符串 |
速率限制策略名称。 |
fixed ;sliding ;token |
如果请求的匹配终结点具有速率限制策略。 |
指标:aspnetcore.rate_limiting.request.time_in_queue
特征 |
类型 |
说明 |
例子 |
状态 |
aspnetcore.rate_limiting.policy |
字符串 |
速率限制策略名称。 |
fixed ;sliding ;token |
如果请求的匹配终结点具有速率限制策略。 |
aspnetcore.rate_limiting.result |
字符串 |
速率限制结果显示是获取租约还是包含拒绝原因。 |
acquired ;request_canceled |
始终 |
指标:aspnetcore.rate_limiting.requests
特征 |
类型 |
说明 |
例子 |
状态 |
aspnetcore.rate_limiting.policy |
字符串 |
速率限制策略名称。 |
fixed ;sliding ;token |
如果请求的匹配终结点具有速率限制策略。 |
aspnetcore.rate_limiting.result |
字符串 |
速率限制结果显示是获取租约还是包含拒绝原因。 |
acquired ;request_canceled |
始终 |
指标 Microsoft.AspNetCore.HeaderParsing
报告 有关 ASP.NET Core 标头分析的信息:
名字 |
检测类型 |
单位(UCUM) |
说明 |
aspnetcore.header_parsing.parse_errors |
计数器 |
{parse_error} |
分析 HTTP 请求标头时发生的错误数。 |
特征 |
类型 |
说明 |
例子 |
状态 |
aspnetcore.header_parsing.header.name |
字符串 |
标头名称。 |
Content-Type |
始终 |
error.type |
字符串 |
错误消息。 |
Unable to parse media type value. |
始终 |
仅针对支持缓存的 HTTP 请求标头分析程序发出指标。
名字 |
检测类型 |
单位(UCUM) |
说明 |
aspnetcore.header_parsing.cache_accesses |
计数器 |
{cache_access} |
访问存储已分析标头值的缓存的次数。 |
特征 |
类型 |
说明 |
例子 |
状态 |
aspnetcore.header_parsing.header.name |
字符串 |
标头名称。 |
Content-Type |
始终 |
aspnetcore.header_parsing.cache_access.type |
字符串 |
一个值,该值指示是否在缓存中找到标头的值。 |
Hit ;Miss |
始终 |
Microsoft.AspNetCore.Server.Kestrel
指标 Microsoft.AspNetCore.Server.Kestrel
报告 来自 ASP.NET Core Kestrel Web 服务器的 HTTP 连接信息:
指标:kestrel.active_connections
特征 |
类型 |
说明 |
例子 |
状态 |
network.transport |
字符串 |
OSI 传输层 或 进程间通信方法。 |
tcp ;unix |
始终 |
network.type |
字符串 |
OSI 网络层 或非 OSI 等效项。 |
ipv4 ;ipv6 |
如果传输为 tcp 或 udp 。 |
server.address |
字符串 |
如果没有反向 DNS 查找,则服务器地址域名可用;否则为 IP 地址或 Unix 域套接字名称。 |
example.com |
始终 |
server.port |
整数 (int) |
服务器端口号 |
80 ;8080 ;443 |
如果传输为 tcp 或 udp 。 |
指标:kestrel.connection.duration
特征 |
类型 |
说明 |
例子 |
状态 |
error.type |
字符串 |
描述连接结束的错误类型,或连接管道期间引发的未经处理的异常类型。 可以在 Web 服务器指标的语义约定Kestrel中找到已知的连接错误。 |
connection_reset ;invalid_request_headers ;System.OperationCanceledException |
如果连接以已知错误结束或引发异常。 |
network.protocol.name |
字符串 |
OSI 应用程序层或非 OSI 等效层 。 |
http ;web_sockets |
始终 |
network.protocol.version |
字符串 |
中指定的 network.protocol.name 协议的版本。 |
1.1 ;2 |
始终 |
network.transport |
字符串 |
OSI 传输层 或 进程间通信方法。 |
tcp ;unix |
始终 |
network.type |
字符串 |
OSI 网络层 或非 OSI 等效项。 |
ipv4 ;ipv6 |
如果传输为 tcp 或 udp 。 |
server.address |
字符串 |
如果没有反向 DNS 查找,则服务器地址域名可用;否则为 IP 地址或 Unix 域套接字名称。 |
example.com |
始终 |
server.port |
整数 (int) |
服务器端口号 |
80 ;8080 ;443 |
如果传输为 tcp 或 udp 。 |
tls.protocol.version |
字符串 |
TLS 协议版本。 |
1.2 ;1.3 |
如果连接使用 TLS 进行保护。 |
由于此指标正在跟踪连接持续时间,理想情况下,http 连接用于多个请求,因此存储桶应比用于请求持续时间的存储桶长。 例如,使用 [ 0.01、0.02、0.05、0.1、0.2、0.5、1、2、5、10、30、60、120、300] 提供 5 分钟大桶。
指标:kestrel.rejected_connections
特征 |
类型 |
说明 |
例子 |
状态 |
network.transport |
字符串 |
OSI 传输层 或 进程间通信方法。 |
tcp ;unix |
始终 |
network.type |
字符串 |
OSI 网络层 或非 OSI 等效项。 |
ipv4 ;ipv6 |
如果传输为 tcp 或 udp 。 |
server.address |
字符串 |
如果没有反向 DNS 查找,则服务器地址域名可用;否则为 IP 地址或 Unix 域套接字名称。 |
example.com |
始终 |
server.port |
整数 (int) |
服务器端口号 |
80 ;8080 ;443 |
如果传输为 tcp 或 udp 。 |
当当前活动计数超过配置 MaxConcurrentConnections
的值时,将拒绝连接。
指标:kestrel.queued_connections
特征 |
类型 |
说明 |
例子 |
状态 |
network.transport |
字符串 |
OSI 传输层 或 进程间通信方法。 |
tcp ;unix |
始终 |
network.type |
字符串 |
OSI 网络层 或非 OSI 等效项。 |
ipv4 ;ipv6 |
如果传输为 tcp 或 udp 。 |
server.address |
字符串 |
如果没有反向 DNS 查找,则服务器地址域名可用;否则为 IP 地址或 Unix 域套接字名称。 |
example.com |
始终 |
server.port |
整数 (int) |
服务器端口号 |
80 ;8080 ;443 |
如果传输为 tcp 或 udp 。 |
指标:kestrel.queued_requests
名字 |
检测类型 |
单位(UCUM) |
说明 |
kestrel.queued_requests |
UpDownCounter |
{request} |
多路复用连接(HTTP/2 和 HTTP/3)上的 HTTP 请求数,这些请求当前已排队并正在等待启动。 |
特征 |
类型 |
说明 |
例子 |
状态 |
network.protocol.name |
字符串 |
OSI 应用程序层或非 OSI 等效层 。 |
http ;web_sockets |
始终 |
network.protocol.version |
字符串 |
中指定的 network.protocol.name 协议的版本。 |
1.1 ;2 |
始终 |
network.transport |
字符串 |
OSI 传输层 或 进程间通信方法。 |
tcp ;unix |
始终 |
network.type |
字符串 |
OSI 网络层 或非 OSI 等效项。 |
ipv4 ;ipv6 |
如果传输为 tcp 或 udp 。 |
server.address |
字符串 |
如果没有反向 DNS 查找,则服务器地址域名可用;否则为 IP 地址或 Unix 域套接字名称。 |
example.com |
始终 |
server.port |
整数 (int) |
服务器端口号 |
80 ;8080 ;443 |
如果传输为 tcp 或 udp 。 |
指标:kestrel.upgraded_connections
特征 |
类型 |
说明 |
例子 |
状态 |
network.transport |
字符串 |
OSI 传输层 或 进程间通信方法。 |
tcp ;unix |
始终 |
network.type |
字符串 |
OSI 网络层 或非 OSI 等效项。 |
ipv4 ;ipv6 |
如果传输为 tcp 或 udp 。 |
server.address |
字符串 |
如果没有反向 DNS 查找,则服务器地址域名可用;否则为 IP 地址或 Unix 域套接字名称。 |
example.com |
始终 |
server.port |
整数 (int) |
服务器端口号 |
80 ;8080 ;443 |
如果传输为 tcp 或 udp 。 |
计数器仅跟踪 HTTP/1.1 连接。
指标:kestrel.tls_handshake.duration
特征 |
类型 |
说明 |
例子 |
状态 |
error.type |
字符串 |
异常类型的全名。 |
System.OperationCanceledException ;Contoso.MyException |
如果引发了异常。 |
network.transport |
字符串 |
OSI 传输层 或 进程间通信方法。 |
tcp ;unix |
始终 |
network.type |
字符串 |
OSI 网络层 或非 OSI 等效项。 |
ipv4 ;ipv6 |
如果传输为 tcp 或 udp 。 |
server.address |
字符串 |
如果没有反向 DNS 查找,则服务器地址域名可用;否则为 IP 地址或 Unix 域套接字名称。 |
example.com |
始终 |
server.port |
整数 (int) |
服务器端口号 |
80 ;8080 ;443 |
如果传输为 tcp 或 udp 。 |
tls.protocol.version |
字符串 |
TLS 协议版本。 |
1.2 ;1.3 |
如果连接使用 TLS 进行保护。 |
使用 OpenTelemetry 时,此 metic 的默认存储桶设置为 [ 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 ]。
指标:kestrel.active_tls_handshakes
特征 |
类型 |
说明 |
例子 |
状态 |
network.transport |
字符串 |
OSI 传输层 或 进程间通信方法。 |
tcp ;unix |
始终 |
network.type |
字符串 |
OSI 网络层 或非 OSI 等效项。 |
ipv4 ;ipv6 |
如果传输为 tcp 或 udp 。 |
server.address |
字符串 |
如果没有反向 DNS 查找,则服务器地址域名可用;否则为 IP 地址或 Unix 域套接字名称。 |
example.com |
始终 |
server.port |
整数 (int) |
服务器端口号 |
80 ;8080 ;443 |
如果传输为 tcp 或 udp 。 |
Microsoft.AspNetCore.Http.Connections
指标 Microsoft.AspNetCore.Http.Connections
报告 来自 ASP.NET 核心 SignalR的连接信息:
指标:signalr.server.connection.duration
特征 |
类型 |
说明 |
例子 |
状态 |
signalr.connection.status |
字符串 |
SignalR HTTP 连接关闭状态。 |
app_shutdown ;timeout |
始终 |
signalr.transport |
字符串 |
SignalR 传输类型 |
web_sockets ;long_polling |
始终 |
价值 |
说明 |
normal_closure |
连接正常关闭。 |
timeout |
由于超时,连接已关闭。 |
app_shutdown |
连接已关闭,因为应用正在关闭。 |
signalr.transport
是以下项之一:
由于此指标跟踪连接持续时间,理想情况下 SignalR 连接是持久的,因此存储桶应比请求持续时间使用的持续时间长。 例如,使用 [0, 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 300] 提供 5 分钟的高桶。
指标:signalr.server.active_connections
特征 |
类型 |
说明 |
例子 |
状态 |
signalr.connection.status |
字符串 |
SignalR HTTP 连接关闭状态。 |
app_shutdown ;timeout |
始终 |
signalr.transport |
字符串 |
SignalR 传输类型 |
web_sockets ;long_polling |
始终 |