在上一篇文章:三十、springCloudAlibaba-SkyWalking环境搭建与微服务整合 我们大概用了下SkyWalking来监控微服务的调用情况,这里先试下复杂一点的业务场景,加上数据库。
1、环境搭建
我们可以参考二十二、springCloudAlibaba-seata测试验证(完) 搭建好一个seata的分布式事务的环境,然后参考上一篇文章加上skywalking
2、测试
我们发现,skywalking竟然数据库执行语句都有监控,并且还可以查看到执行的sql,真的牛逼
但是我们发现,我的service方法没有进行监控,这可如何是好,有没有办法呢?
3、自定义追踪链路
很简单,只需要引入依赖,加上注解即可
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-trace</artifactId>
<version>8.5.0</version>
</dependency>
这里的依赖版本跟我的skywalking下载的版本是一样的
然后我们只需要在要监控的业务方法加上注解
@Trace
@Tags({@Tag(key="add",value="returnedObj"),
@Tag(key="add",value = "arg[0]")})
public String add(Long merchId) {
return "我是返回";
}
主要是@Trace注解,但是如果想要看到请求和返回,就必须用@Tags注解,其中返回的value只能为”returnedObj”,请求的就从下标开始arg[0]。
这里还需要注意的是,方法返回一定要实现toString方法,不然在控制台看到的就是一个对象内存地址。
启动测试发现
达到预期!
ok!