Spring Boot 3x App — Enable Distributed Tracing using Micrometer, OpenTelemetry And Jaeger
Preface
In distributed systems, knowing how a request traversed from one service to other to form the eventual response, gives us an edge in our System Observability and Issues debugging.
Spring Cloud Sleuth had played a vital role for a very long time in easily enabling Distributed Tracing with any Spring Boot applications with minimal effort. Now, with Spring 3.x and in the wake of unification of Observability (Logs, Traces & Metrics) along with decoupling / streamlining the development for each facilitating Tracing and Reporting Vendors (OpenTelemetry, Brave, Zipkin, Wavefront, Jaeger etc), it made sense for Spring community to defunct Spring Cloud Sleuth and just amalgamate all tracing efforts into Micrometer.
Like Sleuth, with Micrometer Tracing, we get a lot of out-of-the-box benefits, with little to no overhead to our systems tracing capability while maximizing the portability, including but not limited to:
- Seamless integration with Spring Boot
- Easy instrumentation of our app
- No vendor lock-in, switch vendors anytime, by merely changing dependencies & configuration.