Module 2: Zero to Tracing
Mission: Go from “zero” to a full distributed trace in 15 minutes.
In Module 1, we learned the theory. Now, we build.
This module is purely hands-on. You will run a local observability stack (Jaeger) and instrument two applications: one in Java (using Auto-Instrumentation) and one in Go (using Manual Instrumentation).
1. The Architecture
We will build a simple microservices system:
- Client: Sends an HTTP request.
- Java Service: Receives the request, does some work, and calls the Go Service.
- Go Service: Receives the request, queries a “database” (mocked), and returns a response.
- Jaeger: Collects and visualizes the traces from both services.
2. Interactive: The Goal
This is what we are aiming for. A single trace that spans across both services.
Client Request (200ms)
Java Service (160ms)
Go Service (100ms)
3. What You Will Learn
- Getting Started
- Running Jaeger with Docker.
- The “Magic” of the Java Agent.
- Manual instrumentation in Go.
- Module Review
- Test your knowledge and review the key commands.
4. Prerequisites
- Docker: You need Docker installed to run Jaeger.
- Java 11+: To run the Java service.
- Go 1.16+: To run the Go service.
Let’s get started!