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