• Home
  • BVSSH
  • Engineering Enablement
  • Playbooks
  • Frameworks
  • Good Reads
Search

What are you looking for?

Practice : Distributed Tracing

Purpose and Strategic Importance

Distributed Tracing provides end-to-end visibility into the flow of requests across services and systems. It is a foundational observability practice for modern architectures - particularly microservices - enabling teams to diagnose latency, pinpoint failures, and understand system behaviour under load.

With trace data, engineering teams can reduce mean time to resolution (MTTR), improve system performance, and design more resilient applications by seeing exactly how requests move and where they slow down.


Description of the Practice

  • Each request is assigned a unique trace ID and spans that represent each operation along its journey.
  • Trace data is captured, correlated, and visualised using tools like OpenTelemetry, Jaeger, Zipkin, or Honeycomb.
  • Tracing enables root cause analysis across systems by surfacing timings, errors, and contextual metadata.
  • A typical trace includes service names, endpoints, durations, status codes, and custom attributes.
  • Traces integrate with logging and metrics to provide holistic system observability.

How to Practise It (Playbook)

1. Getting Started

  • Instrument services with a tracing SDK (e.g. OpenTelemetry) and standardise how trace IDs are propagated across services.
  • Capture traces for key requests, endpoints, or transactions.
  • Set up a tracing backend and visualisation tool to explore request paths and latencies.
  • Start by tracing common production flows (e.g. customer sign-in, checkout, API calls).

2. Scaling and Maturing

  • Enrich traces with metadata (e.g. user ID, region, release version) to improve filtering and diagnostics.
  • Sample intelligently - trace enough to learn without overwhelming systems or storage.
  • Correlate tracing data with logs, metrics, and alerts for rapid incident diagnosis.
  • Visualise bottlenecks, retries, and unusual dependencies using flame graphs or service maps.
  • Use trace insights to inform architecture decisions, performance improvements, and SLOs.

3. Team Behaviours to Encourage

  • Trace from the customer’s perspective - what matters most to user experience?
  • Share trace snapshots during incident reviews or debugging sessions.
  • Continuously evolve instrumentation coverage as systems and questions change.
  • Treat traces as collaborative tools, not just backend diagnostics.

4. Watch Out For…

  • Incomplete traces due to missing propagation headers or poor instrumentation.
  • Trace overload - too much noise without clear purpose or curation.
  • Privacy or compliance risks when traces include user or sensitive data.
  • Relying on tracing in isolation without metrics or logs for correlation.

5. Signals of Success

  • Engineers can trace requests end-to-end across services.
  • Teams use traces to identify and resolve performance regressions faster.
  • MTTR decreases and operational confidence increases.
  • Trace data feeds into system design and reliability decisions.
  • Observability becomes proactive and embedded in engineering practice.
Associated Standards
  • Customer feedback is continuously gathered and acted on
  • Product and engineering decisions are backed by live data
  • Systems expose the data needed to understand their behaviour
  • Teams are alerted when feedback loops are broken

Technical debt is like junk food - easy now, painful later.

Awesome Blogs
  • LinkedIn Engineering
  • Github Engineering
  • Uber Engineering
  • Code as Craft
  • Medium.engineering