这里介绍下链路追踪的实现方案SkyWalking
参考地址:
SkyWalking: 一个开源的可观测平台, 用于从服务和云原生基础设施收集, 分析, 聚合及可视化数据。SkyWalking 提供了一种简便的方式来清晰地观测分布式系统, 甚至横跨多个云平台。SkyWalking 更是一个现代化的应用程序性能监控(Application Performance Monitoring)系统, 尤其专为云原生、基于容器的分布式系统设计.
在所有这些情况下,SkyWalking 应该运行良好
保持可观测性. 不管目标系统如何部署, SkyWalking 总要提供一种方案或集成方式来保持对目标系统的观测, 基于此, SkyWalking 提供了数种运行时探针。---如何从各种各种各样的系统中收集信息cuiyaonan2000@163.com
拓扑结构, 性能指标和追踪一体化. 理解分布式系统的第一步是通过观察其拓扑结构图. 拓扑图可以将复杂的系统在一张简单的图里面进行可视化展现. 基于拓扑图,运维支撑系统相关人员需要更多关于服务/实例/端点/调用的性能指标. 链路追踪(trace)作为详细的日志, 对于此种性能指标来说很有意义, 如你想知道什么时候端点延时变得很长, 想了解最慢的链路并找出原因. 因此你可以看到, 这些需求都是从大局到细节的, 都缺一不可. SkyWalking 集成并提供了一系列特性来使得这些需求成为可能, 并且使之易于理解.---------------收集必要的数据,为运维人员提供了多种分析的依据和图标
轻量级. 有两个方面需要保持轻量级. (1) 探针, 我们通常依赖于网络传输框架, 如 gRPC. 在这种情况下, 探针就应该尽可能小, 防止依赖库冲突以及虚拟机的负载压力(例如 JVM 永久代内存占用压力). (2) 作为一个观测平台, 在你的整个项目环境中只是次要系统, 因此我们使用自己的轻量级框架来构建后端核心服务. 所以你不需要部署并维护大数据相关的平台, SkyWalking 在技术栈方面应该足够简单。-----对被追踪的系统,影响小,不会拖累被追踪系统
可插拔. SkyWalking 核心团队提供了许多默认实现, 但这肯定是不够的, 也不可能适用于每一种场景, 因此我们提供了大量的特性来支持可插拔功能。---------针对不同的被追踪业务,提供了多种探针来解决,比如redis探针,http探针,mysql探针
可移植. SkyWalking 可以运行在多种环境下, 包括: (1) 使用传统的注册中心, 如 Eureka (2) 使用包含服务发现的RPC框架,如Spring Cloud, Apache Dubbo (3) 在现代基础设施中使用服务网格 (4) 使用云服务 (5) 跨云部署-------------部署简单,兼容性抢

SkyWalking 逻辑上分为四部分: 探针, 平台后端, 存储和用户界面.
选择了最新的下载,配置上大同小异,下载地址 Downloads | Apache SkyWalking

下载并解压后的目录如下所示

针对不同语言的探针需要单独下载!!!cuiyaonan2000@163.com

修改配置信息apache-skywalking-apm-bin/config/application.yml
这里简单配置一下主要是,选择skywalking存储数据的地方.这里选择的ES7.14.0
具体配置如下所示,同时可以在看到skywalking 所支持的多种数据存储方案

如上storage选择es,且只设置了用户,密码,和连接地址
执行命令 oapService.sh 该启动会持续很长时间耐心等待.因为启动的时候会创建很多ES索引等初始化数据 ,对应的日志文件是skywalking-oap-server.log
执行命令webappService.sh 启动会持续很长时间耐心等待.因为启动的时候会创建很多ES索引等初始化数据 ,对应的日志文件是webapp-console.log
如果想要修改 SkyWalking UI 服务的参数,可以编辑 webapp/webapp.yml 配置文件。例如说:
server.port :SkyWalking UI 服务端口。 默认是8080collector.ribbon.listOfServers :SkyWalking OAP 服务地址数组。因为 SkyWalking UI 界面的数据,是通过请求 SkyWalking OAP 服务来获得的。启动成功后访问IP:8080 访问界面如下所示:
