APM — Distributed Tracing
- Area: Observability
- Path:
observe/apm(engine) +platform/apm(SaaS) - Kind: Distributed tracing / Application Performance Monitoring
Role in the stack
APM is the distributed tracing and performance monitoring layer of Koder. Services emit spans via OTLP, Zipkin, Jaeger or simple JSON; APM stitches them into traces, visualizes them as waterfalls, builds service dependency maps, and computes P50P95P99 latency per service. It is the go-to tool when latency spikes or an error flood appears.
The open-core engine lives in observe/apm; platform/apm is the multi-tenant SaaS version.
Features
- Multi-format ingestion — OTLP (OpenTelemetry), Zipkin v2, Jaeger, and simple JSON
- Waterfall visualization — Gantt-chart view of all spans in a trace with timing
- Service dependency map — Visual graph of service-to-service calls with error rates
- Latency analytics — P50P95P99 percentiles, throughput, error rates per service
- Multi-tenant — Org-based isolation with API key authentication
- SQLite storage — Zero-dependency persistence with retention cleanup
Primary couplings
| Consumer | Relationship |
|---|---|
engines/sdk/go, engines/sdk/js, engines/sdk/python |
Instrumentation clients that send spans |
platform/dash |
Dashboards query APM for latency panels |
platform/kortex |
DevOps brain consumes APM for anomaly detection |