分布式链路追踪-skywalking基础

介绍

SkyWalking为超大规模而生。无论你的微服务是否在服务网格(Service Mesh)架构下,它都可以提供高性能且一致性的监控。

分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker. K8s、Mesos)架构而设计。提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。

产生背景
在微服务系统中,随着业务的发展,系统会变得越来越大,那么各个服务之间的调用关系也就变得越来越复杂。一个HTTP请求会调用多个不同的微服务来处理返回最后的结果,在这个调用过程中,可能会因为某个服务出现网络延迟过高或发送错误导致请求失败,这个时候,对请求调用的监控就显得尤为重要了。SpringCloud Sleuth提供了分布式服务链路监控的解决方案。

生产环境调用接口报错了,如何让定位问题?
1、elk+kafka, 只是减少了开发人员搜索日志的成本。
2、生产接口调用链报错的话:需要团队和团队之间沟通
3、分布式服务追踪系统——解决生产环境中调用链报错,减少团队和团队之间的沟通成本。
分布式服务追踪系统:底层包含错误日志(接口异常)了

常用的分布式服务追踪系统
1、sleuth+Zipkin;
2、阿里的鹰眼系统;
3、skywalking

注意:如果调用链过长的话,可能会导致调用超时的问题。

分布式服务调用链追踪原理

每一次RPC远程调用请求都会生成一个spanid记录每一次rpc请求的信息,还有一个traceid全局唯一id;

Tranceld:全局id,记录整个请求链的关系
Spanid:单元id,记录-次调用关系
Parentld:父的id

在这里插入图片描述

SkyWalking

SkyWalking 是一个开源的观测平台,用于从服务和云原生等基础设施中收集、分析、聚合以及可视化数据,SkyWalking 提供了一种简便的方式来清晰地观测分布式系统,甚至可以观测横跨不同云的系统,SkyWalking更像是一种现代的应用程序性能监控(Application Performance Monitoring,即APM)工具,专为云原生,基于容器以及分布式系统而设计。

相关名称概念

  1. 探针:基于不同的来源探针可能是不一-样的,但作用都是收集数据,将数据格式化为SkyWalking适用的格式。例如在Java中则是做字节码植入,无侵入式的收集,并通过HTTP或者gRPC方式发送数据到平台后端通过Agent技术代理主函数。
  2. 平台后端:是一个支持集群模式运行的后台,用于数据聚合、数据分析以及驱动数据流从探针到用户界面的流程。平台后端还提供了各种可插拔的能力,如不同来源数据( 如来自Zipkin)格式化,不同存储系统以及集群管理。你甚至还可以使用观测分析语言来进行自定义聚合分析。
  3. 存储: 是开放式的,可以选择一一个既有的存储系统,如ElasticSearch、 H2或MySQL集群( Sharding-Sphere管理),也可以选择自己实现一个存储系统。
  4. 用户界面:也就是SkyWalking的可视化界面,UI非常炫酷且强大,同样它也是可定制以匹配你已存在的后端。
  5. SkyWalking为观察和监控分布式系统提供了许多不同场景下的解决方案。例如为Java、C#及Node. js 提供语言自动探针,无侵入式的收集。同时也为一些编译型语言C++、G0等提供了手动打点SDK(目前还未支持)。除此之外,还可以使用服务网格基础探针来收集数据,以帮助了解整个分布式系统。
  6. 服务(Service) :表示对请求提供相同行为的一系列或一组工作负载。在使用打点代理或SDK的时候,你可以定义服务的名字。如果不定义的话,SkyWalking将会使用你在平台上定义的名字,如 Istio
  7. 服务实例(Service Instance):上述的一组工作负载中的每一个工作负载称为一个实例。就像Kubernetes 中的pods 一样,服务实例未必就是操作系统上的一个进程。但当你在使用打点代理的时候,一个服务实例实际就是操作系统上的一个真实进程。
  8. 端点(Endpoint) :对于特定服务所接收的请求路径,如HTTP的URI路径和gRPC服务的类名+方法签名
  9. 综上,SkyWalking 优势如下:多种监控手段,语言探针和服务网格(Service Mesh)、模块化,UI、存储、集群管理多种机制可选、支持告警、优秀的可视化方案。

四种角色

  1. skywalking agent 和业务系统关联在一- 起,负责收集各种监控数据;
  2. oapservice是负责处理监控数据的,比如接受skywalkingagent的监控数据,并存储在数据库中(例如elasticsearch、mysql中等) ;接受skywalking webapp的前端请求,从数据库查询数据,并返回数据给前端。 Skywalking oapservice通常以集群的形式存在;
  3. skywalking webapp,前端界面,用于展示数据;
  4. 用于存储监控数据的数据库,比如mysql、elasticsearch 等;

在这里插入图片描述

SkyWalking环境安装

参考文档:https://skywalking.apache.org/zh/2020-04-19-skywalking-quick-start/#

在这里插入图片描述
1、下载apache-skywalking-apm-8.9.1.tar.gz 安装包
解压之后,文件目录
在这里插入图片描述

2、进入到bin目录(直接双击启动startup.bat )
startup.bat 命令内容如下:会启动 SkyWalking OAP 服务和SkyWalking UI 服务
在这里插入图片描述
执行startup.bat 命令
在这里插入图片描述

3、启动oapService和我们的webappService
4、查看管理界面http://127.0.0.1:8080/
我的电脑做了本地域名映射,所以域名不一样。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值