Design an Observability / APM Data Pipeline

Problem

Design New Relic's core: an APM/observability pipeline ingesting traces, metrics, and logs from customer apps.

Requirements

Functional:

  • Ingest spans/metrics/logs from agents
  • Store and query for dashboards
  • Distributed tracing (trace assembly)
  • Alerting on SLOs

Non-functional:

  • Huge write volume, multi-tenant
  • Low-latency queries
  • Cost-efficient retention

Discussion points

  1. Agent ingestion and sampling
  2. Trace assembly from spans
  3. Time-series + trace storage
  4. Query and dashboards
  5. Multi-tenant isolation and back-pressure
added …
LeaderboardSalaryAccount