Post-Mortem: Tracing Implementation
What Broke
During development, we initially attempted to use the Akka Console for distributed tracing visualization. The Akka SDK provides built-in OpenTelemetry support, and we configured tracing export to what we thought was the Akka Console endpoint.
Issue: The Akka Console tracing endpoint couldn't be reached or wasn't properly configured for our local development setup. Traces were being generated but weren't visible in any UI, making it difficult to debug the incident processing pipeline.
Symptoms:
- Tracing code executed without errors
- Spans were created (verified via logs)
- No traces appeared in Akka Console UI
- Connection errors when trying to export traces to Akka Console endpoint
How We Fixed It
We switched to Jaeger for trace visualization, which is a well-established, production-ready distributed tracing system.
Solution:
- Added Jaeger to
docker-compose.ymlas a service - Configured OpenTelemetry export to Jaeger's OTLP endpoint (
http://localhost:4317) - Updated
backend/run.shto set tracing environment variables pointing to Jaeger - Verified traces appear correctly in Jaeger UI at
http://localhost:16686
Why This Worked:
- Jaeger is a standard OpenTelemetry-compatible backend
- Easy to run locally via Docker
- Provides excellent trace visualization and querying
- Better suited for demonstrating observability to judges
Lessons Learned
- Use battle-tested tools for demos: Jaeger is more reliable and well-documented than trying to configure custom tracing endpoints
- Test observability early: We should have verified trace visibility sooner in development
- Docker Compose simplifies setup: Having Jaeger in docker-compose makes it easy to start/stop and share with the team
Current State
✅ Traces are working correctly in Jaeger
✅ End-to-end traces show: process-support-event → ingest-event → triage-incident → generate-comms
✅ Span attributes include: event.id, incident.id, severity, owner
✅ Error spans are properly recorded with exception details
The tracing implementation now provides excellent observability for debugging and demonstrating the incident processing pipeline.
Log in or sign up for Devpost to join the conversation.