微服务组件—-SpringCloudAlibaba链路追踪skywalking详解

skywalking是什么

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

【2】主要流程为 采集数据——》传输数据——》存储数据——》分析数据——》监控报警 。

Skywalking整体架构

【1】图示:

【2】整个架构分成四部分:

1.上部分Agent :负责从应用中,收集链路信息,发送给 SkyWalking OAP 服务器;

2.下部分 SkyWalking OAP :负责接收Agent发送的Tracing数据信息,然后进行分析(Analysis Core),存储到外部存储器(Storage),最终提供查询(Query)功能;

3.右部分Storage:Tracing数据存储,目前支持ES、MySQL、Sharding Sphere、TiDB、H2多种存储器,目前采用较多的是ES,主要考虑是SkyWalking开发团队自己的生产环境采用ES为主;

4.左部分SkyWalking UI:负责提供控制台,查看链路等等;

【1】服务(Service) :表示对请求提供相同行为的一系列或一组工作负载,在使用Agent时,可以定义服务的名字;

【2】服务实例(Service Instance) :上述的一组工作负载中的每一个工作负载称为一个实例, 一个服务实例实际就是操作系统上的一个真实进程;

【3】端点(Endpoint) :对于特定服务所接收的请求路径, 如HTTP的URI路径和gRPC服务的类名 + 方法签名;

SkyWalking的简单使用

【1】通过jar包方式接入

1)编辑startup.sh脚本启动

2)java命令启动

3)在IDEA中使用Skywalking

【2】自定义SkyWalking链路追踪【 希望对项目中的业务方法,实现链路追踪,方便我们排查问题

1)引入依赖

2)在业务方法中可以TraceContext获取到traceId

3)注解@Trace将方法加入追踪链路

4)注解@Tags或@Tag为追踪链路增加其他额外的信息,比如记录参数和返回信息。实现方式:在方法上增加@Tag或者@Tags,示例:

SkyWalking的数据持久化

【1】基于mysql持久化

1)修改config目录下的application.yml

2)添加mysql数据驱动包到oap-libs目录下【注意:需要添加mysql数据驱动包,因为在lib目录下是没有mysql数据驱动包的,所以修改完配置启动是会报错,启动失败的。】

3)启动Skywalking【查看swtest数据库,可以看到生成了很多表,那么就代表成功了】

【2】基于elasticsearch持久化

1)修改config目录下的application.yml

2)启动Skywalking服务

启动时会向elasticsearch中创建大量的index索引用于持久化数据,启动应用程序,查看追踪数据是否已经持久化到elasticsearch的索引中,然后重启skywalking,验证追踪数据会不会丢失

Skywalking告警通知

【1】skywalking告警的核心由一组规则驱动,这些规则定义在config/alarm-settings.yml文件中,告警规则的定义分为三部分:

【2】skywalking发行版中提供了默认的alarm-setting.yml文件,包括一些规则,每个规则有英文注释。

1)可以根据注释得知每个规则的作用:

2)参数说明:

【3】实现回调接口

【5】Webhook回调通知

SkyWalking告警Webhook回调要求接收方是一个Web容器(比如tomcat服务),告警的消息会通过HTTP请求进行发送, 请求方法为POST, Content-Type为application/json, JSON格式基于List

Original: https://www.cnblogs.com/chafry/p/16801271.html
Author: 忧愁的chafry
Title: 微服务组件—-SpringCloudAlibaba链路追踪skywalking详解

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/710938/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球