skywalking解析-入门

前几天从github上看最近比较火的项目,发现了skywalking,就进行了些了解,发现这个领域自己目前知之甚少,打算通过对源码的分析深入了解一下分布式追踪。首先从对skywalking介绍开始。

一、简介

skywalking是一个分布式追踪系统 , 它可以帮助我们看到一个请求经过的所有调用链路,比如中间调用了多少个微服务,访问了多少次数据库,redis,mq 等中间件。以前,系统间调用没有那么复杂,系统间调用也比较简单,当微服务开始盛行的时候,系统间的调用关系就变得非常复杂了,很少有人能够说得清各个系统间的调用关系,那么分布式追踪系统便应运而生。分布式追踪系统不仅可以展示出调用链路,还可以提供服务监控,比如可以监控哪些服务调用失败了,服务被访问了多少次。
其实要实现分布式追踪也很简单,只要在设计系统的时候, 每经过一次请求,每调用一次中间件,都把对应日志存起来,,然后提供分析服务及展示页面,也可以达到同样的效果。但是这样做的弊端也很明显:对代码侵入性强 , 每一个业务系统都需要在业务代码里去加上对应的日志,如果日志漏了,或者不符合格式要求,那么就可能导致展示信息有误。
为了避免这个问题,skywalking使用 agent 形式接入业务系统,这样就不需要在业务系统里添加任何日志代码,也能记录到对应的调用信息。

分布式追踪系统概述及主流开源系统对比:https://zhuanlan.zhihu.com/p/71024024

分布式追踪系统有很多,至于为什么选择skywaking,大家可以看下上面的链接。选择skywaking有以下优点:国人开发,资料相对丰富,apache项目,对业务代码侵入性低,另外skywaking使用微内核开发,自己也想了解一下何为微内核。

名词解释
OAP:全称Observability Analysis Platform,可观测性分析平台。
APM:全称Application Performance Management,应用性能管理

二、整体架构

本小节内容来自:https://skywalking.apache.org/zh/2020-04-19-skywalking-quick-start/ 和
https://github.com/SkyAPM/document-cn-translation-of-skywalking/blob/master/docs/zh/8.0.0/concepts-and-designs/backend-overview.md

架构
整个架构,分成上、下、左、右四部分:

  • 上部分 Agent :负责从应用中,收集链路信息,发送给 SkyWalking OAP 服务器。目前支持 SkyWalking、Zikpin、Jaeger 等提供的 Tracing 数据信息。而我们目前采用的是,SkyWalking Agent 收集 SkyWalking Tracing 数据,传递给服务器。
  • 下部分 SkyWalking OAP :负责接收 Agent 发送的 Tracing 数据信息,然后进行分析(Analysis Core) ,存储到外部存储器( Storage ),最终提供查询( Query )功能。
  • 右部分 Storage :Tracing 数据存储。目前支持 ES、MySQL、Sharding Sphere、TiDB、H2 多种存储器。
  • 左部分 SkyWalking UI :负责提供控台,查看链路等等。

其中agent可以收集两种数据:链路追踪(tracing)和度量指标(metrics),官网对这两个的解释如下:

OAP 从多种数据源接收数据,,这些数据分为两大类,,链路追踪和度量指标 。

  • 链路追踪:包括 SkyWalking 原生数据格式,Zipkin V1 和 V2 数据格式,以及 Jaeger 数据格式。
  • 度量指标.:SkyWalking 集成了服务网格平台,如 Istio, Envoy 和 Linkerd,并在数据面板和控制面板进行观测。此外,SkyWalking 原生代理还可以运行在度量模式,这极大提升了性能。OAP中的度量指标是6.x版本中全新的功能。通过连接的节点之间的度量数据,构建分布式系统的观测数据,且不需要追踪数据。度量数据在OAP集群中以流的模式进行聚合。

skywalking的架构可以简化为下图:
在这里插入图片描述

三、源码下载

大家可以从github上直接下载就可以了,网上有很多关于下载搭建系统的资料。
这里想说的是,网上的资料比较旧,一般是V6或者V8的,但是现在OAP最新版本已经V9.3.0了。
在V6版本的时候,agent和OAP是在一个分支上的,但是在最新版本里面agent已经独立出去了,如果是java版本的,agent项目名称是skywalking-java。skywalking也提供了其他语言版本的agent,大家可以看下面的网页,该网页提供了所有skywalking下载的内容。

https://skywalking.apache.org/downloads/

四、系统搭建

关于skywalking搭建的内容,网上有很多,大家自行网上搜索吧,不再详细介绍了。

五、补充知识

在分析skywalking之前,大家需要了解java agent知识。

SkyWalking Agent 实现原理:https://blog.csdn.net/lewee0215/article/details/109636349

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值