Tracing Gateway
tracing-gateway is a stateless Jaeger HTTP API v3 façade. It translates KubeOpera queries into Jaeger search parameters, fetches trace data, and returns normalised results. No database — all traces live in Jaeger.
What It Does
- Fetches the full span tree for a specific trace ID
- Lists all instrumented services and their dependency edges (service map)
- Searches for slow traces above a configurable latency threshold
- Searches for error traces (spans with
error=truetag)
Data Model
Trace
├── trace_id
├── duration_ms
├── services[] (unique service names across all spans)
├── error (true if any span has error tag)
└── spans[]
├── span_id, operation
├── service, duration_ms
└── error
ServiceMap
├── services[] (all discovered services)
└── edges[]
├── source, target
├── calls_per_min
└── error_rate
REST API
| Method | Path | Description |
|---|---|---|
GET | /api/v1/traces/{id} | Fetch full trace with all spans |
GET | /api/v1/services/map | Service dependency map |
GET | /api/v1/traces/slow | Slow traces (?service=&min_ms=1000&limit=20) |
GET | /api/v1/traces/errors | Error traces (?service=&limit=20) |
GET | /healthz | Health check |
Environment Variables
| Variable | Default | Description |
|---|---|---|
JAEGER_URL | http://localhost:16686 | Jaeger query endpoint |
PORT | 8102 | HTTP port |