NET Core微服务之路:SkyWalking+SkyApm-dotnet分布式链路追踪系统的分享
对于普通系统或者服务来说,一般通过打日志来进行埋点,然后再通过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已经达到开箱即用的强大优势),希望得到的数据像下面这样:
解释一下这个数据是怎么来的(或者这个实验的服务架设):
后端:提供数据库的查询,队列的接口等一系列数据操作的地方;
前置:提供接口的过滤和处理,可以把他理解为一个逻辑后端,或者一个API网关;
请求:提供请求,或者模拟串行或并行请求;
这样从逻辑上理解就是1->2->3->2->1,其实一个请求从头到尾然后在返回到前端也都是这样的,你可以把他想象成我们常见的三层模型、等等。
启动三个节点后,通过SkyWalking可以看到,Service数量是3,正是我们创建的三个服务节点,Endpoint表示所有连接的数量,DB和Cache作为数据库(或缓存)的数量,MQ的数量、平均吞吐量、网络拓扑图等等。
整个界面一目了然,更多详细介绍可查看官网解释。
在.NET的生态圈中,曾经有ButterFly这样的原生.NET框架来实现我们整个系统的链路追踪,只是作者表示已不在维护,ButterFly放弃的原因之一也是因为.NET开源项目的参与者太少了,光靠一人之力是没法做出一个稳定高效可用于生产的APM。作者转而投入到了Skyapm-dotnet 所以,在.NET上,我们优先选择有良好支持的skyapm-dotnet!
原文地址:https://www.cnblogs.com/SteveLee/p/10463200.html
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
NET Core微服务之路:SkyWalking+SkyApm-dotnet分布式链路追踪系统的分享相关推荐
- NET Core微服务之路:实战SkyWalking+Exceptionless体验生产下追踪系统
前言 当一个APM或一个日志中心实际部署在生产环境中时,是有点力不从心的. 比如如下场景分析的问题: 从APM上说,知道某个节点出现异常,或延迟过过高,却不能及时知道日志反馈情况,总不可能去相应的节点 ...
- .NET Core微服务之路:文章系列和内容索引汇总 (v0.52)
原文:.NET Core微服务之路:文章系列和内容索引汇总 (v0.52) 微服务架构,对于从事JAVA架构的童鞋来说,早已不是什么新鲜的事儿,他们有鼎鼎大名的Spring Cloud这样的全家桶框架 ...
- .NET Core微服务之路:文章系列和内容索引汇总 (v0.53)
微服务架构,对于从事JAVA架构的童鞋来说,早已不是什么新鲜的事儿,他们有鼎鼎大名的Spring Cloud这样的全家桶框架支撑,包含微服务核心组件如 1. Eureka:实现服务注册与发现. 2. ...
- .NET Core微服务之路:不断更新中的目录 (v0.42)
原文:.NET Core微服务之路:不断更新中的目录 (v0.42) 微服务架构,对于从事JAVA架构的童鞋来说,早已不是什么新鲜的事儿,他们有鼎鼎大名的Spring Cloud这样的全家桶框架支撑, ...
- NET Core微服务之路:自己动手实现Rpc服务框架,基于DotEasy.Rpc服务框架的介绍和集成...
原文:NET Core微服务之路:自己动手实现Rpc服务框架,基于DotEasy.Rpc服务框架的介绍和集成 本篇内容属于非实用性(拿来即用)介绍,如对框架设计没兴趣的朋友,请略过. 快一个月没有写博 ...
- .NET Core微服务之路:基于Consul最少集群实现服务的注册与发现(一)
原文:.NET Core微服务之路:基于Consul最少集群实现服务的注册与发现(一) Consul介绍 Consul是HashiCorp公司推出的开源工具[开源地址:https://github.c ...
- 微服务链路追踪_.NET Core微服务:分布式链路追踪系统分享
(给DotNet加星标,提升.Net技能) 转自:另一个老李 cnblogs.com/SteveLee/p/10463200.html 对于普通系统或者服务来说,一般通过打日志来进行埋点,然后再通过e ...
- .NET Core微服务之路:基于Ocelot的API网关实现--http/https协议篇
前言 最近一直在忙公司和私下的兼职,白天十个小时,晚上四个小时,感觉每天都是打了鸡血似的,精神满满的,连自己那已经学打酱油的娃都很少关心,也有很长一段时间没有更新博客了,特别抱歉,小伙伴们都等得想取关 ...
- 从零开始使用Skywalking分布式链路追踪系统
当我们用很多服务时,各个服务间的调用关系是怎么样的?各个服务单调用的顺序\时间性能怎么样?服务出错了,到底是哪个服务引起的?这些问题我们用什么方案解决呢,以前的方式是各个系统自己单独做日志,出了问题从 ...
最新文章
- 单片AT89C2051 + SD卡 + 3310LCD = 音乐播放器
- 《理解 OpenStack + Ceph》---来自-[爱.知识]-推荐
- ​炸了!程序员现在没有这点技能都还不能就业了?
- iOS开发之第三方框架Masonry
- C语言中的fopen函数
- 性能优化篇(3):避免空的图片src
- 反向算法_10分钟带你了解神经网络基础:反向传播算法详解
- 解决h264bitstream的一个bug
- js 递归查询所有的叶子结点_浅谈mysql的查询过程
- 第四章表单与文件-笔记-验证
- Pytorch和caffe对maxpool模式ceil比较
- 实战分析PHP大马隐藏后门——案例二
- Javascript实现视频文件播放功能
- 杭州电子科技大学计算机考研复试分数线,杭州电子科技大学2020年考研复试分数线...
- 201771010112罗松《面向对象程序设计(java)》第十七周学习总结
- 股票杠杆哪个平台好?具备的资质是怎么样的?
- 英国几个有名的英语考试总结
- oracle 查看用户日志,Oracle查看用户操作sql语句以及数据库日志
- C#使用OleDB操作ACCESS插入数据时提示:标准表达式中数据类型不匹配。
- 一个专家级软件架构师的自白书