Apache SkyWalking 为.NET Core带来开箱即用的分布式追踪和应用性能监控

Posted DotNet

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache SkyWalking 为.NET Core带来开箱即用的分布式追踪和应用性能监控相关的知识,希望对你有一定的参考价值。


来源:Lemon丶

cnblogs.com/liuhaoyang/p/skywalking-dotnet-v02-release.html


在大型网站系统设计中,随着分布式架构,特别是微服务架构的流行,我们将系统解耦成更小的单元,通过不断的添加新的、小的模块或者重用已经有的模块来构建复杂的系统。


随着模块的不断增多,一次请求可能会涉及到十几个甚至几十个服务的协同处理,那么如何准确快速的定位到线上故障和性能瓶颈,便成为我们不得不面对的棘手问题。


为解决分布式架构中复杂的服务定位和性能问题,Google在论文《Dapper, a Large-Scale Distributed Systems Tracing Infrastructure》中提出了分布式跟踪系统的设计和构建思路。


在这样的背景下,Apache SkyWalking创建于2015年,参考Dapper论文实现分布式追踪功能,并逐渐进化为一个完整功能的Application Performance Management系统,用于追踪、监控和诊断大型分布式系统,尤其是容器和云原生下的微服务系统。


今年初我在尝试使用.NET Core构建分布式追踪系统Butterfly时接触到SkyWalking团队,开始和SkyWalking团队合作探索SkyWalking对.NET Core的支持,并于4月发布SkyWalking .NET Core探针的第一个版本,同时我也有幸加入SkyWalking团队共同进行SkyWalking在多语言生态的推动。


在.NET Core探针v0.1版本发布之后,得到了一些同学的尝鲜使用,也得到诸多改进的建议。


经过几周的迭代,SkyWalking .NET Core探针于今天发布v0.2 release,在v0.1的基础上增加了稳定性和HttpClient及数据库驱动的追踪支持。


在使用SkyWalking对.NET Core应用追踪之前,我们需要先部署SkyWalking Collector收集分析Trace和Elasticsearch作为Trace数据存储。



最后我们使用示例项目来演示在.NET Core应用中使用SkyWalking进行追踪和监控,克隆SkyWalking-NetCore项目到本地


git clone https://github.com/OpenSkywalking/skywalking-netcore.git


进入skywalking-netcore目录


cd skywalking-netcore


还原nuget package:


dotnet restore


启动示例项目:


dotnet run -p sample/SkyWalking.Sample.Backend

dotnet run -p sample/SkyWalking.Sample.Frontend


访问示例应用 http://localhost:5001/api/values


打开SkyWalking WebUI即可看到我们的应用监控面板 http://localhost:8080


Dashboard视图



TopologyMap视图


Apache SkyWalking 为.NET Core带来开箱即用的分布式追踪和应用性能监控


Application视图


Apache SkyWalking 为.NET Core带来开箱即用的分布式追踪和应用性能监控


Trace视图


Apache SkyWalking 为.NET Core带来开箱即用的分布式追踪和应用性能监控


TraceDetails视图


Apache SkyWalking 为.NET Core带来开箱即用的分布式追踪和应用性能监控


  • SkyWalking Github Repo: 

    https://github.com/apache/incubator-skywalking


  • SkyWalking-NetCore Github Repo: https://github.com/OpenSkywalking/skywalking-netcore


看完本文有收获?请转发分享给更多人

关注「DotNet」,提升.Net技能 

以上是关于Apache SkyWalking 为.NET Core带来开箱即用的分布式追踪和应用性能监控的主要内容,如果未能解决你的问题,请参考以下文章

详解 Apache SkyWalking 的跨进程传播协议

SkyWalking 全票通过加入 Apache 孵化器

skywalking 搭建链路监控

直播预告:Apache SkyWalking 在 Service Mesh 中的可观察性应用

Linux搭建Skywalking9.3

图解 Apache SkyWalking UI 的使用