Distributed Tracing For Spring Boot 3x App Using Micrometer, Brave And Zipkin
Please check preface of my another blog for initial insight on Micrometer Tracing and it’s succession of Spring Cloud Sleuth:
This blog will give you a full overview of the minimal configuration required to enable any Spring Boot app with Distributed Tracing capability using the following toolsets:
- Micrometer — For code instrumentation & provide tracing bridge to OpenZipkin Brave.
- Brave — Distributed tracing Instrumentation library supporting both W3C & B3 trace context and propagation formats.
- Zipkin — For visualizing, monitoring & troubleshooting distributed systems micro-service traces.
First, we will understand the dependencies required for spring boot auto configuration to take place.
NOTE: For Gradle/Maven dependencies, since we are using all spring BOM managed dependencies, so <version> tag is not used, unless you want to override to specific version. Check all the latest of versions managed by Spring BOM.
For Brave integration, we’ll look at Boot 3 BraveAutoconfiguration and ZipkinConfigurations.BraveConfiguration classes, which auto-configures Distributed Tracing of our app, based on available dependencies in the classpath.
micrometer-tracing-bridge-brave — provides micrometer bridge/facade to Brave tracing. It also transitively…