Spring Cloud Sleuth

Adrian Cole, Spencer Gibb, Marcin Grzejszczak, Dave Syer

Table of Contents

1. Introduction
1.1. Terminology
1.2. Purpose
1.2.1. Distributed tracing with Zipkin
1.2.2. Visualizing errors
1.2.3. Live examples
1.2.4. Log correlation
JSON Logback with Logstash
1.2.5. Propagating Span Context
Baggage vs. Span Tags
1.3. Adding to the project
1.3.1. Only Sleuth (log correlation)
1.3.2. Sleuth with Zipkin via HTTP
1.3.3. Sleuth with Zipkin via Spring Cloud Stream
1.3.4. Spring Cloud Sleuth Stream Zipkin Collector
2. Additional resources
3. Features
4. Sampling
5. Instrumentation
6. Span lifecycle
6.1. Creating and closing spans
6.2. Continuing spans
6.3. Creating spans with an explicit parent
7. Naming spans
7.1. @SpanName annotation
7.2. toString() method
8. Managing spans with annotations
8.1. Rationale
8.2. Creating new spans
8.3. Continuing spans
8.4. More advanced tag setting
8.4.1. Custom extractor
8.4.2. Resolving expressions for value
8.4.3. Using toString method
9. Customizations
9.1. Spring Integration
9.2. HTTP
9.3. Example
9.4. TraceFilter
9.5. Custom SA tag in Zipkin
9.6. Custom service name
9.7. Customization of reported spans
9.8. Host locator
10. Span Data as Messages
10.1. Zipkin Consumer
10.2. Custom Consumer
11. Metrics
12. Integrations
12.1. Runnable and Callable
12.2. Hystrix
12.2.1. Custom Concurrency Strategy
12.2.2. Manual Command setting
12.3. RxJava
12.4. HTTP integration
12.4.1. HTTP Filter
12.4.2. HandlerInterceptor
12.4.3. Async Servlet support
12.5. HTTP client integration
12.5.1. Synchronous Rest Template
12.5.2. Asynchronous Rest Template
Multiple Asynchronous Rest Templates
12.5.3. Traverson
12.6. Feign
12.7. Asynchronous communication
12.7.1. @Async annotated methods
12.7.2. @Scheduled annotated methods
12.7.3. Executor, ExecutorService and ScheduledExecutorService
Customization of Executors
12.8. Messaging
12.9. Zuul
13. Running examples