您好,登錄后才能下訂單哦!
本篇文章為大家展示了在微服務(wù)框架Demo.MicroServer中怎樣添加SkyWalking+SkyApm-dotnet分布式鏈路追蹤系統(tǒng),內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
代碼地址:
GitHub地址:https://github.com/PeyShine/Demo.MicroServer
Apm監(jiān)測(cè)工具很多,這里選用網(wǎng)上比較火的一款Skywalking。
Skywalking是一個(gè)應(yīng)用性能監(jiān)控(APM)系統(tǒng),Skywalking分為服務(wù)端Oap、管理界面UI、以及嵌入到程序中的探針Agent部分,大概工作流程就是在程序中添加探針采集各種數(shù)據(jù)發(fā)送給服務(wù)端保存,然后在UI界面可以看到收集過(guò)來(lái)的各種監(jiān)測(cè)數(shù)據(jù),來(lái)完成它的核心使命:性能監(jiān)控和分布式調(diào)用鏈追蹤能力。下圖是skywalking官方的一個(gè)圖,也可以說(shuō)明這三者之間的關(guān)聯(lián)關(guān)系
1.服務(wù)端(OAP)和界面(UI)的安裝
這里直接在apache地址:http://skywalking.apache.org/downloads/ 下載了一個(gè)6.6.0版本的zip文件,由于之前在本地的windows上安裝過(guò),發(fā)現(xiàn)安裝包里面有兩個(gè)啟動(dòng)文件,分別為:startup.bat和startup.sh,分別用于window上啟動(dòng)和linux啟動(dòng),這里我直接將之前下載好的上傳到linux上來(lái)安裝。
上傳后解壓縮,就會(huì)得到以下截圖的幾個(gè)文件
進(jìn)入到config配置目錄下面,有一個(gè)名稱叫application.yml的文件
對(duì)這個(gè)配置文件進(jìn)行編輯 vim application.yml
我們直接定位到數(shù)據(jù)存儲(chǔ)部分,也就是節(jié)點(diǎn)storage,官方文檔里面也有說(shuō)明,為了方便快速入門(mén),配置文件默認(rèn)采用的是H2存儲(chǔ),但是推薦使用ElasticSearch存儲(chǔ),由于之前我安裝過(guò)Exceptionless,在這臺(tái)機(jī)器上已經(jīng)安裝過(guò)elasticsearch(如果沒(méi)有安裝過(guò)可以網(wǎng)上找下,有很多這方面的文章),所以我這里將H2部分注釋掉,然后將elasticsearch部分放開(kāi),并修改紅色方框里的兩個(gè)配置文件:
nameSpace: ${SW_NAMESPACE:"exceptionless"}clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9300}
需要注意的是:第一個(gè)SW_NAMESPACE需要與ElasticSearch配置的cluster_name名稱一致
啟動(dòng)skywalking會(huì)占用四個(gè)端口:8080,10800,11800,12800,由于我本機(jī)安裝過(guò)apollo,8080ui端口已經(jīng)被占用,所以這里我必須要先修改UI界面使用的8080端口才能啟動(dòng)它。
開(kāi)始修改UI界面使用的8080端口(如果你的8080端口并沒(méi)有被占用,可以跳過(guò),不用修改)
回到配置目錄的上一級(jí):cd ..
可以看到一個(gè)webapp的文件夾
進(jìn)入這個(gè)目錄:cd webapp/
然后對(duì)webapp.yml文件進(jìn)行修改
這里我將原來(lái)server界面下面的port從8080改到8088,然后保存
配置文件修改完了,開(kāi)始啟動(dòng)skywalking的服務(wù)端和UI界面,啟動(dòng)腳本放在目錄:apache-skywalking-apm-bin/bin 里面
上面有說(shuō)到startup.bat和startup.sh分別用在windows上和linux上啟動(dòng),這里用./startup.sh
啟動(dòng)命令執(zhí)行完成之后可以看到OAP和Web兩個(gè)項(xiàng)目啟動(dòng)成功的提示,也就是我們說(shuō)的服務(wù)端和UI界面。
驗(yàn)證一下,通過(guò)配置的ip+8088端口(如果沒(méi)有修改則是默認(rèn)的8080)來(lái)訪問(wèn)一下界面,如圖:
至此,我們準(zhǔn)備工作做完了,下面我們?cè)诔绦蛑邪惭b探針,來(lái)采集數(shù)據(jù).
2.安裝探針(Agent)采集數(shù)據(jù)
由于Skywalking本身是采用java編寫(xiě)的,所以SkyApm-dotnet這個(gè)項(xiàng)目就是專門(mén)為 .NET 開(kāi)發(fā)的探針,目前支持 ASP.NET Core 以及 ASP.NET,下面我們將SkyApm-dotnet無(wú)侵入式的集成到.Net Core實(shí)現(xiàn)的微服務(wù)項(xiàng)目中
第一步:使用下面的命令來(lái)進(jìn)行 Agent 的安裝,這里據(jù)說(shuō)需要以管理員身份運(yùn)行
dotnet tool install -g SkyAPM.DotNet.CLI
第二步:添加環(huán)境變量,可以直接在launchSettings.json文件中添加以下代碼來(lái)設(shè)置
"environmentVariables": {"ASPNETCORE_ENVIRONMENT": "Development","ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore","SKYWALKING__SERVICENAME": "Demo.MicroServer.UserService" }
第三步:在程序中安裝NuGet包:SkyAPM.Agent.AspNetCore
第四步:在應(yīng)用程序根目錄下使用以下命令生成skyapm.json的配置文件,[service name]替換為服務(wù)的名稱,[server]替換為Skywalking安裝的計(jì)器ip
dotnet skyapm config [service name] [server]:11800
執(zhí)行完成之后可以看到目錄下面已經(jīng)生成了一個(gè)skyapm.json的文件,將其屬性復(fù)制到輸出目錄設(shè)置為如果較新則復(fù)制,我這里是在發(fā)布在github上的微服務(wù)框架中的一個(gè)實(shí)例來(lái)測(cè)試的,所有代碼均已上傳,需要的可以通過(guò)文章開(kāi)始的Github地址獲取代碼(歡迎star)
3.采集數(shù)據(jù)并查看
在Swagger中隨便調(diào)用幾個(gè)接口來(lái)測(cè)試數(shù)據(jù)的采集情況,然后到UI界面查看數(shù)據(jù)
流程順利的話,可以看到數(shù)據(jù)已經(jīng)都有采集到
上述內(nèi)容就是在微服務(wù)框架Demo.MicroServer中怎樣添加SkyWalking+SkyApm-dotnet分布式鏈路追蹤系統(tǒng),你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。