工作纪实_16-Spring项目集成SkyWalking打印traceId

本文介绍了如何将SkyWalking集成到Spring项目中进行分布式链路追踪。首先从Apache官网下载SkyWalking,然后启动SkyWalking服务,接着配置项目,包括引入依赖、设置配置,并在需要跟踪的代码上添加@Trace注解。最后通过彩色日志和SkyWalking Web界面观察追踪结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公司IOT平台需要重构,我负责搭建前期的脚手架,关于分布式链路的追踪,做了些工作,简单比较一下之后,决定使用skywalking这个apache组件,相对于开发来说较为友好,实现也简单

1.下载skywalking

官网地址:http://skywalking.apache.org/downloads/
在这里插入图片描述

2.启动skywalking

为了测试方便,我在windows上启动skywalking
在这里插入图片描述

3.打开skywalking的web界面

启动后,直接输入http://localhost:8080
在这里插入图片描述

4.启动项目

我准备的是一个spring-boot项目,在主类上加上以下VM参数即可:
在这里插入图片描述
命令:

-javaagent:D:\apache-skywalking-apm-bin-es7\agent\skywalking-agent.jar
-Dskywalking.agent.service_name=ecej-iot-test

5.项目中关于skywalking的配置

5.1.包引入

<dependency>
            <groupId>net.logstash.logback</groupId>
            <artifactId>logstash-logback-encoder</artifactId>
            <version>5.3</version>
        </dependency>
<dependency>
    <groupId>org.apache.skywalking</groupId>
    <artifactId>apm-toolkit-logback-1.x</artifactId>
    <version>6.1.0</version>
</dependency>
<dependency>
    <groupId>org.apache.skywalking</groupId>
    <artifactId>apm-toolkit-trace</artifactId>
    <version>6.1.0</version>
</dependency>

版本都是【6.1.0】

5.2.logback配置

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
                <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [%thread] %-5level %logger{36} -%msg%n</Pattern>
            </layout>
        </encoder>
    </appender>

5.3.要跟踪的代码上加上注解@Trace

在这里插入图片描述

6.检测追踪结果

6.1.彩色日志配置及打印

logback-xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="false">
    <springProperty 
### SkyWalkingtraceId 的用法及查看方法 #### 生成机制 在分布式环境中,`TraceId` 是用于唯一标识一次请求在其整个生命周期内的传播路径。SkyWalking 使用字节码增强技术来自动捕获并分配 `TraceId` 给每一个新的跟踪上下文(`TraceContext`),从而确保即使是在复杂的微服务体系结构下也能保持数据的一致性和可追溯性[^1]。 对于具体的生成过程而言,当一个新请求进入系统时,SkyWalking 将会为此创建一个新的 `TraceId` 并将其存储于当前线程关联的 `TraceContext` 对象之中;而对于后续的服务调用,则会在传递参数的同时携带该 `TraceId` 参数,使得下游服务能够继续沿用相同的 ID 进行记录[^2]。 #### 查看途径 为了方便开发者调试以及性能分析工作SkyWalking 提供了多种手段让用户可以轻松获取到这些重要的追踪信息: - **Web UI**: 用户可以直接登录到 SkyWalking 的 Web 控制台页面,在这里不仅可以直观地看到各个应用组件之间的交互关系图谱,还可以针对特定的时间范围筛选出符合条件的历史轨迹列表,并点击任意一项查看详情。 - **日志集成**: 如果项目中采用了像 Logback 这样的日志框架的话,那么只需要按照官方文档指导完成相应配置之后就能让每次的日志输出都带上对应的 `TraceId` 字段了。例如设置 pattern layout 如 `%X{sw.trace.id}` 或者利用 MDC (Mapped Diagnostic Contexts) 功能手动向其中存入 key-value 形式的 tracing 数据[^3]。 ```xml <!-- logback.xml --> <configuration> <!-- other configurations --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg [TID:%X{sw.trace.id}]%n</pattern> </encoder> </appender> <!-- root logger configuration --> </configuration> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值