参考: https://www.jianshu.com/p/ffa7ddcda4ab
参考: https://developer.aliyun.com/article/1201085
skywalking(APM)
调用链路分析
以及应用监控分析
工具
Skywalking主要由三大部分组成:agent、collector、webapp-ui。我们可以使用Skywalking agent探针无侵入地接入到
Spring Cloud应用,然后agent探针将应用数据采集到collector收集器。collector中的数据存储在Elasticsearch、H2、
MySQL、TiDB中(通过配置文件指定存储方式,默认是H2),通过webapp-ui界面,将这些数据展现给用户。
Skywalking介绍
Skywalking是一个国产的开源框架,2015年有吴晟个人开源,2017年加入Apache孵化器,国人开源的产品,主要开发人员来自于华为,2019年4月17日Apache董事会批准SkyWalking成为顶级项目,支持Java、.Net、NodeJs等探针,数据存储支持Mysql、Elasticsearch等,跟Pinpoint一样采用字节码注入的方式实现代码的无侵入,探针采集数据粒度粗,但性能表现优秀,且对云原生支持,目前增长势头强劲,社区活跃。
Skywalking是分布式系统的应用程序性能监视工具,专为微服务,云原生架构和基于容器(Docker,K8S,Mesos)架构而设计,它是一款优秀的APM(Application Performance Management)工具,包括了分布式追踪,性能指标分析和服务依赖分析等。
apache支持skywalking是字节码注入无侵入(支持语言有java,.net,php,nodejs ,go),存储在H2, ES;
数据通过探针经过平台后端存储在存储系统中,提供ui高度定制化web系统;
轻量高效,无需大数据平台和大量的服务器资源,支持告警,可视化
链路追踪框架对比
目前市面上开源的APM系统主要有CAT、Zipkin、Pinpoint、SkyWalking,大都是参考Google的Dapper实现的
CAT(美团点评)Zipkin(twitter)都需要在应用程序中埋点
,对代码侵入性强;
查看链路追踪
对于一个大型的几十个,几百个微服务构成的微服务架构系统,通常会遇到下面的一系列问题。
如何串联整个调用链路,快速定位问题?
如何澄清各个微服务之间的依赖关系?
如何进行各个微服务接口的性能分析?
如何追踪各个业务流程的调用处理顺序?