SkyWalking開(kāi)源項(xiàng)目由吳晟于2015年創(chuàng)建,同年10月在GitHub上作為個(gè)人項(xiàng)目開(kāi)源。
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),安新企業(yè)網(wǎng)站建設(shè),安新品牌網(wǎng)站建設(shè),網(wǎng)站定制,安新網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,安新網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。SkyWalking項(xiàng)目的核心目標(biāo),是針對(duì)微服務(wù)、Cloud Native、容器化架構(gòu),提供應(yīng)用性能監(jiān)控(APM)和分布式調(diào)用鏈追蹤能力。
2017年11月,SkyWalking社區(qū)正式?jīng)Q定,尋求加入Apache基金會(huì),希望能使項(xiàng)目成為更為開(kāi)放、全球化和強(qiáng)大的APM開(kāi)源產(chǎn)品,并加強(qiáng)來(lái)自社區(qū)的合作和交流。最終實(shí)現(xiàn)構(gòu)建一款功能強(qiáng)大、簡(jiǎn)單易用的開(kāi)源APM產(chǎn)品。
2017年12月8日,Apache軟件基金會(huì)孵化器項(xiàng)目管理委員會(huì) ASF IPMC宣布“SkyWalking全票通過(guò),進(jìn)入Apache孵化器”。
官方版:https://github.com/apache/incubator-skywalking
.Net core Agent + Skywalking
當(dāng)我們用很多服務(wù)時(shí),各個(gè)服務(wù)間的調(diào)用關(guān)系是怎么樣的?各個(gè)服務(wù)單調(diào)用的順序時(shí)間性能怎么樣?服務(wù)出錯(cuò)了,到底是哪個(gè)服務(wù)引起的?這些問(wèn)題我們用什么方案解決呢,以前的方式是各個(gè)系統(tǒng)自己?jiǎn)为?dú)做日志,
出了問(wèn)題從暴出問(wèn)題的服務(wù)開(kāi)始一個(gè)一個(gè)服務(wù)的排查,耗時(shí)耗力,有些日志不全的,還不一定查得出來(lái)。好在現(xiàn)在有Skywalking鏈路追蹤系統(tǒng),可以不用寫(xiě)任何代碼,就追蹤到各個(gè)服務(wù)間的調(diào)用關(guān)系和性能狀態(tài)等。
APM = Application Performance Management,即應(yīng)用性能管理,主要是針對(duì)企業(yè)級(jí)應(yīng)用軟件市場(chǎng),對(duì)企業(yè)系統(tǒng)實(shí)施即時(shí)監(jiān)控,以實(shí)現(xiàn)對(duì)應(yīng)用程序性能管理和故障管理的系統(tǒng)化的解決方案。
APM的覆蓋范圍包括五個(gè)層次的實(shí)現(xiàn):終端用戶體驗(yàn),應(yīng)用架構(gòu)映射,應(yīng)用事務(wù)的分析,深度應(yīng)用診斷,和數(shù)據(jù)分析。
過(guò)去,企業(yè)的IT部門(mén)在收集系統(tǒng)性能參數(shù)時(shí),一般重點(diǎn)關(guān)注為最終用戶提供服務(wù)的硬件組件的利用率,如CPU利用率、內(nèi)存占用、網(wǎng)絡(luò)吞吐量。雖然這種方法也提供了一些寶貴的信息,但卻忽視了最重要的因素:最終用戶的響應(yīng)時(shí)間。
現(xiàn)在,通過(guò)事務(wù)處理過(guò)程監(jiān)測(cè)、模擬等手段,可以真實(shí)測(cè)量用戶響應(yīng)時(shí)間,此外還可以報(bào)告誰(shuí)正在使用某一應(yīng)用、該應(yīng)用的使用頻率以及用戶所進(jìn)行的事務(wù)處理過(guò)程是否成功完成、發(fā)生錯(cuò)誤時(shí)的參數(shù)與堆棧調(diào)用信息、數(shù)據(jù)庫(kù)查詢語(yǔ)句跟蹤等。
本文將從0開(kāi)始搭建兩個(gè)webapi項(xiàng)目,使用Skywalking來(lái)追蹤他們之間的調(diào)用關(guān)系及響應(yīng)時(shí)間。開(kāi)發(fā)環(huán)境為VisualStudio2019
1:安裝Skywalking,可參考:https://www.cnblogs.com/sunyuliang/p/11422576.html,本列中搭建好后的Skywalking服務(wù)器地址為:192.168.150.134
2:打開(kāi)VS創(chuàng)建一個(gè)demo1的webapi項(xiàng)目。 2.1:為項(xiàng)目添加NuGet程序包SkyAPM.Agent.AspNetCore的引用{
"SkyWalking": {
"ServiceName": "Demo01",
"Namespace": "",
"HeaderVersions": [
"sw6"
],
"Sampling": {
"SamplePer3Secs": -1,
"Percentage": -1.0
},
"Logging": {
"Level": "Debug",
"FilePath": "logs/skyapm-{Date}.log"
},
"Transport": {
"Interval": 3000,
"ProtocolVersion": "v6",
"QueueSize": 30000,
"BatchSize": 3000,
"gRPC": {
"Servers": "192.168.150.134:11800",
"Timeout": 10000,
"ConnectTimeout": 10000,
"ReportTimeout": 600000
}
}
}
}
2.3: 將skyapm.json文件的屬性”復(fù)制到輸出目錄“ 修改為 ”如果較新則復(fù)制”
2.4:展開(kāi)項(xiàng)目的Properties,打開(kāi)launchSettings.json文件,在其中的環(huán)境變量中加入 "SKYWALKING__SERVICENAME": "asp-net-core-frontend"
2.5:到目前skywalking就已經(jīng)成功引入到系統(tǒng)中了。接下來(lái)我們來(lái)驗(yàn)證一下是否正常,直接Ctrl+F5啟動(dòng)項(xiàng)目,訪問(wèn)https://localhost:44313/api/values
2.6:訪問(wèn)Skywalking管理后臺(tái)(記得替換一下IP)http://192.168.150.134:8080/trace 。手動(dòng)選一下時(shí)間范圍,結(jié)束時(shí)間選明天(選當(dāng)時(shí)時(shí)間會(huì)搜索不到數(shù)據(jù),不知道是時(shí)區(qū)還是skywalking的bug),點(diǎn)擊搜索??梢钥吹奖敬卧L問(wèn)的追蹤信息已經(jīng)同步到了Skywalking中。
以上單個(gè)系統(tǒng)的追蹤就完成了,接下來(lái)我們?cè)賱?chuàng)建一個(gè)項(xiàng)目,步驟和第2步基本一樣,看看多系統(tǒng)的追蹤,這個(gè)才是Skywalking的價(jià)值所在。
3:另外再打開(kāi)一個(gè)VS創(chuàng)建一個(gè)demo02的webapi項(xiàng)目。 3.1:為項(xiàng)目添加NuGet程序包SkyAPM.Agent.AspNetCore的引用{
"SkyWalking": {
"ServiceName": "Demo02",
"Namespace": "",
"HeaderVersions": [
"sw6"
],
"Sampling": {
"SamplePer3Secs": -1,
"Percentage": -1.0
},
"Logging": {
"Level": "Debug",
"FilePath": "logs/skyapm-{Date}.log"
},
"Transport": {
"Interval": 3000,
"ProtocolVersion": "v6",
"QueueSize": 30000,
"BatchSize": 3000,
"gRPC": {
"Servers": "192.168.150.134:11800",
"Timeout": 10000,
"ConnectTimeout": 10000,
"ReportTimeout": 600000
}
}
}
}
3.3: 將skyapm.json文件的屬性”復(fù)制到輸出目錄“ 修改為 ”如果較新則復(fù)制”
3.4:展開(kāi)項(xiàng)目的Properties,打開(kāi)launchSettings.json文件,在其中的環(huán)境變量中加入 "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore"
3.5:在ValuesController.cs中添加引用: System.Net.Http ,通過(guò)HttpClient依次調(diào)用Demo01的兩個(gè)方法,里面的https://localhost:44313對(duì)應(yīng)為我們的Demo01項(xiàng)目。具體Get方法代碼如下:
// GET api/values [HttpGet]
public async Task<string> Get()
{
var client = new HttpClient();
await client.GetStringAsync("https://localhost:44313/api/values/1");
returnawait client.GetStringAsync("https://localhost:44313/api/values");
}
3.6:Ctrl+F5啟動(dòng)項(xiàng)目,訪問(wèn)http://localhost:21143/api/values
3.7:訪問(wèn)Skywalking管理后臺(tái)(記得替換一下IP)http://192.168.150.134:8080/trace 。手動(dòng)選一下時(shí)間范圍,結(jié)束時(shí)間選明天(選當(dāng)時(shí)時(shí)間會(huì)搜索不到數(shù)據(jù),不知道是時(shí)區(qū)還是skywalking的bug),點(diǎn)擊搜索。可以看到本次訪問(wèn)兩系統(tǒng)單的調(diào)用關(guān)系圖已經(jīng)同步到了Skywalking中
以上多個(gè)系統(tǒng)間的追蹤也就都完成了,完全不用寫(xiě)代碼,配置一下就好了。
文章參考地址:
https://www.jianshu.com/p/3ddd986c7581
https://www.bbsmax.com/A/kvJ3YoQpdg/
分享題目:微服務(wù)-Skywalking監(jiān)控應(yīng)用性能-創(chuàng)新互聯(lián)
文章分享:http://www.rwnh.cn/article22/cepjcc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)站內(nèi)鏈、建站公司、Google、微信小程序、全網(wǎng)營(yíng)銷(xiāo)推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容