diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/annotation/SleuthAdvisorConfig.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/annotation/SleuthAdvisorConfig.java index c0becac53..2079bb881 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/annotation/SleuthAdvisorConfig.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/annotation/SleuthAdvisorConfig.java @@ -20,14 +20,12 @@ import java.lang.annotation.Annotation; import java.lang.invoke.MethodHandles; import java.lang.reflect.Method; import java.util.concurrent.atomic.AtomicBoolean; - import javax.annotation.PostConstruct; import org.aopalliance.aop.Advice; import org.aopalliance.intercept.MethodInvocation; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; - import org.springframework.aop.ClassFilter; import org.springframework.aop.IntroductionInterceptor; import org.springframework.aop.Pointcut; @@ -173,6 +171,8 @@ class SleuthAdvisorConfig extends AbstractPointcutAdvisor implements BeanFactor class SleuthInterceptor implements IntroductionInterceptor, BeanFactoryAware { private static final Log logger = LogFactory.getLog(MethodHandles.lookup().lookupClass()); + private static final String CLASS_KEY = "class"; + private static final String METHOD_KEY = "method"; private BeanFactory beanFactory; private SpanCreator spanCreator; @@ -204,6 +204,7 @@ class SleuthInterceptor implements IntroductionInterceptor, BeanFactoryAware { logEvent(span, log + ".before"); } spanTagAnnotationHandler().addAnnotatedParameters(invocation); + addTags(invocation, span); return invocation.proceed(); } catch (Exception e) { if (logger.isDebugEnabled()) { @@ -226,6 +227,11 @@ class SleuthInterceptor implements IntroductionInterceptor, BeanFactoryAware { } } + private void addTags(MethodInvocation invocation, Span span) { + tracer().addTag(CLASS_KEY, invocation.getThis().getClass().getSimpleName()); + tracer().addTag(METHOD_KEY, invocation.getMethod().getName()); + } + private void logEvent(Span span, String name) { if (span == null) { logger.warn("You were trying to continue a span which was null. Please " diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/annotation/SleuthSpanCreatorAspectTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/annotation/SleuthSpanCreatorAspectTests.java index a5a76c4ad..e2df09afe 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/annotation/SleuthSpanCreatorAspectTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/annotation/SleuthSpanCreatorAspectTests.java @@ -129,7 +129,9 @@ public class SleuthSpanCreatorAspectTests { List spans = new ArrayList<>(this.accumulator.getSpans()); then(new ListOfSpans(spans)).hasSize(1) - .hasASpanWithName("custom-name-on-test-method9"); + .hasASpanWithName("custom-name-on-test-method9") + .hasASpanWithTagEqualTo("class", "TestBean") + .hasASpanWithTagEqualTo("method", "testMethod9"); then(ExceptionUtils.getLastException()).isNull(); } @@ -162,6 +164,8 @@ public class SleuthSpanCreatorAspectTests { then(new ListOfSpans(spans)).hasSize(1) .hasASpanWithName("foo") .hasASpanWithTagEqualTo("customTestTag11", "test") + .hasASpanWithTagEqualTo("class", "TestBean") + .hasASpanWithTagEqualTo("method", "testMethod11") .hasASpanWithLogEqualTo("customTest.before") .hasASpanWithLogEqualTo("customTest.after"); then(ExceptionUtils.getLastException()).isNull();