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/
转载文章受原作者版权保护。转载请注明原作者出处!