dotnet中的counter

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dotnet中的counter相关的知识,希望对你有一定的参考价值。

打造一个完善的软件产品,准确完整实现业务是第一步,再有就是有优秀的性能,稳定的运行。为了能量化性能指标,需要利用工具,来收集这些数据,以便对产品作出代码级调整。

先说一下.net中带一个全局工具:dotnet-counters,它是一个性能监视工具,用于临时运行监视和初级性能调查它可以对运行中的dotnet程序监控,对于监控指标的收集,可以采用实时监控(montitor),也可以指定文件收集(collect)。

可以用下面的命令查看本地安装的所有dotnet tools

dotnet tool list --global

我本地的结果:

如果没有安装dotnet-counters可以用下面的命令安装

dotnet tool install --global dotnet-counters

查看运行的dotnet程序

dotnet-counters ps

我的显示结果,可以看到应用的进程ID,应用名称,所在路径

查看可以收集的计数器信息

dotnet-counters list

输出了可以监控的指标,关于这些指标,后面再细说

.net 5的可收集计数器信息

dotnet-counters list --runtime-version 5.0

收集监控指标

dotnet-counters collect -n webapi

counter.csv收集到的监控指标数据,之后都是间隔一定时间的重复项目

选项
描述
-p|--process-id <PID>要从中收集计数器数据的进程的 ID
-n|--name <name>要从中收集计数器数据的进程的名称。
--diagnostic-port要创建的诊断端口的名称。
--refresh-interval <seconds>更新显示的计数器之间延迟的秒数
--counters <COUNTERS>计数器的逗号分隔列表。
--format <csv|json>要导出的格式。当前可用的格式:csv 和 json。
-o|--output <output>输出文件的名称。
-- <command>可执行命令,直接运行就用并且监控:dotnet-counters monitor --refresh-interval 1 -- dotnet WebAPI.dll

实时监控指标

dotnet-counters monitor -n webapi --refresh-interval 3

每隔3s刷新一次指标

选项
描述
-p|--process-id <PID>要从中收集计数器数据的进程的 ID
-n|--name <name>要从中收集计数器数据的进程的名称。
--diagnostic-port要创建的诊断端口的名称。
--refresh-interval <seconds>更新显示的计数器之间延迟的秒数
--counters <COUNTERS>计数器的逗号分隔列表。
-- <command>可执行命令,直接运行就用并且监控:dotnet-counters monitor --refresh-interval 1 -- dotnet WebAPI.dll

注意:

windows下使用--diagnostic-port方法,拿dotnet应用webapi.dll举例

1、在一个命令行里输入 

dotnet-counters monitor --diagnostic-port webapi.app

会提示如下信息:

Waiting for connection on webapi.app

Start an application with the following environment variable: DOTNET_DiagnosticPorts=webapi.app

2、在一个新的命令行里,用命令

set DOTNET_DiagnosticPorts=webapi.app

再启动webapi应用

dotnet webapi.dll

会看到第一个命令工具开始监控:

以上是关于dotnet中的counter的主要内容,如果未能解决你的问题,请参考以下文章

dotnet中的counters说明

dotnet中的counters说明

.NET Core 如何调试 CPU 爆高?

当 dotnet-monitor 遇上 Prometheus, 是种什么样的体验?

dotnet 世界猜测 随机数的小测试

css中的counter计数器