.NET 中的已知 EventCounters
.NET 运行时和库实现并发布几个 EventCounters,可用于识别和诊断各种性能问题。 通过本文,你可了解可用于监视这些计数器的提供程序及其描述。 如果要使用 .NET 较新的 System.Diagnostics.Metrics API,请转而查看已知的指标参考。
System.Runtime 计数器
以下计数器作为 .NET 运行时(CoreCLR)的一部分发布,并在RuntimeEventSource.cs中维护。
计数器 | 说明 | 首次提供于 |
---|---|---|
% Time in GC since last GC (time-in-gc ) |
自上次 GC 以来 GC 的时间百分比 | .NET Core 3.1 |
Allocation Rate (alloc-rate ) |
每个更新间隔分配的字节数 | .NET Core 3.1 |
CPU Usage (cpu-usage ) |
相对于所有系统 CPU 资源进程的 CPU 使用率百分比 | .NET Core 3.1 |
Exception Count (exception-count ) |
已发生的异常数 | .NET Core 3.1 |
GC Heap Size (gc-heap-size ) |
认为要分配的兆字节数,基于 GC.GetTotalMemory(Boolean) | .NET Core 3.1 |
Gen 0 GC Count (gen-0-gc-count ) |
每个更新间隔发生的第 0 代 GC 次数 | .NET Core 3.1 |
Gen 0 Size (gen-0-size ) |
第 0 代 GC 的字节数 | .NET Core 3.1 |
Gen 1 GC Count (gen-1-gc-count ) |
每个更新间隔发生的第 1 代 GC 次数 | .NET Core 3.1 |
Gen 1 Size (gen-1-size ) |
第 1 代 GC 的字节数 | .NET Core 3.1 |
Gen 2 GC Count (gen-2-gc-count ) |
每个更新间隔发生的第 2 代 GC 次数 | .NET Core 3.1 |
Gen 2 Size (gen-2-size ) |
第 2 代 GC 的字节数 | .NET Core 3.1 |
LOH Size (loh-size ) |
大型对象堆的字节数 | .NET Core 3.1 |
POH Size (poh-size ) |
已固定对象堆的字节数(在 .NET 5 及更高版本中可用) | .NET Core 3.1 |
GC Fragmentation (gc-fragmentation ) |
GC 堆碎片(在 .NET 5 及更高版本中可用) | .NET Core 3.1 |
Monitor Lock Contention Count (monitor-lock-contention-count ) |
尝试锁定监视器时出现争用的次数,基于 Monitor.LockContentionCount | .NET Core 3.1 |
Number of Active Timers (active-timer-count ) |
当前活动的 Timer 实例的计数,基于 Timer.ActiveCount | .NET Core 3.1 |
Number of Assemblies Loaded (assembly-count ) |
在某个时间点加载到进程中的 Assembly 实例的计数 | .NET Core 3.1 |
ThreadPool Completed Work Item Count (threadpool-completed-items-count ) |
迄今为止 ThreadPool 中已处理的工作项数 | .NET Core 3.1 |
ThreadPool Queue Length (threadpool-queue-length ) |
ThreadPool 中当前已加入处理队列的工作项数 | .NET Core 3.1 |
ThreadPool Thread Count (threadpool-thread-count ) |
ThreadPool 中当前存在的线程池线程数,基于 ThreadPool.ThreadCount | .NET Core 3.1 |
Working Set (working-set ) |
在基于 Environment.WorkingSet 的某个时间点映射到进程上下文的物理内存的兆字节数。 | .NET Core 3.1 |
IL Bytes Jitted (il-bytes-jitted ) |
JIT 编译的 IL 的总大小,以字节为单位 | .NET 5 |
Methods Jitted Count (methods-jitted-count ) |
JIT 编译的方法数 | .NET 5 |
GC Committed Bytes (gc-committed ) |
由 GC 所提交的字节数 | .NET 6 |
Microsoft.AspNetCore.Hosting 计数器
以下计数器作为 ASP.NET Core 的一部分发布,并在HostingEventSource.cs中维护。
计数器 | 说明 | 首次提供于 |
---|---|---|
Current Requests (current-requests ) |
已启动但尚未停止的请求总数 | .NET Core 3.1 |
Failed Requests (failed-requests ) |
应用生命周期内发生的失败请求总数 | .NET Core 3.1 |
Request Rate (requests-per-second ) |
每个更新间隔发生的请求数 | .NET Core 3.1 |
Total Requests (total-requests ) |
应用生命周期内发生的请求总数 | .NET Core 3.1 |
Microsoft.AspNetCore.Http.Connections 计数器
以下计数器作为 ASP.NET Core SignalR 的一部分发布,并在HttpConnectionsEventSource.cs中维护。
计数器 | 说明 | 首次提供于 |
---|---|---|
Average Connection Duration (connections-duration ) |
连接的平均持续时间(毫秒) | .NET Core 3.1 |
Current Connections (current-connections ) |
已启动但尚未停止的活动连接数 | .NET Core 3.1 |
Total Connections Started (connections-started ) |
已启动的连接总数 | .NET Core 3.1 |
Total Connections Stopped (connections-stopped ) |
已停止的连接总数 | .NET Core 3.1 |
Total Connections Timed Out (connections-timed-out ) |
已超时的连接总数 | .NET Core 3.1 |
Microsoft-AspNetCore-Server-Kestrel 计数器
以下计数器作为 ASP.NET Core Kestrel Web 服务器的一部分发布,并在KestrelEventSource.cs中维护。
计数器 | 说明 | 首次提供于 |
---|---|---|
Connection Queue Length (connection-queue-length ) |
连接队列的当前长度 | .NET 5 |
Connection Rate (connections-per-second ) |
每个更新间隔与 Web 服务器的连接数 | .NET 5 |
Current Connections (current-connections ) |
到 Web 服务器的当前活动连接数 | .NET 5 |
Current TLS Handshakes (current-tls-handshakes ) |
当前 TLS 握手数 | .NET 5 |
Current Upgraded Requests (WebSockets) (current-upgraded-requests ) |
当前升级请求数 (WebSockets) | .NET 5 |
Failed TLS Handshakes (failed-tls-handshakes ) |
失败的 TLS 握手总数 | .NET 5 |
Request Queue Length (request-queue-length ) |
请求队列的当前长度 | .NET 5 |
TLS Handshake Rate (tls-handshakes-per-second ) |
每个更新间隔的 TLS 握手数 | .NET 5 |
Total Connections (total-connections ) |
到 Web 服务器的连接总数 | .NET 5 |
Total TLS Handshakes (total-tls-handshakes ) |
Web 服务器的 TLS 握手总数 | .NET 5 |
System.Net.Http 计数器
以下计数器由 HTTP 堆栈发布,并在HttpTelemetry.AnyOS.cs中维护。
计数器 | 说明 | 首次提供于 |
---|---|---|
Requests Started (requests-started ) |
自进程启动以来启动的请求数 | .NET 5 |
Requests Started Rate (requests-started-rate ) |
每个更新间隔启动的请求数 | .NET 5 |
Requests Failed (requests-failed ) |
自进程启动以来失败的请求数 | .NET 5 |
Requests Failed Rate (requests-failed-rate ) |
每个更新间隔的失败请求数 | .NET 5 |
Current Requests (current-requests ) |
当前已启动但尚未完成或失败的活动 HTTP 请求数 | .NET 5 |
Current HTTP 1.1 Connections (http11-connections-current-total ) |
当前已启动但尚未完成或失败的 HTTP 1.1 连接数 | .NET 5 |
Current HTTP 2.0 Connections (http20-connections-current-total ) |
当前已启动但尚未完成或失败的 HTTP 2.0 连接数 | .NET 5 |
Current HTTP 3.0 Connections (http30-connections-current-total ) |
当前已启动但尚未完成或失败的 HTTP 3.0 连接数 | .NET 7 |
HTTP 1.1 Requests Queue Duration (http11-requests-queue-duration ) |
HTTP 1.1 请求在请求队列中花费的平均持续时间 | .NET 5 |
HTTP 2.0 Requests Queue Duration (http20-requests-queue-duration ) |
HTTP 2.0 请求在请求队列中花费的平均持续时间 | .NET 5 |
HTTP 3.0 Requests Queue Duration (http30-requests-queue-duration ) |
HTTP 3.0 请求在请求队列中花费的平均持续时间 | .NET 7 |
System.Net.NameResolution 计数器
以下计数器跟踪与 DNS 查找相关的指标,并在NameResolutionTelemetry.cs中进行了管理。
计数器 | 说明 | 首次提供于 |
---|---|---|
DNS Lookups Requested (dns-lookups-requested ) |
自进程启动以来请求的 DNS 查找数 | .NET 5 |
Average DNS Lookup Duration (dns-lookups-duration ) |
DNS 查找所用的平均时间 | .NET 5 |
Current DNS Lookups (current-dns-lookups ) |
当前已启动但尚未完成或失败的 DNS 查找 | .NET 6 |
System.Net.Security 计数器
以下计数器跟踪与传输层安全协议相关的指标,并在NetSecurityTelemetry.cs中受到控制。
计数器 | 说明 | 首次提供于 |
---|---|---|
TLS handshakes completed (tls-handshake-rate ) |
每个更新间隔完成的 TLS 握手数 | .NET 5 |
Total TLS handshakes completed (total-tls-handshakes ) |
自进程启动以来完成的 TLS 握手总数 | .NET 5 |
Current TLS handshakes (current-tls-handshakes ) |
当前已启动但尚未完成的 TLS 握手数 | .NET 5 |
Total TLS handshakes failed (failed-tls-handshakes ) |
自进程启动以来失败的 TLS 握手总数 | .NET 5 |
All TLS Sessions Active (all-tls-sessions-open ) |
任何版本的活动 TLS 会话数 | .NET 5 |
TLS 1.0 Sessions Active (tls10-sessions-open ) |
活动的 TLS 1.0 会话数 | .NET 5 |
TLS 1.1 Sessions Active (tls11-sessions-open ) |
活动的 TLS 1.1 会话数 | .NET 5 |
TLS 1.2 Sessions Active (tls12-sessions-open ) |
活动的 TLS 1.2 会话数 | .NET 5 |
TLS 1.3 Sessions Active (tls13-sessions-open ) |
活动的 TLS 1.3 会话数 | .NET 5 |
TLS Handshake Duration (all-tls-handshake-duration ) |
所有 TLS 握手的平均持续时间 | .NET 5 |
TLS 1.0 Handshake Duration (tls10-handshake-duration ) |
TLS 1.0 握手的平均持续时间 | .NET 5 |
TLS 1.1 Handshake Duration (tls11-handshake-duration ) |
TLS 1.1 握手的平均持续时间 | .NET 5 |
TLS 1.2 Handshake Duration (tls12-handshake-duration ) |
TLS 1.2 握手的平均持续时间 | .NET 5 |
TLS 1.3 Handshake Duration (tls13-handshake-duration ) |
TLS 1.3 握手的平均持续时间 | .NET 5 |
System.Net.Sockets 计数器
以下计数器跟踪与 SocketsTelemetry 中相关的Socket指标并已执行。
计数器 | 说明 | 首次提供于 |
---|---|---|
Outgoing Connections Established (outgoing-connections-established ) |
自进程启动以来建立的传出连接总数 | .NET 5 |
Incoming Connections Established (incoming-connections-established ) |
自进程启动以来建立的传入连接总数 | .NET 5 |
Current Outgoing Connect Attempts (current-outgoing-connect-attempts ) |
当前已启动但尚未完成或失败的传出连接尝试次数 | .NET 7 |
Bytes Received (bytes-received ) |
自进程启动以来收到的字节总数 | .NET 5 |
Bytes Sent (bytes-sent ) |
自进程启动以来发送的字节总数 | .NET 5 |
Datagrams Received (datagrams-received ) |
自流程启动以来收到的数据报总数 | .NET 5 |
Datagrams Sent (datagrams-sent ) |
自流程启动以来发送的数据报总数 | .NET 5 |