• 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

     

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

     

     

      

      想要更快更方便的了解相关知识,可以关注微信公众号 
     

     

     

  • 相关阅读:
    Python 安装、循环语句、数据类型(一)
    Python 字符、整型、列表字典等操作(二)
    JAVA实现文章的上一篇下一篇
    什么是公钥、私钥、密码、助记词
    XSS跨站网络攻击
    区块链相关知识
    冷钱包
    .NET 后台提交POST请求
    邮件的发送
    数据库中字段类型对应的C#中的数据类型
  • 原文地址:https://www.cnblogs.com/ljknlb/p/15883809.html
Copyright © 2020-2023  润新知