Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Telemetry (trace) roadmap

Status, 2026-09-09: release candidate, load-tested. The SDK (ashlar-trace), server (ashlar-trace-server), dashboard, demo hosts and guides are built; the SDK is tested end to end against the real server; a bug review of the SDK and a security review of the server are done and their findings fixed. Moved into ashlar with its history; apps use it through ashlar-telemetry. Not yet published.

Version 0.1

IdMilestoneState
M0Foundation: workspace, gate, wire format with fixtures, SDK and server skeletons, schema, docsDone
M1SDK pipeline: consent, identity, session, queue, spool, transport, event catalog, usageDone
M2SDK signals: panic hook, handled errors, unclean exit, child exit, hang watchdog, frame and system metrics, breadcrumbs, local reportDone
M3Server core: ingest, write keys, rate limits, dedup, SQLite store, rollups, retention, admin commandsDone
M4Dashboard and reports: overview, crashes, performance, usage, per-release report exportDone
M5Demo hosts and end-to-end testsDone
M6Guides and packaging: integration guide, self-hosting guide, container imageDone
M7Hardening and 0.1.0 releaseRelease candidate
M8Tests, stress and load: edge-case and fuzz suites, SDK hot-path and server ingest optimisation, large-database read pathDone; two load targets missed (below)

Still open

  • Find why ingest latency collapses at 2,000 envelopes a second once the database passes about 3 GB. Suspected: index inserts outgrowing the cache; not proven.
  • Cut ingest tail latency while retention deletes a large backlog (p99 about 300 ms against about 50 ms).
  • Repeat the load runs on Linux and on a quiet machine; all numbers so far are from one busy macOS machine.
  • Build and run the container image once (deploy/trace/Dockerfile, deploy/trace/compose.yml). Written but never built.
  • Run the windowed demo (examples/trace-demo-gui). It compiles and passes lints but has never been opened.
  • Check the dashboard on a narrow (360 px) screen.
  • Check the login cookie (Secure, __Host- prefix) in a browser over real HTTPS.
  • Decide whether to prove “no allocation” for the realtime counters, which needs an unsafe exemption for one test file.

Later

MilestoneNotes
Native crashesOut-of-process monitor, minidumps, symbol upload and server-side symbolication, in an isolated crate that is the only one allowed unsafe.
PostgresA second Store implementation for larger deployments.
Web targetA transport for wasm32, where the SDK is currently a no-op.
AlertsEmail or webhook on a new issue or a crash-rate spike.
OTLP exportForward stored data to OpenTelemetry collectors.