文档章节

系统监控-分布式调用链Skywalking

秋日芒草
 秋日芒草
发布于 06/17 23:50
字数 1284
阅读 38
收藏 0

1. 为什么要使用分布式调用链技术?

随着公司业务的高速发展,公司服务之间的调用关系愈加复杂,如何理清并跟踪它们之间的调用关系就显的比较关键。线上每一个请求会经过多个业务系统,并产生对各种缓存或者 DB 的访问,但是这些分散的数据对于问题排查,或者流程优化提供的帮助有限。在这样复杂的业务场景下,业务流会经过很多个微服务的处理和传递,我们难免会遇到这些问题:

  • 一次请求的流量从哪个服务而来最终落到了哪个服务中去
  • 为什么这个请求这么慢? 到底哪个环节出了问题?
  • 这个操作需要依赖哪些东西? 是数据库还是消息队列?
  • Redis挂了,哪些业务受影响?

2. 开源产品从多,可以从如下几个方面去选型。

我们需要达到的目标:

  • 低消耗性:跟踪系统对业务系统的影响应该做到足够小。在一些高度优化过的服务,即使一点点损耗也容易察觉到,而且有可能迫使在线负责的部署团队不得不将跟踪系统关停
  • 低侵入性:作为非业务组件,应当尽可能少侵入或者无侵入业务系统,对于使用方透明,减少开发人员的负担
  • 时效性:从数据的收集产生,到数据计算处理,再到最终展现,都要求尽可能快
  • 决策支持:这些数据是否能在决策支持层面发挥作用,特别是从 DevOps 的角度
  • 数据可视化:做到不用看日志通过可视化进行筛选

实现的功能:

  • 故障定位:调用链路跟踪,一次请求的逻辑轨迹可以完整清晰的展示出来
  • 性能分析:调用链的各个环节分别添加调用耗时,可以分析出系统的性能瓶颈,并针对性的优化
  • 数据分析:调用链是一条完整的业务日志,可以得到请求的行为路径,汇总分析应用在很多业务场景。

开源产品:

  • Twitter 公司开源的分布式追踪系统 Zipkin 
  • 韩国人开源的分布式跟踪组件 Pinpoint
  • 国产的优秀APM组件 Skywalking,
  • 其他类似的组件还有美团点评的 CAT。

分布式调用链和传统的新能监控有什么区别?

APM工具与传统的性能监控工具的区别在于,不仅仅提供一些零散的资源监控点和指标,其主要关注在系统内部执行、系统间调用的性能瓶颈分析,这样更有利于定位到问题的具体原因。

社区活跃度:

类别

Zipkin

Pinpoint

SkyWalking

CAT

start小星星数

9.7k

7.5k

4.7k

6.7k

性能分析: 

3. 综上多个方面最终选择Skywalking,下面主要围绕Skywalking进行展开。

搭建Skywalking需要安装的组件(windows为例):

  • elasticsearch-5.6.2(ES/data目录为ES数据存放目录,可以通过删除该目录清空数据,ES/config/elasticsearch.yml配置cluster name、node.name)
  • ES和head插件(需要安装Node.js),安装参考博客:windows下ES和head插件的安装(一个界面化的集群操作和管理工具)
  • 下载apache-skywalking-apm-incubating-5.0.0-GA,详细介绍可以参考博客:skywalking学习笔记
    • agent:探针,用来收集和发送数据到归集器(在/apm/agent/config/agent.config主要配置collector地址和应用名称,一般都是一个项目对应一个agent目录)。
    • collector:链路数据归集器,数据可以落地ElasticSearch,单机也可以落地H2,不推荐,H2仅作为临时演示用(在/apm/config/application.yml主要配置ES)。
    • web:web可视化平台,用来展示落地的数据。
    • ui:单独的开源ui项目,更美观易用。

搭建过程中需要注意的事:

  • 需要在/apm/collector-libs下放入mysql-connector-java-5.1.47.jar包。
  • 所有软件的目录尽量不要放在带有空格的目录下(如:Program Files),ES除外。
  • 多服务器搭建需要考虑时区不一致问题。

多组件启动顺序:

ES、ES head、/apm/bin/startup.bat、使用java命令指定-javaagent:skywalking-agent.jar去启动应用(war、jar)去运行应用、访问web查看agent注册情况。

相关软件请移步到码云或网盘上下载(相关软件都亲测成功,请放心使用):

https://gitee.com/qrmc/oschina_software_package

链接:https://pan.baidu.com/s/1nCa0Xipj-5tD3nc-3g-QdQ  提取码:wdxu 

4. 总结:待应用实战后总结优缺点...

 

 

© 著作权归作者所有

秋日芒草
粉丝 31
博文 105
码字总数 65405
作品 0
遵义
程序员
私信 提问
Skywalking Node.js 现支持 Egg 框架调用链追踪

Skywalking Node.js 简介 Apache Skywalking (Incubating)是专门为微服务架构和云原生架构系统而设计的能够支持分布式链路追踪的APM系统。通过给应用加载探针的方式收集应用调用链路信息,S...

Xin_Zhang_BJ
2018/08/30
1K
0
几种分布式调用链监控组件的实践与比较(二)比较

引言:最近在调研与选型分布式调用链监控组件。选了主要的三种APM组件进行了实践与比较。本来打算一篇文章写完的,篇幅太长,打算分两篇。距离第一篇已经有近一个月时间了,主要最近工作比较...

aoho
2017/12/06
0
0
分布式调用链调研(pinpoint,skywalking,jaeger,zipkin等对比)

APM简述 APM (Application Performance Management)是对企业的应用系统进行实时监控,它是用于实现对应用程序性能管理和故障管理的系统化的解决方案。 2.APM主要解决的问题: 集中式度量系...

helplove
01/24
0
0
SkyWalking 全票通过加入 Apache 孵化器

2017年12月8日,Apache 软件基金会孵化器项目管理委员会 ASF IPMC 宣布 “SkyWalking 全票通过,进入 Apache 孵化器”。 SkyWalking 开源项目由吴晟(@wu-sheng)于2015年创建,同年10月在G...

王练
2017/12/18
3.3K
17
Apache SkyWalking(Incubating) 5.0.0-alpha 发布

Apache SkyWalking (Incubating) 5.0.0-alpha 发 布。 2017年12月8日,Apache软件基金会孵化器项目管理委员会 ASF IPMC宣布“SkyWalking全票通过,进入Apache孵化器”。 之后的4个月,SkyWa...

wu-sheng
2018/04/04
4.8K
6

没有更多内容

加载失败,请刷新页面

加载更多

Leetcode PHP题解--D106 997. Find the Town Judge

D106 997. Find the Town Judge 题目链接 997. Find the Town Judge 题目分析 给定一个数组N代表人数,和给定一个数组,每个元素为一个只有两个值(a,b)的数组。 代表a信任b。 从中找到一个b...

skys215
30分钟前
1
0
日志相关---log4j2配置文件详解

一、关于配置文件的名称以及在项目中的存放位置 log4j 2.x版本不再支持像1.x中的.properties后缀的文件配置方式,2.x版本配置文件后缀名只能为".xml",".json"或者".jsn". 系统选择配置文件的...

spinachgit
30分钟前
0
0
redis 消息队列实现

方式一:通过list的阻塞读取命令,blpop或者brpop 消费者 public class Consumer extends DemoApplicationTests{ @Test public void consume(){ int timeout = 0;//永不超......

小海bug
52分钟前
2
0
如何把微信语音汇总成一个MP3文件?

本篇以苹果手机为例,安卓手机也可类似。 第一步,安装同步助手 同步助手是一款在电脑上安装,可以保存手机上的内容的软件。支持把微信的聊天历史内容导出。甚至支持筛选语音文件按顺序导出—...

吴伟祥
58分钟前
4
0
用ffsend使用Firefox Send

导读 ffsend 是 Firefox Send 的命令行客户端。本文将展示 Firefox Send 和 ffsend 如何工作。还会详细介绍如何在 Fedora 中安装和使用它。 ffsend 是 Firefox Send 的命令行客户端。本文将展...

问题终结者
58分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部