diff --git a/spring-cloud-sleuth-brave/src/main/java/org/springframework/cloud/sleuth/brave/instrument/messaging/SleuthKafkaAspect.java b/spring-cloud-sleuth-brave/src/main/java/org/springframework/cloud/sleuth/brave/instrument/messaging/SleuthKafkaAspect.java index 9f98bdb84..8c084dc25 100644 --- a/spring-cloud-sleuth-brave/src/main/java/org/springframework/cloud/sleuth/brave/instrument/messaging/SleuthKafkaAspect.java +++ b/spring-cloud-sleuth-brave/src/main/java/org/springframework/cloud/sleuth/brave/instrument/messaging/SleuthKafkaAspect.java @@ -64,6 +64,10 @@ public class SleuthKafkaAspect { private void anyProducerFactory() { } // NOSONAR + @Pointcut("execution(public * org.springframework.kafka.core.ProducerFactory.createNonTransactionalProducer(..))") + private void anyNonTransactionalProducerFactory() { + } // NOSONAR + @Pointcut("execution(public * org.springframework.kafka.core.ConsumerFactory.createConsumer(..))") private void anyConsumerFactory() { } // NOSONAR @@ -76,7 +80,7 @@ public class SleuthKafkaAspect { private void anyCreateContainer() { } // NOSONAR - @Around("anyProducerFactory()") + @Around("anyProducerFactory() || anyNonTransactionalProducerFactory()") public Object wrapProducerFactory(ProceedingJoinPoint pjp) throws Throwable { Producer producer = (Producer) pjp.proceed(); return this.kafkaTracing.producer(producer); diff --git a/tests/brave/spring-cloud-sleuth-instrumentation-messaging-tests/src/test/java/org/springframework/cloud/sleuth/brave/instrument/messaging/BraveMessagingAutoConfigurationTests.java b/tests/brave/spring-cloud-sleuth-instrumentation-messaging-tests/src/test/java/org/springframework/cloud/sleuth/brave/instrument/messaging/BraveMessagingAutoConfigurationTests.java index fe6945d64..990e5b61a 100644 --- a/tests/brave/spring-cloud-sleuth-instrumentation-messaging-tests/src/test/java/org/springframework/cloud/sleuth/brave/instrument/messaging/BraveMessagingAutoConfigurationTests.java +++ b/tests/brave/spring-cloud-sleuth-instrumentation-messaging-tests/src/test/java/org/springframework/cloud/sleuth/brave/instrument/messaging/BraveMessagingAutoConfigurationTests.java @@ -96,6 +96,10 @@ public class BraveMessagingAutoConfigurationTests { public void should_wrap_kafka() { this.producerFactory.createProducer(); then(this.mySleuthKafkaAspect.producerWrapped).isTrue(); + this.mySleuthKafkaAspect.producerWrapped = false; + + this.producerFactory.createNonTransactionalProducer(); + then(this.mySleuthKafkaAspect.producerWrapped).isTrue(); this.consumerFactory.createConsumer(); then(this.mySleuthKafkaAspect.consumerWrapped).isTrue();