spring-kafka: Kafka Streams tracing no longer working after upgrading to Spring Boot 3 + Micrometer Tracing
Context
At the moment I’m migrating some Spring Boot 2.7.x, Spring for Apache Kafka applications to Spring Boot 3.
I followed the migration guide and Spring Kafka documentation regarding migrating from Spring Cloud Sleuth to Micrometer Tracing
- https://docs.spring.io/spring-kafka/reference/html/#observation-gen
- https://github.com/spring-cloud/spring-cloud-release/wiki/Spring-Cloud-2022.0-Release-Notes
- https://github.com/micrometer-metrics/tracing/wiki/Spring-Cloud-Sleuth-3.1-Migration-Guide
Distributed tracing works fine for:
- producing to Kafka (by enabling observation on the KafkaTemplate)
- and consuming from Kafka (by enabling observation via the container properties of the KafkaListenerContainerFactory)
But for Kafka streams application (using the KafkaStreamBrancher in my minimal, reproducible, sample) the tracing is no longer working after the upgrade.
In what version(s) of Spring for Apache Kafka are you seeing this issue?
Spring for Apache Kafka: 3.0.4
Migrating from:
- Spring Boot 2.7.9
- Spring Cloud: 2021.0.6
- Spring for Apache Kafka: 2.8.11
- Spring Cloud Sleuth
to:
- Spring Boot 3.0.4
- Spring Cloud: 2022.0.1
- Spring for Apache Kafka: 3.0.4
- Micrometer Tracing (Open Telemetry + Zipkin)
Describe the bug
For the Kafka streams application the tracing is no longer working after the upgrade.
Spring Boot 2.7.9, Spring Kafka and Spring Cloud Sleuth:

Spring Boot 3.0.4, Spring Kafka and Micrometer Tracing (OTEL)

Expected behavior
I expect the traces of my Kafka Streams application are reported in this case to Zipkin.
Sample to reproduce the issue
I put some effort in creating a GitHub repository with a minimal, reproducible, sample to reproduce the issue. The README of the sample project contains all the step to reproduce the issue.
Branches in the example repository:
main: branch that contains the example to reproduce the issue with Spring Boot 3.0.4, Spring Kafka and Micrometer Tracingspring-boot-2.7-spring-cloud-sleuth: branch that contains a fully working example based on Spring Boot 2.7.9 and Spring Cloud Sleuth
Did I overlook something in the documentation to enable tracing for my Kafka Streams application? Or is tracing for Kafka Stream applications not supported yet using Spring for Apache Kafka and Micrometer Tracing?
About this issue
- Original URL
- State: open
- Created a year ago
- Comments: 15 (8 by maintainers)
I think we will keep this one as a
documentationtype to mention in the future how to instrument Kafka Streams with an observability when it is ready on a common library.Added an issue in Micrometer - https://github.com/micrometer-metrics/micrometer/issues/3713 I guess we can close this in favor of that one?
Ok I see so this has to be done on the kafka level. We already have metrics for Kafka (https://github.com/micrometer-metrics/micrometer/tree/main/micrometer-core/src/main/java/io/micrometer/core/instrument/binder/kafka) so we would need to add observability support, right?