1.APM工具的選取 Apm監測工具很多,這裡選用網上比較火的一款Skywalking。 Skywalking是一個應用性能監控(APM)系統,Skywalking分為服務端Oap、管理界面UI、以及嵌入到程式中的探針Agent部分,大概工作流程就是在程式中添加探針採集各種數據發送給服務端保存,然後 ...
1.APM工具的選取
Apm監測工具很多,這裡選用網上比較火的一款Skywalking。 Skywalking是一個應用性能監控(APM)系統,Skywalking分為服務端Oap、管理界面UI、以及嵌入到程式中的探針Agent部分,大概工作流程就是在程式中添加探針採集各種數據發送給服務端保存,然後在UI界面可以看到收集過來的各種監測數據,來完成它的核心使命:性能監控和分散式調用鏈追蹤能力。下圖是skywalking官方的一個圖,也可以說明這三者之間的關聯關係
2.服務端(OAP)和界面(UI)的安裝
這裡直接在apache地址:http://skywalking.apache.org/downloads/ 下載了一個6.6.0版本的zip文件,由於之前在本地的windows上安裝過,發現安裝包裡面有兩個啟動文件,分別為:startup.bat和startup.sh,分別用於window上啟動和linux啟動,這裡我直接將之前下載好的上傳到linux上來安裝。



nameSpace: ${SW_NAMESPACE:"exceptionless"} clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9300}需要註意的是:第一個SW_NAMESPACE需要與ElasticSearch配置的cluster_name名稱一致 啟動skywalking會占用四個埠:8080,10800,11800,12800,由於我本機安裝過apollo,8080ui埠已經被占用,所以這裡我必須要先修改UI界面使用的8080埠才能啟動它。 開始修改UI界面使用的8080埠(如果你的8080埠並沒有被占用,可以跳過,不用修改) 回到配置目錄的上一級:cd .. 可以看到一個webapp的文件夾






3.安裝探針(Agent)採集數據
由於Skywalking本身是採用java編寫的,所以SkyApm-dotnet這個項目就是專門為 .NET 開發的探針,目前支持 ASP.NET Core 以及 ASP.NET,下麵我們將SkyApm-dotnet無侵入式的集成到.Net Core實現的微服務項目中 第一步:使用下麵的命令來進行 Agent 的安裝,這裡據說需要以管理員身份運行dotnet tool install -g SkyAPM.DotNet.CLI
第二步:添加環境變數,可以直接在launchSettings.json文件中添加以下代碼來設置
"environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development", "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore", "SKYWALKING__SERVICENAME": "Demo.MicroServer.UserService" }
第三步:在程式中安裝NuGet包:SkyAPM.Agent.AspNetCore
第四步:在應用程式根目錄下使用以下命令生成skyapm.json的配置文件,[service name]替換為服務的名稱,[server]替換為Skywalking安裝的計器ip
dotnet skyapm config [service name] [server]:11800
執行完成之後可以看到目錄下麵已經生成了一個skyapm.json的文件,將其屬性複製到輸出目錄設置為如果較新則複製,我這裡是用之前發佈在github上的微服務框架中的一個實例來測試的,所有代碼均已上傳,需要的可以通過頁面又上角Github地址獲取代碼
4.採集數據並查看
在Swagger中隨便調用幾個介面來測試數據的採集情況,然後到UI界面查看數據,流程順利的話,可以看到數據已經都有採集到
基本工作都已經完成,這個裡面還有很多玩法,快動手試試吧。