SpringCloud链路追踪SkyWalking-第四章-自定义链路追踪

本文介绍了如何通过引入Skywalking的apm-toolkit-trace依赖,在Java项目中实现方法级别的链路追踪。通过在业务方法上添加@Trace注解,可以将这些方法纳入追踪链路,方便问题排查。同时,利用@Tag或@Tags注解,可以为追踪信息添加自定义的参数和返回值标签,以增强日志的详细性。确保返回对象实现了toString方法,以便于查看完整的返回信息。
摘要由CSDN通过智能技术生成

如果我们希望对项目中的业务方法,实现链路追踪,方便我们排查问题,可以使用如下的代码 引入依赖

引入依赖

<!-- Skywalking 工具类 -->
<dependency>
	<groupld>org apache skywalking</groupld>
	<artifactld>apm-toolkit-trace</artifactld>
	<version>8.11.0</version>
</dependency>

版本号对应skywalking-agent的版本号

@Trace将方法加入追踪链路

如果一个业务方法想在ui界面的跟踪链路上显示出来,只需要在业务方法上加上@Trace注解即可

@Trace
public List<Order> list(){
	return orderMapper.list();
}

在这里插入图片描述
点击查看跨度信息
在这里插入图片描述

加入@Tags或@Tag

我们还可以为追踪链路增加其他额外的信息,比如记录参数和返回信息
实现方式:在方法上增加@Tag或者@Tags。
@Tag注解中key = 方法名,value = returnedObj返回值
arg[0] = 参数


@Trace
@Tag(key = "list", value = "returnedObj")
public List<User> list(){
	return userMapper.list();
}

@Trace
@Tags({@Tag(key = "param", value = "arg[0]"),
	@Tag(key = "user", value = "returnedObj")})
public User getById(Integer id){
    return userMapper.getById(id);
}

测试再次访问,就可以看到请求参数和返回值了
在这里插入图片描述

注意返回值,需要返回的对象实现toString()方式,否则这里看到的就是地址

示例

java代码

@Service
public class OauthClientServiceImpl extends BaseServiceImpl<OauthClientEntity, OauthClientMapper> implements OauthClientService {
	@Trace
	@Tags({@Tag(key = "clientId", value = "arg[0]"),
			@Tag(key = "clientEntity", value = "returnedObj")})
	@Override
    public OauthClientEntity findByCode(String clientId) {
		Wrapper<OauthClientEntity> query = new Wrapper<>();
		query.eq("CLIENT_ID_",clientId);
		OauthClientEntity entity = mapper.selectOne(query);
		// mapper.findByCode(clientId);
        return entity;
    }
}

访问

在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值