网站历史快照,网站建设互联,网站充值接口,嘉兴网站建设多少时间一 SkyWaling是什么#xff1f;
Skywalking是分布式系统的应用程序性能监视工具#xff0c;专为微服务、云原生架构和基于容器#xff08;Docker、K8s、Mesos#xff09;架构而设计。SkyWalking 是观察性分析平台和应用性能管理系统#xff0c;提供分布式追踪、服务网格遥…一 SkyWaling是什么
Skywalking是分布式系统的应用程序性能监视工具专为微服务、云原生架构和基于容器Docker、K8s、Mesos架构而设计。SkyWalking 是观察性分析平台和应用性能管理系统提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。 官网http://skywalking.apache.org/ 下载http://skywalking.apache.org/downloads/ Githubhttps://github.com/apache/skywalking 文档 https://skywalking.apache.org/docs/main/v8.4.0/readme/ 中文文档 https://skyapm.github.io/document-cn-translation-of-skywalking/
二 为什么需要SkyWaling
对于一个大型的几十个、几百个微服务构成的分布式架构系统我们通常会遇到下面一些问题比如
如何串联整个调用链路快速定位问题如何理清各个微服务之间的依赖关系如何进行各个微服务接口的性能分折如何跟踪整个业务流程的调用处理顺序 针对以上问题我们可以依赖SkyWalking强大的链路追踪功能对我们整个调用链路进行可视化的展示以及分析。
三 常见的分布式链路追踪工具
Zipkin是Twitter开源的调用链分析工具目前基于Springcloud Sleuth得到了广泛的使用特点是轻量部署和使用简单。Pinpoint是韩国人开源的基于字节码注入的调用链分析以及应用监控分析工具。特点是支持多种插件UI功能强大接入端无代码侵入。SkyWalking是中国开源的基于字节码注入的调用链分析以及应用监控分析工具。特点是支持多种插件UI功能较强接入端无代码侵入。目前已加入Apache孵化器。CAT是大众点评开源的基于编码和配置的调用链分析、应用监控分析、日志采集、监控报警等一系列的监控平台工具。 这四种分布式链路追踪工具的原理如下:
从上图可以看出来这四种分布式链路追踪的实现原理各有不同那么它们的性能是如何呢相关资料模拟了三种并发用户5007501000。使用jmeter测试每个线程发送30个请求设置思考时间为10ms。使用的采样率为1即 100%这边与生产可能有差别。pinpoint默认的采样率为20即50%通过设置agent的配置文件改为100%。zipkin默认也是1。 合起来一共有12种。下面看下汇总表 综合分析在常用的分布式链路追踪中SkyWaking不仅性能比较强追踪的粒度可以达到方法级别而且支持根据traceid查询更支持报警、jvm监控等强大的功能。 四 SkyWalking的特性 SkyWalking主要有以下特性: 1、多种监控手段可以通过语言探针和service mesh获得监控的数据。 2、支持多种语言自动探针包括 Java.NET Core 和 Node.JS。 3、轻量高效无需大数据平台和大量的服务器资源。 4、模块化UI、存储、集群管理都有多种机制可选。 5、支持告警。 6、优秀的可视化解决方案。
五 SkyWaling的整体架构 基于官方架构图SkyWalking一共分为四个部分: 1、上部分Agent 负责从应用中收集链路信息发送给 SkyWalking OAP 服务器。 2、下部分 SkyWalking OAP 负责接收Agent发送的Tracing数据信息然后进行分析(Analysis Core)存储到外部存储器(Storage)最终提供查询(Query)功能。 3、右部分StorageTracing数据存储目前支持ES、MySQL、Sharding Sphere、TiDB、H2多种存储器目前采用较多的是ES主要考虑是SkyWalking开发团队自己的生产环境采用ES为主。 4、左部分SkyWalking UI负责提供控制台进行链路的展示。
5.1 探针收集方法
SkyWalking进行链路信息收集支持三种探针方法: ● Agent – 基于ByteBuddy字节码增强技术实现通过jvm的agent参数加载并在程序启动时拦截指定的方法来 收集数据。 (最推荐) ● SDK – 程序中显式调用SkyWalking提供的SDK来收集数据对应用有侵入。 ● Service Mesh – 通过Service mesh的网络代理来收集数据。
5.2 后端服务
接受探针发送过来的数据对调用链进行分析和存储,后端服务主要分为两部分 ● OAPObservability Analysis Platform- 进行度量分析和调用链分析的后端平台并支持将数据存储到各种数据库中如ElasticSearchMySQLTiDB等。 ● OALObservability Analysis Language- 用来进行度量分析的DSL类似于SQL用于查询度量分析结果和警报。
5.3 界面(UI)
UI支持两种方式展示: ● RocketBot UI – SkyWalking 7.0.0 的默认web UI ● CLI – 命令行界面
这三个模块的交互方式如下:
探针负责收集我们的链路信息通过gRPC方式上报到我们的后端服务上。后端服务把链路信息存储到storage层UI界面通过jetty方式和后端交互进行数据可视化展示。
六 SkyWaling部署架构图
上面介绍了SkyWaling的基本信息那么它的怎么应用到我们的服务应用中进行一个分布式链路追踪的呢 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/950aa92a91b3459fb9adf1f480345868.png Skywalking Agent和业务系统绑定在一起负责收集各种监控数据然后Agent会把收集的数据上报到我们的OAP服务集群中OAP服务进行数据分析并把数据持久化到数据库中我们的UI服务负责接收前端请求发送请求到后端服务进行请求查询并把结果返回到界面上。Skywalking OapService通常以集群的形式存在。