@@ -32,28 +32,61 @@ implementation("io.opentelemetry.instrumentation:opentelemetry-spring-kafka-2.7:
3232The instrumentation library provides interceptors that can be added to Spring Kafka message
3333listener containers and producers to provide spans and context propagation.
3434
35+ For Spring Boot 2.x and 3.x, instrument producers with:
36+
3537``` java
3638import io.opentelemetry.api.OpenTelemetry ;
3739import io.opentelemetry.instrumentation.kafkaclients.v2_6.KafkaTelemetry ;
38- import io.opentelemetry.instrumentation.spring.kafka.v2_7.SpringKafkaTelemetry ;
3940import org.springframework.boot.autoconfigure.kafka.DefaultKafkaProducerFactoryCustomizer ;
4041import org.springframework.context.annotation.Bean ;
4142import org.springframework.context.annotation.Configuration ;
42- import org.springframework.kafka.config.ContainerCustomizer ;
43- import org.springframework.kafka.listener.ConcurrentMessageListenerContainer ;
4443
4544@Configuration
4645public class KafkaInstrumentationConfig {
4746
48- // Instrument Kafka producers
4947 @Bean
5048 public DefaultKafkaProducerFactoryCustomizer producerInstrumentation (
5149 OpenTelemetry openTelemetry ) {
5250 KafkaTelemetry kafkaTelemetry = KafkaTelemetry . create(openTelemetry);
5351 return producerFactory - > producerFactory. addPostProcessor(kafkaTelemetry:: wrap);
5452 }
53+ }
54+ ```
55+
56+ For Spring Boot 4.x, use the new package for the same customizer:
57+
58+ ``` java
59+ import io.opentelemetry.api.OpenTelemetry ;
60+ import io.opentelemetry.instrumentation.kafkaclients.v2_6.KafkaTelemetry ;
61+ import org.springframework.boot.kafka.autoconfigure.DefaultKafkaProducerFactoryCustomizer ;
62+ import org.springframework.context.annotation.Bean ;
63+ import org.springframework.context.annotation.Configuration ;
64+
65+ @Configuration
66+ public class KafkaInstrumentationConfig {
67+
68+ @Bean
69+ public DefaultKafkaProducerFactoryCustomizer producerInstrumentation (
70+ OpenTelemetry openTelemetry ) {
71+ KafkaTelemetry kafkaTelemetry = KafkaTelemetry . create(openTelemetry);
72+ return producerFactory - > producerFactory. addPostProcessor(kafkaTelemetry:: wrap);
73+ }
74+ }
75+ ```
76+
77+ Instrument consumers with:
78+
79+ ``` java
80+ import io.opentelemetry.api.OpenTelemetry ;
81+ import io.opentelemetry.instrumentation.spring.kafka.v2_7.SpringKafkaTelemetry ;
82+ import org.springframework.context.annotation.Bean ;
83+ import org.springframework.context.annotation.Configuration ;
84+ import org.springframework.kafka.config.ContainerCustomizer ;
85+ import org.springframework.kafka.listener.ConcurrentMessageListenerContainer ;
86+
87+ @Configuration
88+ public class KafkaInstrumentationConfig {
5589
56- // Instrument Kafka consumers
5790 @Bean
5891 public ContainerCustomizer<String , String , ConcurrentMessageListenerContainer<String , String > >
5992 listenerCustomizer(OpenTelemetry openTelemetry) {
0 commit comments