对项目中的业务方法,实现链路追踪,方便我们排查问题
引入依赖
<!‐‐ SkyWalking 工具类 ‐‐>
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm‐toolkit‐trace</artifactId>
<version>8.4.0</version>
</dependency>
@Trace 注解业务方法
业务方法想在跟踪链路上显示出来,只需要在业务方法上加上@Trace注解即可
代码
@RequestMapping("/list")
public Object list() {
return orderService.list();
}
@Service
public class OrderService {
@Trace
public List<User> list() {
List<User> result = new ArrayList<>();
result.add(new User(1, "用户1"));
result.add(new User(2, "用户2"));
return result;
}
}
测试
http://127.0.0.1:8040/order/list
http://127.0.0.1:8040/order/list
@Tags或@Tag 记录额外信息
可以为追踪链路增加其他额外的信息,比如记录参数和返回信息
实现方式
在方法上增加@Tag或者@Tags
注解说明
@Tag :注解中 key = 方法名 ; value = returnedObj 返回值 arg[0] 参数
代码
@Service
public class OrderService {
@Trace
@Tag(key = "list", value = "returnedObj") // 返回值
public List<User> list() {
List<User> result = new ArrayList<>();
result.add(new User(1, "用户1"));
result.add(new User(2, "用户2"));
return result;
}
@Trace
@Tags({
@Tag(key = "param", value = "arg[0]"), // 第一个参数
@Tag(key = "user", value = "returnedObj") // 返回值
})
public Object getById(Integer id) {
return new User(id, "用户" + id);
}
}
测试
返回值
参数 + 返回值
性能分析
新建任务
分析结果
发送 订单添加请求 查看分析结果