SkyWalking链路追踪系统

前言

在微服务开发如火如荼的今天,微服务也引入了一些额外问题。微服务开发&运维过程中会经常调用到其他服务暴露的接口,项目足够大时,内部调用会非常复杂,这种复杂性会导致很难去定位问题,出现问题的时候容易互相推诿进而导致效率低下,所以需要在微服务构建的系统中引入服务调用链路追踪工具,方便开发人员快速定位问题。

解决方案对比

目前市面上比较流行的链路追踪工具有Zipkin、CAT、Pinpoint、SkyWalking等等

简单介绍

  • Zipkin是Twitter开源的调用链分析工具,目前基于SpringCloud Sleuth得到了广泛的使用,轻量,使用部署简单。
  • SkyWalking是本土开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI友好,非侵入式接入。目前已加入Apache孵化器。
  • CAT是大众点评开源的基于编码和配置的调用链分析,应用监控分析,日志采集,监控报警等一系列的监控平台工具。
  • Pinpoint是韩国开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能强大,接入端无代码侵入。

对比

截止至2020/04/20

类别 SkyWalking CAT Zipkin Pinpoint
可视化界面
报表 丰富 很丰富 近似于无
接入方式 非侵入式 侵入式 侵入式 非侵入式
UI是否友好
颗粒度 方法级 代码级 接口级 方法级
数据存储 ES,H2 mysql,hdfs ES,mysql,Cassandra,内存 Hbase
社区活跃度 13.1k star 13.1k star 12.7k star 10.2k star
实现方式 拦截请求,发送(HTTP,mq)数据至zipkin服务 java探针,字节码增强 java探针,字节码增强 代码埋点(拦截器,注解,过滤器等)

下载

ElasticSearch7 API变更比较多,故官网拆分出两个包,可根据ElasticSearch版本选择下载
下载页
SkyWalking 7.0.0
SkyWalking 7.0.0-ES7版本

所有历史版本

安装&启动

  1. 将下载好的压缩包解压至用户目录

  2. 修改config/application.yml修改配置,由于我本地安装的是ES7版本,故将储存引擎由默认的H2修改为ElasticSearch7

  3. 启动SkyWalking之前确保ElasticSearch服务启动成功,然后执行oapService.bat(linux下执行oapService.sh)再执行webappService.bat(webappService.sh),或者直接执行startup.bat(startup.sh)

  4. 确保启动无误之后浏览器访问localhost:8080)

端口可在webapp/webapp.yml中修改

Java接入

将skywalking根目录下的agent目录拷贝至用户目录,新建一个spring-boot项目,
在启动JVM参数中添加以下配置

-javaagent:D:\Apache-Skywalking\agent\skywalking-agent.jar
-Dskywalking.agent.service_name=你的项目名

启动项目,并访问一个接口可以看到如下拓扑图

本地新建了一个服务,如果是微服务项目服务间调用会非常明显的展示出来

SkyWalking UI简单介绍

性能监控图标

JVM信息

链路追踪

posted @ 2020-05-01 21:31  箫声锁梦  阅读(767)  评论(0编辑  收藏  举报