在全链路追踪中加入对方法(Method)追踪
全链路追踪主要是在微服务场景下,实现了服务和服务之间的调用链关系。
这次尝试一下在单体应用中,怎么在全链路追踪技术中加入对方法(Method)追踪。
单体应用是用Springboot开放的一个简单CRUD应用,全链路追踪使用Jaeger,pom.xml中引入了opentracing-spring-jaeger-cloud-starter依赖。
<!-- https://mvnrepository.com/artifact/io.opentracing.contrib/opentracing-spring-jaeger-cloud-starter -->
<dependency>
<groupId>io.opentracing.contrib</groupId>
<artifactId>opentracing-spring-jaeger-cloud-starter</artifactId>
<version>3.3.1</version>
</dependency>
在调研中发现,opentracing-spring-jaeger-cloud-starter依赖的opentracing-spring-cloud-core在0.6.0版本中加入了新的注解@Traced,可以帮助我们实现在方法级别的追踪,但可惜的是,Maven仓库中opentracing-spring-cloud-core的最新版是0.5.9,而且Maven仓库中也没有opentracing-spring-cloud-aop的发布版。


我们可以将opentracing-spring-cloud-core和opentracing-spring-cloud-aop的0.6.0版本的代码,加入我们的Springboot应用中,它会比pom.xml引入的Jar包优先被执行。

然后在我们想追踪的方法(Method)上面加上@Traced注解。并且,调用时需要使用AopContext.currentProxy()的实现进行调用。

最终实现了方法(Method)级别的追踪。(监控系统未使用Jaeger,而是OCI APM服务)

未完!(文章还在整理中)



















