.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
Time paused by GC (total-pause-time-by-gc GC 暂停程序执行的总时间 .NET 8
Gen 0 GC Budget (gen-0-gc-budget 第 0 代内存预算 .NET 8

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