SpringBoot实战(二十三)集成 SkyWalking
目录
- 一、简介
- 二、拉取镜像并部署
- 1.拉取镜像
- 2.运行skywalking-oap容器
- 3.运行skywalking-ui容器
- 4.访问页面
- 三、下载解压 agent
- 1.下载
- 2.解压
- 四、创建 skywalking-demo 项目
- 1.Maven依赖
- 2.application.yml
- 3.DemoController.java
- 五、构建启动脚本
- 1.startup.bat
- 2.执行启动脚本
- 3.发送请求
- 4.测试结果
- 六、Skywalking 和 Zipkin 对比

- 官方网址: https://skywalking.apache.org/
- 官方文档: SkyWalking 极简入门 | Apache SkyWalking
一、简介
SkyWalking 是一个开源的分布式跟踪系统,可以用于监控和诊断分布式系统的性能问题。它可以跟踪应用程序中的请求流,并收集与请求相关的信息,如服务调用、数据库操作、消息队列等。SkyWalking还可以分析和展示这些跟踪数据,以帮助开发人员定位和解决性能问题。
这里我们介绍使用 Docker 方式部署 Skywalking,如果需要本地部署的,请移步:Skywalking+mysql实战
二、拉取镜像并部署
SkyWalking版本:9.2.0
注意:oap版本和agent版本需要适配,版本不适配可能会出现页面无法访问、agent上报不到页面等问题。
1.拉取镜像
docker pull apache/skywalking-oap-server:9.2.0
docker pull apache/skywalking-ui:9.2.0
2.运行skywalking-oap容器
docker run --name skywalking-oap -e TZ=Asia/Shanghai -p 12800:12800 -p 11800:11800 --restart always -d apache/skywalking-oap-server:9.2.0
3.运行skywalking-ui容器
docker run -d --name skywalking-ui \--restart=always \-e TZ=Asia/Shanghai \-p 8088:8080 \--link skywalking-oap:oap \-e SW_OAP_ADDRESS=http://oap:12800 \apache/skywalking-ui:9.2.0
4.访问页面
访问地址:http://localhost:8088

三、下载解压 agent
agent版本:8.13.0、8.16.0
注意:agent版本和oap版本需要适配,版本不适配可能会出现页面无法访问、agent上报不到页面等问题。
1.下载
下载地址: https://skywalking.apache.org/downloads/

2.解压
解压下载好的 tar 包:

四、创建 skywalking-demo 项目
创建一个 SpringBoot 项目,接口地址为:/demo/test。
1.Maven依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.example</groupId><artifactId>springboot-skywalking</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>skywalking-demo</artifactId><properties><!-- build env --><java.version>1.8</java.version><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><!-- dependency version --><spring-boot-maven-plugin.version>2.7.5</spring-boot-maven-plugin.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><finalName>${project.artifactId}</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot-maven-plugin.version}</version><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build></project>
2.application.yml
server:port: 8081
3.DemoController.java
import com.demo.common.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@Slf4j
@RestController
@RequestMapping("/demo")
public class DemoController {@RequestMapping("/test")public Result<Object> test() {log.info(">>>>>>>>>>【INFO】DemoController.test()...");return Result.succeed();}
}
五、构建启动脚本
1.startup.bat
创建 txt 文件,输入如下内容,重命名文件为 startup.bat。
:: 启动jar包
java -javaagent:D:\IdeaProjects\SpringBootExamples\springboot-skywalking\apache-skywalking-java-agent-8.16.0\skywalking-agent\skywalking-agent.jar=agent.service_name=skywalking-demo,collector.backend_service=127.0.0.1:11800 -jar skywalking-demo\target\skywalking-demo.jar:: 按键继续
pause
如果我们使用 IDEA 启动,也可以直接在启动配置里面设置点击 Modify options:
选择 VM options:
输入需要配置的 agent 参数:
-javaagent:C:\Users\lenovo\Downloads\apache-skywalking-java-agent-8.16.0\skywalking-agent\skywalking-agent.jar=agent.service_name=skywalking-demo,collector.backend_service=127.0.0.1:11800
点击 Apply 之后,点击 Run 启动即可。

2.执行启动脚本

3.发送请求
请求地址: http://localhost:8081/demo/test
发送三次请求:

4.测试结果
刷新页面,可以看到服务菜单有了 skywalking-demo 服务。

点击服务名,可以看到详细的请求响应情况:

点击 Trace 标签,可以看到链路跟踪的内容:

六、Skywalking 和 Zipkin 对比
假如我们请求同样的 /getToken 接口,这个接口涉及 PostgreSQL 用户信息查询,然后创建 token 存储到 Redis 里面,再次调用时直接从 Redis 中获取。
zipkin页面:

skywalking页面:

相比之下,我们可以明显看到 SkyWalking 通过 agent 上报的方式获取到的信息更加全面。
整理完毕,完结撒花~ 🌻
参考地址:
1.极简入门 2022 docker 部署skywalking9.2.0,https://blog.csdn.net/weixin_42784569/article/details/128321315
相关文章:
SpringBoot实战(二十三)集成 SkyWalking
目录 一、简介二、拉取镜像并部署1.拉取镜像2.运行skywalking-oap容器3.运行skywalking-ui容器4.访问页面 三、下载解压 agent1.下载2.解压 四、创建 skywalking-demo 项目1.Maven依赖2.application.yml3.DemoController.java 五、构建启动脚本1.startup.bat2.执行启动脚本3.发…...
深度学习实践——卷积神经网络实践:裂缝识别
深度学习实践——卷积神经网络实践:裂缝识别 系列实验 深度学习实践——卷积神经网络实践:裂缝识别 深度学习实践——循环神经网络实践 深度学习实践——模型部署优化实践 深度学习实践——模型推理优化练习 深度学习实践——卷积神经网络实践ÿ…...
linux | vscode | makefile | c++编译和调试
简单介绍环境: vscode 、centos、 gcc、g、makefile 简单来说就是,写好项目然后再自己写makefile脚本实现编译。所以看这篇博客的用户需要了解gcc编译的一些常用命令以及makefile语法。在网上看了很多教程,以及官网也看了很多次,最…...
Spring | Bean 作用域和生命周期
一、通过一个案例来看 Bean 作用域的问题 Spring 是用来读取和存储 Bean,因此在 Spring 中 Bean 是最核心的操作资源,所以接下来我们深入学习⼀下 Bean 对象 假设现在有⼀个公共的 Bean,提供给 A 用户和 B 用户使用,然而在使用的…...
培训(c++题解)
题目描述 某培训机构的学员有如下信息: 姓名(字符串)年龄(周岁,整数)去年 NOIP 成绩(整数,且保证是 5 的倍数) 经过为期一年的培训,所有同学的成绩都有所提…...
ansible-playbook编写 lnmp 剧本
ansible-playbook编写 lnmp 剧本 vim /opt/lnmp/lnmp.yaml执行剧本 ansible-playbook lnmp.yaml...
需求太多处理不过来?MoSCoW模型帮你
一、MoSCoW模型是什么 MoSCoW模型 是在项目管理、软件开发中使用的一种排序优先级的方法,以便开发人员、产品经理、客户对每个需求交付的重要性达成共识。 MoSCoW是一个首字母缩略词,代表: M(Must have):…...
Vue 3:玩一下web前端技术(六)
前言 本章内容为VUE请求后端技术与相关技术讨论。 上一篇文章地址: Vue 3:玩一下web前端技术(五)_Lion King的博客-CSDN博客 下一篇文章地址: Vue 3:玩一下web前端技术(七)_Lio…...
【点云处理教程】00计算机视觉的Open3D简介
一、说明 Open3D 是一个开源库,使开发人员能够处理 3D 数据。它提供了一组用于 3D 数据处理、可视化和机器学习任务的工具。该库支持各种数据格式,例如 .ply、.obj、.stl 和 .xyz,并允许用户创建自定义数据结构并在程序中访问它们。 Open3D 广…...
Windows10系统还原操作
哈喽,大家好,我是雷工! 复制了下虚拟机的Win10系统,但其中有一些软件,想实现类似手机的格式化出厂操作,下面记录Windows10系统的还原操作。 一、系统环境: 虚拟机内的Windows10,64…...
Django学习笔记-模板(Template)基础
使用模块可以很方便的执行一些数据操作,然后根据传入的数据直接在模板html文件中进行处理。 1.Django中的模板配置 Django的模板引擎在sttings.py文件中: TEMPLATES [{# 模板引擎,默认为django模板BACKEND: django.template.backends.dja…...
使用 NVM(Node Version Manager)管理 Node.js 版本
使用 NVM(Node Version Manager)管理 Node.js 版本 步骤一:安装 NVM NVM 是一个用于安装和管理不同版本的 Node.js 的工具。首先,你需要确保你的系统上已经安装了 NVM。可以通过以下命令检查 NVM 是否已经安装: nvm …...
(文章复现)梯级水光互补系统最大化可消纳电量期望短期优化调度模型matlab代码
参考文献: [1]罗彬,陈永灿,刘昭伟等.梯级水光互补系统最大化可消纳电量期望短期优化调度模型[J].电力系统自动化,2023,47(10):66-75. 1.基本原理 1.1 目标函数 考虑光伏出力的不确定性,以梯级水光互补系统的可消纳电量期望最大为目标,函数…...
tinkerCAD案例:24. Ruler - Measuring Lengths 标尺 -量勺
tinkerCAD案例:24. Ruler - Measuring Lengths 标尺 - 测量长度 Project Overview: 项目概况: A machine shop, where any idea can become a reality, can cost millions and million of dollars. Still, the most important tool in the shop is the…...
linux系统编程重点复习--线程同步
目录 复习目标: 1 互斥锁 1.1互斥锁的使用步骤 1.2 练习 1.3 死锁 2 读写锁 3 条件变量 4 信号量 复习目标: 熟练掌握互斥量的使用说出什么叫死锁以及解决方案熟练掌握读写锁的使用熟练掌握条件变量的使用理解条件变量实现的生产消费者模型理解…...
【Docker 学习笔记】Windows Docker Desktop 安装
文章目录 一、前言二、Windows Docker 安装1. 基于Hyper-V后端和Windows容器的安装2. 基于WSL2后端的安装(推荐)3. 安装Docker Desktop on Windows4. 启动并验证Docker Desktop 一、前言 Docker并非是一个通用的容器工具,它依赖于已存在并运…...
getInputStream has already been called for this request 问题记录
问题背景 HttpServletRequest.getReader() HttpServletRequest.getInputStream() 不能在过滤器中读取一次二进制流(字符流),又在另外一个Servlet中读取一次,即一个InputSteam(BufferedReader)对象在被读取完成后,将无…...
日撸代码300行:第60天(小结)
1、自己对于这个专栏的代码抄写也是断断续续,由于种种原因上次在第54天没坚持下来,这次继续希望能抄完。 2、现在代码的阅读和理解能力明显比刚开始抄代码的时候强了不少。感觉坚持到现在收获还是不小。现在基本上来说仔细想一下都能够理清楚代码的意思。…...
python和java哪个更有前景,python和java哪个更有前途
大家好,小编为大家解答python和java哪个好学,零基础的问题。很多人还不知道python和java哪个更容易入门,现在让我们一起来看看吧! 进入编程行业是很多人的梦想,现在越来越多的人都想要通过培训的方式进入IT行业中,但是…...
LeetCode_11. 盛最多水的容器
题目描述 11. 盛最多水的容器 - 力扣(LeetCode)https://leetcode.cn/problems/container-with-most-water/ 思路分析 这题就是典型的是一道很经典的面试题,最优的解法是双指针,但很多人在第一次看到这题的时候很难想到用双指针来…...
Pixel Couplet Gen实战案例:基于Retro Game UI的微信小程序春联H5页
Pixel Couplet Gen实战案例:基于Retro Game UI的微信小程序春联H5页 1. 项目背景与设计理念 1.1 传统与数字的碰撞 春节作为中国最重要的传统节日,春联文化已有千年历史。然而在数字时代,传统春联形式面临着与年轻群体脱节的问题。Pixel C…...
OpenClaw对话日志分析:Qwen3.5-9B优化任务执行成功率
OpenClaw对话日志分析:Qwen3.5-9B优化任务执行成功率 1. 问题背景与数据准备 去年开始使用OpenClaw对接Qwen3.5-9B模型时,我发现一个有趣现象:同样的自动化任务,在不同时段执行成功率波动很大。有时能完美完成文件整理和邮件发送…...
5个突破点:解锁时空数据金矿的ST-DBSCAN实战指南
5个突破点:解锁时空数据金矿的ST-DBSCAN实战指南 【免费下载链接】st_dbscan ST-DBSCAN: Simple and effective tool for spatial-temporal clustering 项目地址: https://gitcode.com/gh_mirrors/st/st_dbscan 问题发现:被忽视的时空关联密码 为…...
如何用Notepad--打造跨平台开发环境:国产编辑器的逆袭之路
如何用Notepad--打造跨平台开发环境:国产编辑器的逆袭之路 【免费下载链接】notepad-- 一个支持windows/linux/mac的文本编辑器,目标是做中国人自己的编辑器,来自中国。 项目地址: https://gitcode.com/GitHub_Trending/no/notepad-- …...
3个高效技巧:用Elsevier Tracker实现投稿状态智能监控
3个高效技巧:用Elsevier Tracker实现投稿状态智能监控 【免费下载链接】Elsevier-Tracker 项目地址: https://gitcode.com/gh_mirrors/el/Elsevier-Tracker 你是否也曾经历过这样的科研日常:每天打开Elsevier投稿系统,重复登录、点击…...
书匠策AI:学术江湖里的“论文剑客”,助你披荆斩棘!
书匠策AI官网:www.shujiangce.com | 微信公众号搜一搜:书匠策AI 在学术的江湖里,写期刊论文就像是一场“闯关游戏”——选题、查文献、搭框架、写内容、调格式……每一关都充满挑战,稍有不慎就可能“Game Over”。但别怕…...
KKManager技术指南:从基础配置到效能优化的全方位实践
KKManager技术指南:从基础配置到效能优化的全方位实践 【免费下载链接】KKManager Mod, plugin and card manager for games by Illusion that use BepInEx 项目地址: https://gitcode.com/gh_mirrors/kk/KKManager 一、价值定位:重新定义模组管理…...
思科故障排查命令 TOP50
在网络运维这行干久了,你会发现一个很现实的事情:90% 的故障,其实靠“几条命令”就能定位. 但问题是——很多人不是不会,而是: 想不起来用哪个命令 不知道该从哪一步查 查了但不会“看输出” 所以这篇文章,我不单是给你列命令,而是帮你建立一个: 👉 “排查思路 + 命…...
人脸分析系统快速上手教程:一键部署智能人脸检测工具
人脸分析系统快速上手教程:一键部署智能人脸检测工具 1. 系统介绍与核心功能 1.1 什么是人脸分析系统 人脸分析系统(Face Analysis WebUI)是一个基于InsightFace框架的智能人脸检测与分析工具。它能够自动识别图片中的人脸,并提…...
Qwen3视觉黑板报辅助数据库课程设计:ER图与数据关系可视化
Qwen3视觉黑板报辅助数据库课程设计:ER图与数据关系可视化 你是不是也经历过这样的场景?面对《数据库课程设计》这门课,老师布置了一个“图书管理系统”或者“学生选课系统”的题目,你脑子里有一堆想法,但就是不知道该…...
