EDUCBA Logo

EDUCBA

MENUMENU
  • Explore
    • EDUCBA Pro
    • PRO Bundles
    • Featured Skills
    • New & Trending
    • Fresh Entries
    • Finance
    • Data Science
    • Programming and Dev
    • Excel
    • Marketing
    • HR
    • PDP
    • VFX and Design
    • Project Management
    • Exam Prep
    • All Courses
  • Blog
  • Enterprise
  • Free Courses
  • Log in
  • Sign Up
Home Software Development Software Development Tutorials Spring Tutorial Spring Cloud Sleuth
 

Spring Cloud Sleuth

Updated February 21, 2023

Spring Cloud Sleuth

 

 

Introduction to Spring Cloud Sleuth

Spring cloud sleuth provides auto-configuration of spring boot for distributed tracing. It will configure everything which we require to get started. Sleuth includes where the trace data is reporting, how traces we require if we are required to send remote field, and which libraries need to be traced. It is used to add the traces into slf4j mdc.

Watch our Demo Courses and Videos

Valuation, Hadoop, Excel, Mobile Apps, Web Development & many more.

What is spring cloud sleuth?

  • It is used to span ids and add traces into the slf4j mdc, so we can extract the logs from a given span or trace using a log aggregator.
  • It is also used to push the sampling decision below for tracer implementation. There are multiple ways we can change the sampling decision at runtime.
  • To implement the project, we need to add starter sleuth dependency in the pom.xml file.

Spring cloud sleuth is adding two types of IDs in our logging.

1) Span ID

2) Trace ID

  • Span ID represents the unit of work like sending a request of HTTP. Trace ID in sleuth contains a number of span IDs, creating a tree structure.

When calling one microservice to other traces, the ID is the same; it will not change throughout the procedure.

Use of Spring Cloud Sleuth and Zipkin

  • In spring, cloud sleuth traces connect it from service to service using header propagation. It will use the default format for traces as B3.
  • We can also change the sampling decision by skipping the client span reporting. We can achieve this by setting the spring sleuth web client skip pattern (spring.sleuth.web.client.skip-pattern) with the path pattern as skipped.
  • Zipkin is the distributed tracing system; it was used to gather the timing data needed to troubleshoot the latency problems. Zipkin feature includes the lookups and collection of the data.
  • Zipkin is very useful at the time of debugging when we have implemented multiple microservices and our application is performing slowly at a certain period.
  • Sleuth is nothing but the tool which was provided by spring cloud, used to generate service calls, the diagnostic context of mapping and headers, trace ID, and span ID.
  • Spring cloud sleuth is used in tools like ELK and Zipkin. Sleuth is used in Zipkin for processing logs and storing the indexes.
  • Sleuth is from the spring cloud family; after adding the same into the classpath, it will automatically be integrated between communication channels.

Spring Cloud Build project

The below example shows build projects.

1. Create a project template of spring cloud build by using spring initializer.

  • In the below step, we have provided project group name as com. example, artifact name as springcloudsleuth, project name as springcloudsleuth, and selected java version as 8.
  • In the below project, we have selected spring web and sleuth dependency to implement the spring cloud build project.

Group – com. example Artifact name – springcloudsleuth
Name – springcloudsleuth Spring boot – 2.6.0
Project – Maven Project Description – Project for springcloudsleuth
Java – 8 Dependencies – sleuth, spring web
Package name – com. example.springcloudsleuth
Spring Cloud Sleuth - template

2. After generating the project extract files and open this project by using the spring tool suite.

After generating the project using the spring initializer in this step, we extract the jar file and open the project using the spring tool suite.

Spring Cloud Sleuth - Extract Files

3. After opening the project using spring tool suite check the project and its files.

In this step, we are checking all the project template files. We also need to check maven dependencies and system libraries.

Spring Cloud Sleuth - Project files

4. Add dependency packages.

In this step, we are adding the contract verifier dependency in the build project.

Code:

<dependency> -- Start of dependency tag.
<groupId>org.springframework.cloud</groupId> -- Start and end of groupId tag.
<artifactId>spring-cloud-starter-sleuth</artifactId> -- Start and end of artifactId tag.
</dependency> -- End of dependency tag.

Spring Cloud Sleuth - contract verifier

5. Build the project.

Spring Cloud Sleuth - project building

Example of Spring cloud sleuth

We are using the sleuth application to configure the first microservice. The below step shows example of sprig cloud sleuth as follows.

1. Create controller for the first microservice –

Microservice 1

Code:

@SpringBootApplication
public class micro1 {
public static void main(String[] args) {
SpringApplication.run(micro1.class, args);
}
}
@RestController
class ZipkinController{
@Autowired
RestTemplate rTemp;
@Bean
public RestTemplate getRestTemplate() {
return new RestTemplate();
}
@Bean
public springcloudsleuth alwaysSampler() {
return new springcloudsleuth();
}
@GetMapping(value="/sleuth-Zipkin")
public String zipkinService1()
{
LOG.info("spring cloud sleuth");
String response = (String) rTemp.exchange ("http://localhost:8080/zipkin",
HttpMethod.GET, null, new ParameterizedTypeReference<String>() {}).getBody ();
return "springcloudsleuth...";
}
}

Image 6

2. Configure application.properties file –

Code:

server.port = 8080
spring.application.name = springcloudsleuth-server1

Image 7

3. Create another three microservices and configure the application.properties file, use the port 8081, 8082, and 8083 –

Microservice 2

Image 8

Microservice 3

Image 9

Microservice 4

Image 10

4. After creating and configuring all microservices start all microservices –

Start the first microservice:

Image 11

Start the second microservice:

Image 12

Start the third microservice:

Image 13

Start the fourth microservice:

Image 14

5. Open zipkin dashboard and check the services –

Image 15

Web Request with Service Access

  • The extremely customizable web requests view allows us to examine more popular web requests from all of our services and search for requests that originate from directed to specific URLs.
  • The view of service access is easily customizable and serves as a good starting point for a more in-depth examination of our services.
  • Using sleuth it is very easy to add the required dependency to implement a project.
  • We can configure an alternate header format by specifying similar data formats.

Conclusion

Spring cloud sleuth is used to span ids and add traces into the slf4j mdc, so we can extract the logs from a given span or trace by using log aggregator. It will configure everything which we require to get started.

Recommended Articles

This is a guide to Spring Cloud Sleuth. Here we discuss the definition, what is spring cloud sleuth, examples, code, and applications. You may also have a look at the following articles to learn more –

  1. Spring Cloud Dependencies
  2. Spring Cloud Version
  3. Spring Cloud Components
  4. Spring cloud stream

Primary Sidebar

Footer

Follow us!
  • EDUCBA FacebookEDUCBA TwitterEDUCBA LinkedINEDUCBA Instagram
  • EDUCBA YoutubeEDUCBA CourseraEDUCBA Udemy
APPS
EDUCBA Android AppEDUCBA iOS App
Blog
  • Blog
  • Free Tutorials
  • About us
  • Contact us
  • Log in
Courses
  • Enterprise Solutions
  • Free Courses
  • Explore Programs
  • All Courses
  • All in One Bundles
  • Sign up
Email
  • [email protected]

ISO 10004:2018 & ISO 9001:2015 Certified

© 2025 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
Loading . . .
Quiz
Question:

Answer:

Quiz Result
Total QuestionsCorrect AnswersWrong AnswersPercentage

Explore 1000+ varieties of Mock tests View more

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

By continuing above step, you agree to our Terms of Use and Privacy Policy.
*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you

EDUCBA Login

Forgot Password?

🚀 Limited Time Offer! - 🎁 ENROLL NOW