您好,登錄后才能下訂單哦!
本篇文章為大家展示了在微服務框架Demo.MicroServer中怎樣添加SkyWalking+SkyApm-dotnet分布式鏈路追蹤系統,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
代碼地址:
GitHub地址:https://github.com/PeyShine/Demo.MicroServer
Apm監測工具很多,這里選用網上比較火的一款Skywalking。
Skywalking是一個應用性能監控(APM)系統,Skywalking分為服務端Oap、管理界面UI、以及嵌入到程序中的探針Agent部分,大概工作流程就是在程序中添加探針采集各種數據發送給服務端保存,然后在UI界面可以看到收集過來的各種監測數據,來完成它的核心使命:性能監控和分布式調用鏈追蹤能力。下圖是skywalking官方的一個圖,也可以說明這三者之間的關聯關系
1.服務端(OAP)和界面(UI)的安裝
這里直接在apache地址:http://skywalking.apache.org/downloads/ 下載了一個6.6.0版本的zip文件,由于之前在本地的windows上安裝過,發現安裝包里面有兩個啟動文件,分別為:startup.bat和startup.sh,分別用于window上啟動和linux啟動,這里我直接將之前下載好的上傳到linux上來安裝。
上傳后解壓縮,就會得到以下截圖的幾個文件
進入到config配置目錄下面,有一個名稱叫application.yml的文件
對這個配置文件進行編輯 vim application.yml
我們直接定位到數據存儲部分,也就是節點storage,官方文檔里面也有說明,為了方便快速入門,配置文件默認采用的是H2存儲,但是推薦使用ElasticSearch存儲,由于之前我安裝過Exceptionless,在這臺機器上已經安裝過elasticsearch(如果沒有安裝過可以網上找下,有很多這方面的文章),所以我這里將H2部分注釋掉,然后將elasticsearch部分放開,并修改紅色方框里的兩個配置文件:
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的文件夾
進入這個目錄:cd webapp/
然后對webapp.yml文件進行修改
這里我將原來server界面下面的port從8080改到8088,然后保存
配置文件修改完了,開始啟動skywalking的服務端和UI界面,啟動腳本放在目錄:apache-skywalking-apm-bin/bin 里面
上面有說到startup.bat和startup.sh分別用在windows上和linux上啟動,這里用./startup.sh
啟動命令執行完成之后可以看到OAP和Web兩個項目啟動成功的提示,也就是我們說的服務端和UI界面。
驗證一下,通過配置的ip+8088端口(如果沒有修改則是默認的8080)來訪問一下界面,如圖:
至此,我們準備工作做完了,下面我們在程序中安裝探針,來采集數據.
2.安裝探針(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地址獲取代碼(歡迎star)
3.采集數據并查看
在Swagger中隨便調用幾個接口來測試數據的采集情況,然后到UI界面查看數據
流程順利的話,可以看到數據已經都有采集到
上述內容就是在微服務框架Demo.MicroServer中怎樣添加SkyWalking+SkyApm-dotnet分布式鏈路追蹤系統,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。