?
當我們用很多服務時,各個服務間的調(diào)用關系是怎么樣的?各個服務單調(diào)用的順序\時間性能怎么樣?服務出錯了,到底是哪個服務引起的?這些問題我們用什么方案解決呢,以前的方式是各個系統(tǒng)自己單獨做日志,出了問題從暴出問題的服務開始一個一個服務的排查,耗時耗力,有些日志不全的,還不一定查得出來。好在現(xiàn)在有Skywalking鏈路追蹤系統(tǒng),可以不用寫任何代碼,就追蹤到各個服務間的調(diào)用關系和性能狀態(tài)等。
本文將從0開始搭建兩個webapi項目,使用Skywalking來追蹤他們之間的調(diào)用關系及響應時間。開發(fā)環(huán)境為VisualStudio2019
?
1:安裝Skywalking,可參考:https://www.cnblogs.com/sunyuliang/p/11422576.html
<https://www.cnblogs.com/sunyuliang/p/11422576.html>
,本列中搭建好后的Skywalking服務器地址為:192.168.150.134
? 2:打開VS創(chuàng)建一個demo1的webapi項目。 ? ? ? ?
?2.1:為項目添加NuGet程序包SkyAPM.Agent.AspNetCore的引用? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ?
2.2,在項目根目錄添加skyapm.json文件,并添加下以內(nèi)容,其中的Servers結(jié)點的IP地址根據(jù)實際情況換成自己的服務器IP {
"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文件的屬性”復制到輸出目錄“ 修改為 ”如果較新則復制”
? ? ? ?2.4:展開項目的Properties,打開launchSettings.json文件,在其中的環(huán)境變量中加入?"
SKYWALKING__SERVICENAME": "asp-net-core-frontend"?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
2.5:到目前skywalking就已經(jīng)成功引入到系統(tǒng)中了。接下來我們來驗證一下是否正常,直接Ctrl+F5啟動項目,訪問
https://localhost:44313/api/values <https://localhost:44313/api/values>
?
2.6:訪問Skywalking管理后臺(記得替換一下IP)http://192.168.150.134:8080/trace
<http://192.168.150.134:8080/trace>?。手動選一下時間范圍,結(jié)束時間選明天(
選當時時間會搜索不到數(shù)據(jù),不知道是時區(qū)還是skywalking的bug),點擊搜索??梢钥吹奖敬卧L問的追蹤信息已經(jīng)同步到了Skywalking中。
? ? ? ? ? ?
?
?以上單個系統(tǒng)的追蹤就完成了,接下來我們再創(chuàng)建一個項目,步驟和第2步基本一樣,看看多系統(tǒng)的追蹤,這個才是Skywalking的價值所在。
?
3:另外再打開一個VS創(chuàng)建一個demo02的webapi項目。 ? ? ? ?
?3.1:為項目添加NuGet程序包SkyAPM.Agent.AspNetCore的引用? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ?? ? ? ? ? ? ? ?? ?
3.2,在項目根目錄添加skyapm.json文件,并添加下以內(nèi)容,其中的Servers結(jié)點的IP地址根據(jù)實際情況換成自己的服務器IP。其中ServiceName結(jié)點設置為:Demo02
{ "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文件的屬性”復制到輸出目錄“?修改為 ”如果較新則復制”
? ? ? ?3.4:展開項目的Properties,打開launchSettings.json文件,在其中的環(huán)境變量中加入?"
ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore"?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?
? 3.5:在ValuesController.cs中添加引用:?System.Net.Http
?,通過HttpClient依次調(diào)用Demo01的兩個方法,里面的https://localhost:44313對應為我們的Demo01項目。具體Get方法代碼如下:
? ??
// GET api/values [HttpGet] public async Task<string> Get() { var client = new
HttpClient();await client.GetStringAsync("https://localhost:44313/api/values/1"
);return await client.GetStringAsync("https://localhost:44313/api/values"); }
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?
?
? ? ? ? 3.6:Ctrl+F5啟動項目,訪問http://localhost:21143/api/values
<http://localhost:21143/api/values>
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
?
? 3.7:訪問Skywalking管理后臺(記得替換一下IP)http://192.168.150.134:8080/trace
<http://192.168.150.134:8080/trace>?。手動選一下時間范圍,結(jié)束時間選明天(
選當時時間會搜索不到數(shù)據(jù),不知道是時區(qū)還是skywalking的bug),點擊搜索??梢钥吹奖敬卧L問兩系統(tǒng)單的調(diào)用關系圖已經(jīng)同步到了Skywalking中
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
?
?
?以上多個系統(tǒng)間的追蹤也就都完成了,完全不用寫代碼,配置一下就好了。
?
熱門工具 換一換
感谢您访问我们的网站,您可能还对以下资源感兴趣:
调教肉文小说-国产成本人片免费av-空姐av种子无码-在线观看免费午夜视频-综合久久精品激情-国产成人丝袜视频在线观看软件-大芭区三区四区无码-啊啊好爽啊啊插啊用力啊啊-wanch视频网-国产精品成人a免费观看