09 – Capstone Project: Tracing a Real Microservices System
Learning Objectives
- Deploy a multi-service app and instrument all services.
- Route traces via Collector to Tempo; debug real issues using TraceQL and service graphs.
Scenario
- Services: cart, orders, payments, user, inventory.
- REST + async messaging; DB calls and external APIs to simulate realistic latencies.
Requirements
- Use the stack from Section 5.
- Choose one language per service or mix languages.
Tasks
- Auto-instrument frameworks; add manual spans around business logic (checkout, payment auth).
- Add attributes:
customer.id, order.id, tenant, env.
- Configure tail-based sampling to always keep error traces.
Debugging Exercises
- Inject 300–800ms latency in payments; locate via TraceQL and service graphs.
- Trigger retry storms in cart; verify exponential backoff and identify root cause.
- Find N+1 queries in user service; fix and compare before/after traces.
Deliverables
- Short report with screenshots: slow span waterfall, TraceQL queries used, and the fix.
Rubric (example)
- Instrumentation coverage (30%)
- Analysis quality (30%)
- Fix effectiveness (30%)
- Documentation quality (10%)
Resources
- Reference microservices demos by OTel community or your own repo.
Visual: Capstone Architecture