.NET Core集成SkyWalking+SkyAPM-dotne實現分布式鏈路追蹤


.NET Core集成SkyWalking+SkyAPM-dotnet實現分布式鏈路追蹤

SkyWalking是一款APM(應用性能管理),其他的還有Cat、Zipkin、Pinpoint等。

隨着微服務架構的流行,一次請求會涉及多個服務的調用,並且服務本身也可能會依賴其他服務,整個請求路徑會構成一個調用鏈,當某個節點發生異常時,整個調用鏈的穩定性都會受到影響,SkyWalking可以幫助理解系統行為和分析性能問題。SkyWalking包括了分布式追蹤、性能指標分析、應用和服務依賴分析等。
雖然目前市面許多APM系統,但個人只用過SkyWalking,通過使用 SkyAPM-dotnet,感覺大佬們無私的奉獻。

一,SkyWalking安裝

打開鏈接https://archive.apache.org/dist/skywalking,目前SkyAPM-dotnet最大可支持8.x,圖片是舊的,用的是7.0.0。

選擇此包進行下載,8.x已有鏡像,8.x之前的版本無鏡像,下載較慢,可以通過百度網盤的離線下載功能進行下載,速度會快一點。默認占用8080, 10800, 11800, 12800端口。

下載完成后,解壓,windows下,打開apache-skywalking-apm-bin\bin\startup.bat,會彈出兩個框:

 瀏覽器打開http://localhost:8080/,出現SkyWalking管理界面既視為啟動成功,關閉上面兩框則會關閉SkyWalking服務。

二,.NET Core項目集成SkyAPM-dotnet

新建一個web項目,安裝nuget包SkyAPM.Agent.AspNetCore

在我寫博客的這會,剛剛更新了1.1.0版本,.NET Core 3.1 + 1.0/1.1需要基於SkyWalking 8.x,8.x以前的版本會無法捕捉。

新建配置文件skyapm.json,修改實際的ip地址,基於1.0/1.1需要修改HeaderVersions為sw8,ProtocolVersion為v8

 1 {
 2   "SkyWalking": {
 3     "ServiceName": "asp-net-core-aspnetcore",
 4     "Namespace": "",
 5     "HeaderVersions": [
 6       "sw6"
 7     ],
 8     "Sampling": {
 9       "SamplePer3Secs": -1,
10       "Percentage": -1.0
11     },
12     "Logging": {
13       "Level": "Information",
14       "FilePath": "logs/skyapm-{Date}.log"
15     },
16     "Transport": {
17       "Interval": 3000,
18       "ProtocolVersion": "v6",
19       "QueueSize": 30000,
20       "BatchSize": 3000,
21       "gRPC": {
22         "Servers": "192.168.1.148:11800",
23         "Timeout": 10000,
24         "ConnectTimeout": 10000,
25         "ReportTimeout": 600000
26       }
27     }
28   }
29 }

新增環境變量 "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES":"SkyAPM.Agent.AspNetCore" 

可修改launchSettings.json文件


 也可在Program.cs中配置

 Environment.SetEnvironmentVariable("ASPNETCORE_HOSTINGSTARTUPASSEMBLIES", "SkyAPM.Agent.AspNetCore");

到此,配置完成,啟動項目。

瀏覽器訪問http://localhost:8080/,打開追蹤Tab,時間范圍那有點bug,需要調整下結束時間,不然數據出不來。

 

詳細的各位博友慢慢研究。

附上SkyApm-dotnet示例代碼:https://github.com/SkyAPM/SkyAPM-dotnet/tree/master/sample


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM