.NET Core集成SkyWalking+SkyAPM-dotnet实现分布式链路追踪
SkyWalking是一款APM(应用性能管理),其他的还有Cat、Zipkin、Pinpoint等。
一,SkyWalking安装
打开链接https://archive.apache.org/dist/skywalking,由于目前SkyAPM-dotnet最大仅支持7.0.0,因此最多仅能选择这个版本。
选择此包进行下载,由于7.0.0版本目前还无镜像,下载较慢,可以通过百度网盘的离线下载功能进行下载,速度会快一点。默认占用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.1.0和1.0.0版本,虽然没有报错,但一直没捕捉到链接请求,最后用了0.9.0,有兴趣的博友们可以自己慢慢尝试。
新建配置文件skyapm.json,修改实际的ip地址
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