Springboot整合分布式链路追踪SkyWalking之探针使用和链路采集实战(二)

news2024/11/15 13:50:40

目录

1.链路追踪-框架Springboot项目搭建

1.1 创建一个Springboot项目

1.2 SpringBoot+MybaitsPlus+Mysql开发测试接口

1.2.1 添加依赖配置pom.xml

1.2.2 添加配置 application.properties

1.2.3 开发接口

​ 2.分布式链路追踪的卧底 Skywalking Agent 探针介绍

2.1 Skywalking-Agent的安装和使用

2.2 IDEA编辑器配置Skywalking-Agent链路采集


本篇主要展示SkyWalking和Springboot项目的整合以及探针链路采集展示

SkyWalking的日志上报以及WebHook通知见下面这篇博文

分布式链路追踪SkyWalking进阶实战之RPC上报和WebHook通知(三)_这是王姑娘的微博的博客-CSDN博客本篇主要介绍SkyWalking性能剖析,慢业务代码定位以及通知告警https://blog.csdn.net/wnn654321/article/details/128594388

1.链路追踪-框架Springboot项目搭建

1.1 创建一个Springboot项目

在线创建:https://start.spring.io/

 创建数据库导入数据(自己安装Mysql8)

DROP TABLE IF EXISTS `product`;
CREATE TABLE `product` (
  `id` bigint NOT NULL,
  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '商品标题',
  `detail` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '详情',
  `img` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '图片',
  `amount` decimal(16,0) DEFAULT NULL COMMENT '现价',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
 

INSERT INTO `product` VALUES (1, '商品1', '商品1详情', 'https://file.wnn021.cn/video/2023/05.jpeg', 61);
INSERT INTO `product` VALUES (2, '商品2', '商品2详情', 'https://file.wnn021.cn/video/2023/05.jpeg', 88);
INSERT INTO `product` VALUES (3, '商品3', '商品3详情', 'https://file.wnn021.cn/video/2023/03.jpeg', 999);
INSERT INTO `product` VALUES (4, '商品4', '商品4详情', 'https://file.wnn021.cn/video/2023/banner.jpeg', 79);


1.2 SpringBoot+MybaitsPlus+Mysql开发测试接口

1.2.1 添加依赖配置pom.xml

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>8.0.26</version>
		</dependency>

		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-boot-starter</artifactId>
			<version>3.4.1</version>
		</dependency>

1.2.2 添加配置 application.properties

server.port=8081
#==============================数据库相关配置========================================
spring.datasource.driver-class-name =com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://112.74.xx.xxx:3306/wnn_sky_shop?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username =root
spring.datasource.password =xxxxxxx

#配置mybatis plus打印sql日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

1.2.3 开发接口

商品列表接口   商品详情接口

@SpringBootApplication
@MapperScan("net.wnn.wnnsky.mapper")
public class WnnSkyApplication {

	public static void main(String[] args) {
		SpringApplication.run(WnnSkyApplication.class, args);
	}

}

@RestController
@RequestMapping("/api/product/v1")
public class ProductController {

    @Autowired
    private ProductService productService;

    @RequestMapping("list")
    public JsonData list(){

        List<ProductDO> list =  productService.list();

        return JsonData.buildSuccess(list);
    }

    @GetMapping("/detail/{product_id}")
    public JsonData detail(@PathVariable("product_id") long productId){

        ProductDO productDO = productService.detail(productId);
        return JsonData.buildSuccess(productDO);

    }

}


@Service
public class ProductServiceImpl implements ProductService {

    @Autowired
    private ProductMapper productMapper;

    @Override
    public List<ProductDO> list() {
        return productMapper.selectList(new QueryWrapper<>());
    }

    @Override
    public ProductDO detail(long productId) {
        return productMapper.selectOne(new QueryWrapper<ProductDO>().eq("id",productId));
    }
}

启动后可正常访问商品列表即可

 2.分布式链路追踪的卧底 Skywalking Agent 探针介绍

2.1 Skywalking-Agent的安装和使用

什么SkyWalking探针:探针表示集成到目标系统中的代理或 SDK 库,即收集并格式化数据, 并发送到、,么么么么后端 包括链路追踪和性能指标


Skywalking-Agent的安装和使用

下载skywalking 地址:https://skywalking.apache.org/downloads/

本篇使用 apache-skywalking-apm-8.5.0.tar.gz

skywalking-agen目录文件的介绍

logs:skywalking agent的相关运行日志
bootstrap-plugins:插件包
optional-plugins:插件包(可供选择的插件包,如果需要生效则需要拷贝到plugins包下)
plugins:插件包(生效的插件包,支持多个框架链路追踪)
optional-reporter-plugins:插件包
activations:插件包
config: 配置文件
skywalking-agent.jar:agent代理的jar包(主要是这个!)

skywalking-agent的使用方式
优先级:探针-> JVM配置-> 环境变量配置 -> agent.config(优先级低)
第一种-javaagent:/path/to/skywalking-agent.jar={config1}={value1},{config2}={value2}
-javaagent:../skywalking-agent.jar=agent.service_name=WnnApp,collector.backend_service=127.0.0.1:11800
第二种:-Dskywalking.[option1]=[value2]
-javaagent: ../skywalking-agent.jar -Dskywalking.agent.service_name=WnnApp -Dskywalking.collector.backend_service=127.0.0.1:11800
agent.service_name:客户端服务名,在apm系统中显示的服务名称
collector.backend_service:SW上传的服务地址


2.2 IDEA编辑器配置Skywalking-Agent链路采集

-javaagent:E:\demo\apache-skywalking-apm-bin\agent\skywalking-agent.jar -Dskywalking.agent.service_name=WnnShop -Dskywalking.collector.backend_service=112.xx.xx.xx0:11800

 然后启动服务后,请求 http://localhost:8081/api/product/v1/detail/1 和http://localhost:8081/api/product/v1/list 这两个接口 

刷新 http://112.xx.xx.240:8080/   可以看到sky中已经收集到了端点实例信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/181647.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java设计模式-解释器模式Interpreter

介绍 在编译原理中&#xff0c;一个算术表达式通过词法分析器形成词法单元&#xff0c;而后这些词法单元再通过语法分析器构建语法 分析树&#xff0c;最终形成一颗抽象的语法分析树。这里的词法分析器和语法分析器都可以看做是解释器解释器模式&#xff08;Interpreter Patte…

Linux操作系统使用git提交代码

引言&#xff1a; 北京时间 2023/1/27/9:50&#xff0c;今天的起床时间9:05&#xff0c;可以看出我们是提前了一些些&#xff0c;但是不是我的功劳&#xff0c;当然也不是我的闹钟的功劳&#xff0c;毕竟我的闹钟是8:20和8&#xff1a;50的&#xff0c;因为我亲爱的老妈……懂…

threejs相机控件使用记录

文章目录前言控件列表轨迹球控制器&#xff08;TrackBallControls&#xff09;第一人称控制器&#xff08;FirstPersonControls&#xff09;飞行控制器&#xff08;FlyControls&#xff09;轨道控制器&#xff08;OrbitControls&#xff09;总结前言 threejs提供了很多摄像机控…

mixamo和ue小白人映射关系以及让mixamo绑定的人物在场景中运动的多种方法实践...

ue中的root->Hips ue中 ik_foot_l ik_foot_r下面有foot_r 在mixamo下面leftfoot对应ik_foot_l 但是foot_l 只能给他对应leftToeBase 了 image.pngspline 盆骨对应pelvis 在绑定控制中进行修改即可. image.png方法一 拷贝动画蓝图 [本人原创方法] 此方法毕竟操蛋,虽然完美兼容…

Linux驱动开发基础__休眠与唤醒

目录 1 适用场景 2 内核函数 2.1 休眠函数 2.2 唤醒函数 3 驱动框架 4 编程 4.1 gpio_key_drv.c 4.2 button_test.c 4.3 Makefile 1 适用场景 在前面引入中断时&#xff0c;我们曾经举过一个例子&#xff1a; 妈妈怎么知道卧室里小孩醒了&#xff1f; 休眠-唤醒&…

pytorch深度学习案例(一)——手写数学符号识别

文章目录前言简介数据集项目结构utils模块dataLoadermodelsplotShowtrain模块predict模块下载地址前言 在前面的两篇文章中我们介绍了现代计算机视觉中常见的结构化和非结构化的CNN模型&#xff0c;本篇我们将使用这些CNN模型在手写数学符号数据集上进行识别。 CNN模型的介绍请…

2022回顾

2022年回顾 前言 新年和亲朋好友的相聚差不多接近尾声&#xff0c;假期也所剩无几&#xff0c;开始静下心来写作&#xff0c;回顾一下我的2022年&#xff0c;看下自己去年 做得好的和不足&#xff0c;展望下2023&#xff0c;开始新一年的生活。&#xff08;因为是公历2023年…

Grafana 系列文章(一):基于 Grafana 的全栈可观察性 Demo

&#x1f4da;️Reference: https://github.com/grafana/intro-to-mlt 这是关于 Grafana 中可观察性的三个支柱的一系列演讲的配套资源库。 它以一个自我封闭的 Docker 沙盒的形式出现&#xff0c;包括在本地机器上运行和实验所提供的服务所需的所有组件。 Grafana 全栈可观察…

剑指 Offer 第9天 第10天

目录 剑指 Offer 42. 连续子数组的最大和 剑指 Offer 47. 礼物的最大价值 剑指 Offer 46. 把数字翻译成字符串 剑指 Offer 48. 最长不含重复字符的子字符串 剑指 Offer 42. 连续子数组的最大和 输入一个整型数组&#xff0c;数组中的一个或连续多个整数组成一个子数组。求所…

Python self用法详解

在定义类的过程中&#xff0c;无论是显式创建类的构造方法&#xff0c;还是向类中添加实例方法&#xff0c;都要求将 self 参数作为方法的第一个参数。例如&#xff0c;定义一个 Person 类&#xff1a;class Person: def__init__(self): print("正在执行构造方法") #…

大数据项目---电商数仓(三)

目录 1.即席查询_Presto概述 2.即席查询_Presto_Server的部署 3.即席查询_Presto_Server启动 4.即席查询_命令行客户端说明 5.即席查询_LZO说明 6.即席查询_Presto_web端口 ​编辑 7.即席查询_Presto使用注意事项/优化 8.即席查询_Kylin简介 9.即席查询_前置概念 10.即…

数据库系统结构、数据库系统的组成

文章目录一、数据库系统的三级模式结构1.模式&#xff08;逻辑模式&#xff09;2.外模式&#xff08;子模式、用户模式&#xff09;3.内模式&#xff08;存储模式&#xff09;二、数据库的二级映像功能1.外模式/模式映像2.模式/内模式映像3.实际应用三、数据库系统的组成---硬件…

安卓性能优化之内存优化

Java对象生命周期&#xff1a; 创建&#xff1a;为对象分配内存空间&#xff0c;构造对象应用&#xff1a;此时 对象至少被一个强引用持有不可见&#xff1a;未被任何强引用持有&#xff0c;进行可达性分析不可达&#xff1a;可达性分析为不可达&#xff0c;进入下一阶段收集&…

notes

等差&#xff1a;&#xff0c;求 解&#xff1a;、 &#xff0c;则 解&#xff1a; x系数y系数1412 由 得分母 &#xff1b;则分子为&#xff0c; 解&#xff1a;令 已知两边及夹角&#xff0c;可图解 解析几何条件转化 1.平行四边形条件的转化几何性质代数实现(1)对边平行斜…

【IoT】创业:如何找到可以主导的创业市场?

如果你想开始创业&#xff0c;开启一段不一样的旅程&#xff0c;那么你首先要做的就是选赛道&#xff01; 如何选择你的赛道、你的第一个市场呢&#xff1f; 换句话说就是&#xff0c;你如何选择自己的利基市场。 最大的市场&#xff0c;同时&#xff0c;它的需求范围也最广…

全国地级市1999—2020年污染物排放和环境治理相关指标(废水\废气\粉尘等)

工业废水、工业粉尘等污染物是影响居住环境的重要因素&#xff0c;也是在各项研究中常用的数据&#xff01;之前我们基于历年的《中国城市统计年鉴》整理了1999—2020年的人口相关数据和用地相关数据&#xff08;可查看之前推送的文章&#xff09;。在《中国城市统计年鉴》中也…

欧拉回路(模板+外加一些优化)

给定一张图&#xff0c;请你找出欧拉回路&#xff0c;即在图中找一个环使得每条边都在环上出现恰好一次。 输入格式 第一行包含一个整数t, t∈ {1,2}&#xff0c;如果t 1&#xff0c;表示所给图为无向图&#xff0c;如果t2&#xff0c;表示所给图为有向图。 第二行包含两个整数…

【MySQL】日志

https://www.cnblogs.com/myseries/p/10728533.html 在 MySQL 中&#xff0c;有多种不同的日志&#xff0c;包括错误日志、二进制日志、查询日志和慢查询日志&#xff0c;这些日志发挥着不同的作用。另外还有redo日志、undo日志和relay日志。 错误日志 错误日志是 MySQL 中最…

测试篇(四):测试用例的分类、按测试对象划分、按是否查看代码划分、你平时哪种测试方法用的多?、按照开发阶段划分

目录一、按测试对象划分1.1 界面测试1.2 可靠性测试1.3 容测性测试1.4 文档测试1.5 兼容性测试1.6 易用性测试1.7 安装卸载测试1.8 安全测试1.9 性能测试1.10 内存泄露测试1.11 弱网测试二、按是否查看代码划分2.1 黑盒测试2.2 白盒测试2.4 灰盒测试三、面试题&#xff1a;你平…

AcWing 327. 玉米田(状态压缩DP)

AcWing 327. 玉米田&#xff08;状态压缩DP&#xff09;一、问题二、分析1、思路2、状态表示3、状态转移4、循环设计5、初末状态三、代码一、问题 二、分析 1、思路 这道题与之前所讲解的AcWing 1064. 小国王&#xff08;状态压缩DP&#xff09;非常相似&#xff0c;所以如果…