Distributed Tracing System (Spring Cloud Sleuth + OpenZipkin)

When we build a microservice architecture and the number of services keeps growing, we face the problem of debugging and tracing requests through our entire system. What happened when a user got a 500 error on his request? What service incorrectly processed his request? All these questions can be solved by the Distributed Tracing System. Let's take Spring Cloud Sleuth as an example.

How Spring Cloud Sleuth Works

To trace a request through a distributed system, the concepts TraceID and SpanID are introduced. TraceID is generated when a request enters our system and remains unchanged throughout its path. SpanID changes as the request passes from one service to another. If necessary, it is possible to generate new spans within one service to distinguish business processes.

Introducing Java SpecialAgent: Start Tracing Without Writing Any Code

Java SpecialAgent is an extensible OSS Java agent for OpenTracing that enables end-to-end tracing without having to write any code.

With only a single command-line entry for installation, SpecialAgent seamlessly connects to OpenTracing-compliant tracers  —  such as the Jaeger and LightStep tracers  —  allowing you to immediately start observing and propagating distributed traces.

Improving the Developer Experience of Writing Cloud-Native Java Microservices

In the third of our new 4-weekly Open Liberty releases, we have a full implementation of MicroProfile 2.2. MicroProfile 2.2 focuses on improving the developer experience of writing cloud-native Java microservices with MicroProfile. It includes updates to the MicroProfile Rest Client, Fault Tolerance, OpenAPI, and Open Tracing features, and is based on Java EE 8 technologies.

If you're using Maven, here are the coordinates: