skywalking中文文档_NET Core微服务之路:SkyWalking+SkyApmdotnet分布式链路追踪系统的分享...

对于普通系统或者服务来说,一般通过打日志来进行埋点,然后再通过elk或splunk进行定位及分析问题,更有甚者直接远程服务器,直接操作查看日志,那么,随着业务越来越复杂,企业应用也进入了分布式服务化的阶段,传统的日志监控等方式无法很好达到跟踪调用、排查问题等需求,可以想象,如果你的服务节点达到有很多很多(两位数以上吧),而没有一个自动跟踪系统,那查找一个问题将成为噩梦。

那么,服务之间调用的问题是:

  • 如何快速发现问题?

  • 如何判断故障影响范围?

  • 如何梳理服务依赖以及依赖的合理性?

  • 如何分析链路性能问题以及实时容量规划?

  • 如何在分布式服务进行日志监控呢?

首先大家会想到分布式链路追踪系统,说到这,就得讲 OpenTracing 规范,OpenTracing 是一个轻量级的标准化层,它位于应用程序/类库和追踪或日志分析程序之间。详细介绍见 《opentracing文档中文版》。在谷歌论文《Dapper, 大规模分布式系统的跟踪系统》的指导下,许多优秀的APM应运而生,分布式追踪系统发展很快,种类繁多,给我们带来很大的方便。虽然目前市面许多优秀的APM系统,但是作为我们.NET程序员的选择却就少之又少了(甚至没得选),几乎各大分布式追踪系统均提供java版的支持,而.NET上却只有SkyWalking的SkyAPM-dotnet一直在默默的支持着,辛苦了,大佬们。

好吧,既然不能做到技术选型,那么我们就开始工作吧。SkyWalking和Elasticsearch的安装,网上一抓一大把,这里不在重复的介绍“如何安装”和“如何使用”。

从SkyAPM-dotnet中,我们可以拿到团队的官方示例,https://github.com/SkyAPM/SkyAPM-dotnet/tree/master/sample,她分为请求端,前置端和后端(当然,你喜欢怎么叫都行),我稍微修改一下,做了一些数据和请求数上的调整,本篇代码不是重点(SkyAPM-dotne已经达到开箱即用的强大优势),希望得到的数据像下面这样:

f99e9af1cb3ba25061376a58d5937c2f.png

解释一下这个数据是怎么来的(或者这个实验的服务架设):

  1. 后端:提供数据库的查询,队列的接口等一系列数据操作的地方;

  2. 前置:提供接口的过滤和处理,可以把他理解为一个逻辑后端,或者一个API网关;

  3. 请求:提供请求,或者模拟串行或并行请求;

这样从逻辑上理解就是1->2->3->2->1,其实一个请求从头到尾然后在返回到前端也都是这样的,你可以把他想象成我们常见的三层模型、等等。

启动三个节点后,通过SkyWalking可以看到,Service数量是3,正是我们创建的三个服务节点,Endpoint表示所有连接的数量,DB和Cache作为数据库(或缓存)的数量,MQ的数量、平均吞吐量、网络拓扑图等等。

整个界面一目了然,更多详细介绍可查看官网解释。

84a2543a59c988e326cd3c779dcce097.png

0234ed8451f3b7efabad83d80b56c2cf.png

2d083badad2e6b47a4af4d8dbbf085cb.png

8f42560c2449a4e846f301f27c87c145.png

在.NET的生态圈中,曾经有ButterFly这样的原生.NET框架来实现我们整个系统的链路追踪,只是作者表示已不在维护,ButterFly放弃的原因之一也是因为.NET开源项目的参与者太少了,光靠一人之力是没法做出一个稳定高效可用于生产的APM。作者转而投入到了Skyapm-dotnet 所以,在.NET上,我们优先选择有良好支持的skyapm-dotnet!

原文地址:https://www.cnblogs.com/SteveLee/p/10463200.html

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com 5c18842a16585096d8365a2031418dd2.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值