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

目录

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中已经收集到了端点实例信息

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值