.NET 运行时和库实现并发布几个 EventCounters,可用于识别和诊断各种性能问题。 通过本文,你可了解可用于监视这些计数器的提供程序及其描述。
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
Method Jitted Count (method-jitted-count)
JIT 编译的方法数
.NET 5
GC Committed Bytes (gc-committed-bytes)
由 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 堆栈发布。
计数器
说明
首次提供于
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
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
System.Net.NameResolution 计数器
以下计数器跟踪与 DNS 查找相关的指标。
计数器
说明
首次提供于
DNS Lookups Requested (dns-lookups-requested)
自进程启动以来请求的 DNS 查找数
.NET 5
Average DNS Lookup Duration (dns-lookups-duration)
DNS 查找所用的平均时间
.NET 5
System.Net.Security 计数器
以下计数器跟踪与传输层安全协议相关的指标。
计数器
说明
首次提供于
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 计数器
以下计数器跟踪与 Socket 相关的指标。
计数器
说明
首次提供于
Outgoing Connections Established (outgoing-connections-established)
自进程启动以来建立的传出连接总数
.NET 5
Incoming Connections Established (incoming-connections-established)
自进程启动以来建立的传入连接总数
.NET 5
Bytes Received (bytes-received)
自进程启动以来收到的字节总数
.NET 5
Bytes Sent (bytes-sent)
自进程启动以来发送的字节总数
.NET 5
Datagrams Received (datagrams-received)
自流程启动以来收到的数据报总数
.NET 5
Datagrams Sent (datagrams-sent)
自流程启动以来发送的数据报总数
.NET 5