.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


__EOF__

本文作者Night-Li
本文链接https://www.cnblogs.com/night-li/p/14102981.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Night-Li  阅读(2771)  评论(21编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
点击右上角即可分享
微信分享提示