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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 支持c#的分表分库组件-Ctrip DA
- 下一篇: DDD与批量操作