Redian新闻
>
自从用了这款链路追踪系统,睡觉真香!!

自从用了这款链路追踪系统,睡觉真香!!

公众号新闻

👉 这是一个或许对你有用的社群

🐱 一对一交流/面试小册/简历优化/求职解惑,欢迎加入芋道快速开发平台知识星球。下面是星球提供的部分资料: 

👉这是一个或许对你有用的开源项目

国产 Star 破 10w+ 的开源项目,前端包括管理后台 + 微信小程序,后端支持单体和微服务架构。

功能涵盖 RBAC 权限、SaaS 多租户、数据权限、商城、支付、工作流、大屏报表、微信公众号、CRM 等等功能:

  • Boot 仓库:https://gitee.com/zhijiantianya/ruoyi-vue-pro
  • Cloud 仓库:https://gitee.com/zhijiantianya/yudao-cloud
  • 视频教程:https://doc.iocoder.cn
【国内首批】支持 JDK 21 + SpringBoot 3.2.2、JDK 8 + Spring Boot 2.7.18 双版本 

来源:不焦躁的程序员


随着业务发展壮大,微服务越来越多,调用链路越来越复杂,需要快速建立链路跟踪系统,以及建立系统的可观测性,以便快速了解系统的整体运行情况。此时就非常推荐 SkyWalking 了,SkyWalking 不仅仅是一款链路跟踪工具,还可以作为一个系统监控工具,还具有告警功能。使用简便、上手又快。真可谓快、准、狠。

本文主要介绍如何快速集成使用 SkyWalking,从 3 个方面入手:原理、搭建、使用。

1、原理

1.1、概括

SkyWalking 整体分为 4 个部分:探针采集层、数据传输和逻辑处理层、数据存储层、数据展示层。

1.2、探针采集层

所谓探针,实际上是一种动态代理技术,只不过不是我们常用的 Java 代理类,而是在类加载时,就生成了增强过的代理类的字节码,增强了数据拦截采集上报的功能。

探针技术是在项目启动时通过字节码技术(比如 JavaAgent、ByteBuddy)进行类加载和替换,生成新的增强过的 Class 文件,对性能的影响是一次性的。

探针技术,因为在类加载时进行转换,增强了部分功能,所以会增加项目启动时间,同时也会增加内存占用量和线程数量。但是对性能影响不大,官方介绍在 5% ~ 10%之间。

探针层在类转换时,通过各种插件对原有的类进行增强,之后在运行时拦截请求,然后将拦截的数据上报给 Skywalking 服务端。同时再加上一些定时任务,去采集应用服务器的基础数据,比如 JVM 信息等。

1.3、数据传输和逻辑处理层

SkyWalking 探针层使用了 GRPC 作为数据传输框架,将采集的数据上报到 SkyWalking 服务端。

SkyWalking 服务端接收数据后,利用各种插件来进行数据的分析和逻辑处理。比如:JVM 相关插件,主要用于处理上报上来的 JVM 信息,数据库插件用来分析访问数据库的信息。然后在将数据存入到数据存储层。

1.4、数据存储层

SkyWalking 的数据存储层支持多种主流数据库,可以自行到配置文件里查阅。我推荐使用 ElasticSearch,存储量大,搜索性能又好。

1.5、数据展示层

SkyWalking 通过 Rocketbot 进行页面 UI 展示。可以在页面的左上角看到这个可爱的Rocketbot

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/ruoyi-vue-pro
  • 视频教程:https://doc.iocoder.cn/video/

2、搭建

知道了原理,搭建就很轻松了,使用 SkyWalking 其实就 3 个步骤:

  1. 搭建数据存储部件。
  2. 搭建 SkyWalking 服务端。
  3. 应用通过 agent 探针技术将数据采集上报给 SkyWalking 服务端。

2.1、搭建数据存储部件

SkyWalking 支持多种存储方式,此处推荐采用 Elasticsearch 作为存储组件,存储的数据量较大,搜索响应快。

快速搭建 Elasticsearch:

  1. 安装 java:yum install java-1.8.0-openjdk-devel.x86_64
  2. 下载 Elasticsearch 安装包:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-17-1
  3. 修改elasticsearch.yml文件的部分字段:cluster.namenode.namepath.datapath.logsnetwork.hosthttp.portdiscovery.seed_hostscluster.initial_master_nodes。将字段的值改成对应的值。
  4. 在 Elasticsearch 的bin目录下执行./elasticsearch启动服务。
  5. 访问http://es-ip:9200,看到如下界面就代表安装成功。
{
  "name""node-1",
  "cluster_name""my-application",
  "cluster_uuid""GvK7v9HhS4qgCvfvU6lYCQ",
  "version": {
    "number""7.17.1",
    "build_flavor""default",
    "build_type""rpm",
    "build_hash""e5acb99f822233d6ad4sdf44ce45a454xxxaasdfas323ab",
    "build_date""2023-02-23T22:20:54.153567231Z",
    "build_snapshot"false,
    "lucene_version""8.11.1",
    "minimum_wire_compatibility_version""6.8.0",
    "minimum_index_compatibility_version""6.0.0-beta1"
  },
  "tagline""You Know, for Search"
}

2.2、搭建 SkyWalking 服务端

搭建 SkyWalking 服务端只需要 4 步:

1、下载并解压 SkyWalking:https://archive.apache.org/dist/skywalking/8.9.0/

2、进入到安装目录下的修改配置文件:config/apllication.yaml。将存储修改为 ElasticSearch。

3、进入到安装目录下的bin目录,执行./startup.sh启动 SkyWalking 服务端。

4、此时使用 jps 命令,应该可以看到如下 2 个进程。一个是 web 页面进程,一个是接受和处理上报数据的进程。如果没有 jps 命令,那自行查看下是否配置了 Java 环境变量。同时访问http://ip:8080应该可以看到如下界面。

2.3、应用采集上报数据

应用采集并且上报数据,直接使用 agent 探针方式。分为以下 3 步:

1、下载解压 agent :https://archive.apache.org/dist/skywalking/java-agent/8.9.0/,找到skywalking-agent.jar

2、添加启动参数

  • 应用如果是 jar 命令启动,则直接添加启动参数即可:
java -javaagent:/自定义path/skywalking-agent.jar -Dskywalking.collector.backend_service={{agentUrl}} -jar xxxxxx.jar

此处的{{agentUrl}}是 SkyWalking 服务端安装的地址,再加上11800端口。比如:10.20.0.55:11800

  • 应用如果是 Docker 镜像的部署方式,则需要将skywalking-agent.jar打到镜像里,类似下图:

3、启动项目后,即可看到监控数据 ,如下图:

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/yudao-cloud
  • 视频教程:https://doc.iocoder.cn/video/

3、UI 页面使用

原理和搭建已经介绍完毕,接下来快速介绍 UI 页面的功能。下图标红的部分是重点关注区域:

3.1、仪表盘

  • APM:以全局(Global)、服务(Service)、服务实例(Instance)、端点(Endpoint)的维度展示各项指标。
  • Database:展示数据库的各项指标。
  • 服务(Service):某个微服务,或者某个应用。
  • 服务实例(Instance):某个微服务或者某个应用集群的一台实例或者一台负载。
  • 端点(Endpoint):某个 Http 请求的接口,或者 某个接口名+方法名。

3.2、拓扑图

3.3、追踪

关于 UI 界面的使用,还可以参考这个链接:https://juejin.cn/post/7106307197763584030 ,这里写的比较详细。

总结

本文主要从 3 个方面入手:原理、搭建、使用,介绍如何快速集成使用 SkyWalking。核心重点:

  • SkyWalking 其实就 4 部分组成:探针采集上报数据分析和逻辑处理、数据存储数据展示 。安装使用简单、易上手。
  • 探针技术 是 SkyWalking 的基石,说白了就是:在类加载时进行字节码转换增强 ,然后去拦截请求,采集上报数据。
  • UI 页面的使用 ,多用用就熟悉了。

欢迎加入我的知识星球,全面提升技术能力。

👉 加入方式,长按”或“扫描”下方二维码噢

星球的内容包括:项目实战、面试招聘、源码解析、学习路线。

文章有帮助的话,在看,转发吧。

谢谢支持哟 (*^__^*)

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
【万豪5晚免费住酒店真香!】抽屉卡之 Chase Marriott Bonvoy BoundlessRedis最佳实践:系统性能提升了10倍,真香!枕头选不对,睡觉伤颈椎!这款亚朵酒店同款安眠枕,护颈又助眠!决定身体衰老速度的行为,运动第三,睡觉第二,第一个很多人做不到 ...枕头选不对,睡觉伤颈椎!这款超舒适颈椎枕,护颈又助眠!今日5折拿下!喜报!!!!!!美股基本面 - 2024_01_24 * 晨报 * Getaround盘前暴涨60% 获2千万美元自从我衣服换季用了这几招、,省事儿省钱省空间真香!多伦多妹子"抗通胀"妙招:去中国超市!买菜狂省一大笔钱!真香!正宗五常大米来了,一口香糯柔软,饭香浓厚,空口吃都香!枕头选不对,睡觉伤颈椎!这款零压速眠枕,护颈又助眠!今日5折拿下!习总说,上海人“不粘人”;其实,上海,不粘中国枕头选不对,睡觉伤颈椎?这款零压枕,护颈又好睡~真香!大牌上千元「挂耳式耳机」,30年外贸大厂只要几十!4 年前卖到 2000+,现在59元搞定,没有溢价的筋膜枪真香!鬼才倪海厦:决定身体衰老速度的行为,运动第三,睡觉第二,第一个很多人做不到周鸿祎来了!!!!!!被诅咒的20232024去华政读法学硕士真香!免试入学!真香!美国这些大城房价5年翻一番冲鸭!爆涨5000词汇量的方法,真香!项目终于用上了插入式注解,真香!老板太懂事儿了!!!!这公司!!!vivo:从用户那里,找到守成与创新的衔接点美国留学太贵?看了美国博士的薪资水平,真香!枕头选不对,睡觉伤颈椎!这款超舒适颈椎枕,护颈又助眠!《华灯初上》&《一程山路》抢到就是真香!多伦多大学三大校区5个夏令营:低收入家庭有助学金初探分布式链路追踪春季女装上新,卫衣不过百,外套一百多,真香!最聪明的养生:吃饭,睡觉,还有一点很多人知道做不到厨电选的好,烹饪无烦恼 | 这些被分享N次的厨房好物,用了真香!软乎胖嘟,真香!30、长篇家庭伦理小说《嫁接》第七章 非法打工 (4)隐藏在「农村」的美国名校,真香!
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。