一、链路追踪介绍

对于一个大型的几十个,几百个微服务构成的微服务架构系统,通常会遇到下面的一系列问题。

  • 如何串联整个调用链路,快速定位问题?

  • 如何澄清各个微服务之间的依赖关系?

  • 如何进行各个微服务接口的性能分析?

  • 如何追踪各个业务流程的调用处理顺序?

二、Skywalking介绍

Skywalking是一个国产的开源框架,2015年有吴晟个人开源,2017年加入Apache孵化器,国人开源的产品,主要开发人员来自于华为,2019年4月17日Apache董事会批准SkyWalking成为顶级项目,支持Java、.Net、NodeJs等探针,数据存储支持Mysql、Elasticsearch等,跟Pinpoint一样采用字节码注入的方式实现代码的无侵入,探针采集数据粒度粗,但性能表现优秀,且对云原生支持,目前增长势头强劲,社区活跃。

Skywalking是分布式系统的应用程序性能监视工具,专为微服务,云原生架构和基于容器(Docker,K8S,Mesos)架构而设计,它是一款优秀的APM(Application Performance Management)工具,包括了分布式追踪,性能指标分析和服务依赖分析等。

三、功能和技术方案对比

  • Zipkin是Twitter开源的调用链路分析工具,目前基于Spingcloud sleuth得到了广泛的应用,特点是轻量,部署简单。

  • Pinpoint一个韩国团队开源的产品,运用了字节码增强技术,只需要在启动时添加启动参数即可,对代码无侵入,目前支持Java和PHP语言,底层采用HBase来存储数据,探针收集的数据粒度非常细,但性能损耗大,因其出现的时间较长,完成度也很高,应用的公司较多

  • Skywalking是本土开源的基于字节码注入的调用链路分析以及应用监控分析工具,特点是支持多种插件,UI功能较强,接入端无代码侵入。

  • CAT是由国内美团点评开源的,基于Java语言开发,目前提供Java、C/C++、Node.js、Python、Go等语言的客户端,监控数据会全量统计,国内很多公司在用,例如美团点评、携程、拼多多等,CAT跟下边要介绍的Zipkin都需要在应用程序中埋点,对代码侵入性强。

四、Skywalking架构

Skywalking agent和业务端绑定在一起,负责收集各种监控数据

Skywalking oapservice是负责处理监控数据,接受agent的数据并存储在数据库中,接受来自UI的请求,查询监控数据。

Skywalking UI提供给用户,展现各种监控数据和告警。

五、Skywalking目录结构

六、Skywalking的使用

1.Skywaking的启动

Skywaking安装完成后进入bin目录下

2.IDEA集成使用agent

开发环境IDEA中使用探针配置即可集成使用agent,我们使用探针配置为3个项目分别配置agent:

(1)

(2)

# 客户端需要的jar所在位置
-javaagent:D:/softInstall/apache-skywalking-apm-bin/agent/skywalking-agent.jar
# 客户端服务名称
-Dskywalking.agent.service_name=springcloud-order
# skywalking地址
-Dskywalking.collector.backend_service=localhost:11800

(3)注意:路径有一部分需要变更为自己存放文件的位置*

(4)

此时启动IDEA,并访问 http://localhost:8080/效果如下:

3.skywalking收集网关gateway的信息

默认skywalking不会收集gateway微服务的信息,如何让他支持gateway微服务。

(1)

在agent目录下找到optional-plugins

(2)找到gateway的jar包

(3)返回agent目录下并进入plugins目录下将gateway的jar包粘贴进去

4.skywalking持久化

我们发现如果skywalking服务重启的话链路日志就会消失,因为skywalking默认在内存中保存链路日志等信息,我们可以通过持久化存储将相关信息存储在mysql或es等存储引擎中

(1)进入config目录下找到application.yml文件

(2)修改application.yml文件

a.

b.

(3)创建名为swtest的数据库(名字可以自己定义但是一定要与application.yml中的一致)

(4)重启skywalking服务

完成!

七、介绍skywalking

1.Rocketbot-仪表盘

作用:查看被监控服务的运行状态。

监控面板:

 (1)APM

APM: 应用性能管理,通过各种探针采集数据,收集关键指标,同时搭配数据呈现以实现对应用程序性能管理和故障管理的系统化解决方案。

Global全局维度  

板块描述:

services load :服务每分钟请求数s1ow services:慢响应服务,单位ms
Un-Health services (Apdex) :Apdex性能指标,1为满分。
show Endpoints:慢响应端点,单面ms
G1obal Response Latency:百分比响应延时,不同百分比的延时时间,单位ms
G1obal Heatmap:服务响应时间热力分布图,根据时间段内不同响应时间的数量显示颜色深度
底部栏:展示数据的时间区间,点击可以调整

Service服务维度

属性描述:

service Apdex(数字):当前服务的评分
service Apdex(折线图):不同时间的Apdex评分
service Avg Response Times:平均响应延时,单位ms
G1obal Response Time Percentile:百分比响应延时
successfu1 Rate(数字):请求成功率
successfu1 Rate(折线图):不同时间的请求成功率
servce Load(数字):每分钟请求数
servce Load(折线图):不同时间的每分钟请求数
servce Instances Load:每个服务实例的每分钟请求数
show service Instance:每个服务实例的最大延时
service Instance successfu1 Rate:每个服务实例的请求成功率

Instance实例维度

属性描述:

service Instance Load:当前实例的每分钟请求数
service Instance successfu1 Rate:当前实例的请求成功率
service Instance Latency:当前实例的响应延时
vM CPu: jvm占用CPU的百分比
JVM Memory : VM内存占用大小,单位m
JVM GC Time : VM垃圾回收时间,包含YGC和oGC
JVM Gc count: JVM垃圾回收次数,包含YGC和oGC
JVM Thread count (ava service) : VM创建线程数量
CLR xx:类似VM虚拟机(可以直接理解成虚拟机)

Endpoint端点(API)维度

属性描述:

Endpoint Load in current service:每个端点的每分钟请求数
s1ow Endpoints in current service:每个端点的最慢请求时间,单位ms
successful Rate in current service:每个端点的请求成功率
Endpoint Load:当前端点每个时间段的请求数据
Endpoint Avg Response Time:当前端点每个时间段的请求行响应时间
Endpoint Response Time Percentile:当前端点每个时间段的响应时间占比
Endpoint successfu1 Rate:当前端点每个时间段的请求成功率

(2)DataSource展示栏

属性描述:

当前数据库:选择查看数据库指标
Database Avg Response Time:当前数据库事件平均响应时间,单位ms
Database Access successfu7 Rate:当前数据库访问成功率
Database Traffic:CPM,当前数据库每分钟请求数
Database Access Latency Percentile:数据库不同比例的响应时间,单位ms
s1ow statements :前N个慢查询,单位ms
A17 Database Loads:所有数据库中CPM排名
Un-Health Databases:所有数据库健康排名,请求成功率排名

2.拓扑图

3.追踪

属性描述:

左侧:api接口列表,红色-异常请求,蓝色-正常请求
右侧:api追踪列表,api请求连接各端点的先后顺序和时间

操作详情:可以看到底层执行语句

4.性能剖析

创建性能剖析采集清单:

 新建性能剖析属性描述:

服务:需要分析的服务
端点:链路监控中端点的名称,可以再链路追踪中查看端点名称监控时间:采集数据的开始时间
监控持续时间:监控采集多长时间起始监控时间:多少秒后进行采集监控间隔:多少秒采集一次
最大采集数:最大采集多少样本

Spring Cloud Alibaba-SkyWalking链路追踪相关推荐

  1. 523、Java Spring Cloud Alibaba -【Spring Cloud Alibaba SkyWalking】 2021.12.27

    目录 1. SkyWalking 简介 1.1 SkyWalking的组成 2. 使用 Docker 快速搭建 SkyWalking 8.0 2.1 在 linux 服务器上选择并建立目录: 2.2 ...

  2. 关于Spring Cloud + Dubbo的链路追踪及traceId方案及思考(1)

    关于Spring Cloud + Dubbo的链路追踪及traceId方案及思考(1) 背景 实现方案 1. SkyWalking作为项目中的APM工具 1.1 SkyWalking服务端搭建 1.2 ...

  3. Spring Cloud Alibaba 高级特性 基于 Sleuth+Zipkin 实施链路跟踪体系

    介绍微服务链路追踪的原理: 讲解基于 Spring Cloud Sleuth 实现链路追踪: 构建 Zipkin Server 实现链路追踪的可视化管理. 下面咱们先来介绍什么是微服务链路追踪. 微服 ...

  4. Google K8S与阿里Spring Cloud Alibaba相爱相杀,下一个神级架构来了!

    都2021年了 还没用过微服务 吗?如日中天的K8S还只是听说过?云原生架构知道是怎么回事吗? 2020年的双十一,天猫订单处理峰值达到54.3万笔/秒,2020年的双十二,数据量高达1200万+.2 ...

  5. 用Spring Cloud Alibaba开发微服务会更香吗?

    关注DD,除了前沿消息,还有每周福利哦 Spring Cloud Alibaba致力于提供微服务开发的一站式解决方案,它是Spring Cloud组件被植入Alibaba元素之后的产物. 利用Spri ...

  6. 流量暴增,掌门教育如何基于 Spring Cloud Alibaba 构建微服务体系?

    作者 | 童子龙  掌门教育基础架构部架构师 **导读:**本文整理自作者于 2020 年云原生微服务大会上的分享<掌门教育云原生落地实践>,本文主要介绍了掌门教育云原生落地实践,主要围绕 ...

  7. 【万字长文】Spring Cloud Alibaba 开箱即用!

    互联网时代,面对复杂业务,讲究 分而治之.将一个大的单体系统拆分为若干个微服务,保证每个系统的职责单一,可以垂直深度扩展. 但是一个个独立的微服务像一座座孤岛,如何将他们串联起来,才能发挥最大价值. ...

  8. 【万字长文】创业公司就应该技术选型 Spring Cloud Alibaba , 开箱即用

    互联网时代,面对复杂业务,讲究 分而治之.将一个大的单体系统拆分为若干个微服务,保证每个系统的职责单一,可以垂直深度扩展. 但是一个个独立的微服务像一座座孤岛,如何将他们串联起来,才能发挥最大价值. ...

  9. 【Spring Cloud Alibaba 实战 | 总结篇】Spring Cloud Gateway + Spring Security OAuth2 + JWT 实现微服务统一认证授权和鉴权

    一. 前言 hi,大家好~ 好久没更文了,期间主要致力于项目的功能升级和问题修复中,经过一年时间这里只贴出关键部分代码的打磨,[有来]终于迎来v2.0版本,相较于v1.x版本主要完善了OAuth2认证 ...

  10. 芋道 Spring Cloud Alibaba 介绍

    点击上方"芋道源码",选择"设为星标" 做积极的人,而不是积极废人! 源码精品专栏 原创 | Java 2020 超神之路,很肝~ 中文详细注释的开源项目 RP ...

最新文章

  1. 深度摄影风格转换--Deep Photo Style Transfer
  2. 两个主键怎么设置tsql_如何在sql server中设置两个主键?
  3. 百度开源的 71 个项目,看看你用过几个?
  4. 使VM的虚拟机内存超越物理内存的方法
  5. Oracle 中UNDO与REDO的差别具体解释
  6. Linux第三周作业
  7. 推荐算法--其他信息(07)
  8. 互联网晚报 | 12月11日 星期六 | 极兔正式入股百世快递;全球首颗云原生卫星诞生;紫光集团重组战略投资者确定...
  9. 室内定位技术(一) TOA TDOA RSS AOA
  10. linux nginx php 启动命令,linux nginx启动,重启,关闭命令
  11. django中怎样新建html页面,Django网站创建从html页面到另一个应用程序的主html页面的链接...
  12. ABP开发框架前后端开发系列---(2)框架的初步介绍
  13. Power Builder软件的下载安装
  14. restapi是什么意思_RESTful-API还没理解么?只是因为你没看这篇文章,其实它很简单...
  15. Keil_MDK 中绝对地址定位问题
  16. 怎样恢复误删计算机管理员,win10管理员账号误删只有普通权限怎么恢复
  17. 逆水寒服务器维护能进游戏吗,逆水寒7月12日几点可以进游戏 逆水寒更新维护公告...
  18. 【微信公众号● DBAplus】Oracle原厂老兵:从负面案例看Hint的最佳使用方式
  19. 微信小程序接收二进制流文件(图片预览,文件打开)
  20. 表格处理:换行还是不换行?

热门文章

  1. Python的reduce
  2. 【ubuntu20.04设置中文输入法】
  3. OpenCV学习三十四:watershed 分水岭算法
  4. 大师们的投资之道(十三)
  5. 电脑考证必须用五笔输入吗
  6. 什么是伪静态?网站伪静态有什么作用?
  7. 图网络分类以及一些通用框架
  8. 对不起,云计算技术又走错路了
  9. Java_控制流程(if、switch、while、for、continue、break、结束外部循环)
  10. Web前端期末大作业--响应式网络科技公司网页设计(IT网络主题-HTML+CSS+JavaScript)实现