11 Distributed tracing with Spring Cloud Sleuth and Zipkin
This chapter covers
- Using Spring Cloud Sleuth to inject tracing information into service calls
- Using log aggregation to see logs for distributed transaction
- Transforming, Searching, analyzing and visualizing log data in real-time with ELK stack
- Using OpenZipkin to visually understand a user’s transaction as it flows across multiple service class
- Customizing tracing information with Spring Cloud Sleuth and Zipkin
The microservices architecture is a powerful design paradigm for breaking down complex monolithic software systems into smaller, more manageable pieces. These manageable pieces can be built and deployed independently of each other; however, this flexibility comes at a price: complexity. Because microservices are distributed by nature, trying to debug where a problem is occurring can be maddening. The distributed nature of the services means that we have to trace one or more transactions across multiple services, physical machines, and different data stores, and try to piece together what exactly is going on.
This chapter lays out several techniques and technologies for making distributed debugging possible. In this chapter, we look at the following: