The Benefit of Hindsight: Tracing Edge-Cases in Distributed Systems
Lei Zhang, Zhiqiang Xie, Vaastav Anand, Ymir Vigfusson, Jonathan Mace
Abstract
Today's distributed tracing frameworks are ill-equipped to troubleshoot rare edge-case requests. The crux of the problem is a trade-off between specificity and overhead. On the one hand, frameworks can indiscriminately select requests to trace when they enter the system (head sampling), but this is unlikely to capture a relevant edge-case trace because the framework cannot know which requests will be problematic until after-the-fact. On the other hand, frameworks can trace everything and later keep only the interesting edge-case traces (tail sampling), but this has high overheads on the traced application and enormous data ingestion costs.
In this paper we circumvent this trade-off for any edge-case with symptoms that can be programmatically detected, such as high tail latency, errors, and bottlenecked queues. We propose a lightweight and always-on distributed tracing system, Hindsight, which implements a retroactive sampling abstraction: instead of eagerly ingesting and processing traces, Hindsight lazily retrieves trace data only after symptoms of a problem are detected. Hindsight is analogous to a car dash-cam that, upon detecting a sudden jolt in momentum, persists the last hour of footage. Developers using Hindsight receive the exact edge-case traces they desire without undue overhead or dependence on luck. Our evaluation shows that Hindsight scales to millions of requests per second, adds nanosecondlevel overhead to generate trace data, handles GB/s of data per node, transparently integrates with existing distributed tracing systems, and successfully persists full, detailed traces in real-world use cases when edge-case problems are detected.
As demonstration, we apply Hindsight on three use cases corresponding to our running examples. We run experiments on the DeathStar Microservices Benchmark [24], the Hadoop Distributed File System [63], an Alibaba benchmark derived from production traces [42], and on several microbenchmarks. We have integrated Hindsight with OpenTelemetry [52] and as a replacement collection component for X-Trace [23]. Our experimental results show that Hindsight imposes nanosecond-scale overhead when generating trace data, can scale to 55 GB/s of data per node, rapidly reconstructs traces when triggered, and coherently captures problematic traces (>99%), as well as related lateral traces, within 100 ms of identifying a symptom.
In summary, our paper makes the following contributions.
• We describe the retroactive sampling abstraction for capturing traces of symptomatic edge-cases.
• We present the design of Hindsight, a distributed tracing system that implements retroactive sampling. Hindsight is compatible with existing tracing APIs and can be transparently integrated with existing applications.
• We apply Hindsight on real-world use cases and show that efficiently collecting edge-case requests is practical. • We evaluate Hindsight on multiple benchmarks and real systems, showing that it can achieve nanosecond-level overhead on trace data generation and handle GB/s data per node while collecting coherent traces. • We illustrate that Hindsight is compatible and performs better than state-of-the-art tracing systems (X-Trace and Jaeger) with more efficient trace-data generation and lower overhead, while providing edge-case tracing.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 175b6c8b-8680-4cd4-9f52-09e4da70b61dCited by top-tier papers11
- Mycroft: Tracing Dependencies in Collective Communication Towards Reliable LLM TrainingYangtao Deng, Lei Zhang, Qinlong Wang, Xiaoyun Zhi et al.SOSP 2025 · 7 citations
- Mint: Cost-Efficient Tracing with All Requests Collection via Commonality and Variability AnalysisHaiyu Huang, Cheng Chen, Kunyi Chen, Pengfei Chen et al.ASPLOS 2025 · 6 citations
- TraStrainer: Adaptive Sampling for Distributed Traces with System Runtime StateHaiyu Huang, Xiaoyu Zhang, Pengfei Chen, Zilong He et al.FSE 2024 · 4 citations
- Observability Is Eating Your Cores: Fine-Grained Analysis of Microservice Metrics with IPU-Hosted SketchesAlessandro Cornacchia, Theophilus A. Benson, Muhammad Bilal, Marco CaniniNSDI 2026 · 3 citations
- TORAI: Multi-source Root Cause Analysis for Blind Spots in Microservice Service Call GraphLuan Pham, Huong Ha, Xiuzhen Zhang, Hongyu ZhangFSE 2026 · 3 citations
Builds on2
- Debugging Transient Faults in Data Centers using Synchronized Network-wide Packet HistoriesPravein Govindan Kannan, Nishant Budhdev, Raj Joshi, Mun Choon ChanNSDI 2021 · 27 citations
- Hubble: Performance Debugging with In-Production, Just-In-Time Method Tracing on AndroidYu Luo, Kirk Rodrigues, Cuiqin Li, Feng Zhang et al.OSDI 2022 · 11 citations
Related papers
- Tracezip: Efficient Distributed Tracing via Trace CompressionZhuangbin Chen, Junsong Pu, Zibin ZhengISSTA 2025 · 2 citations
- Gleaner: A Semantically-Rich and Efficient Online Sampler for Microservice DiagnosticsYifan Yang, Aoyang Fang, Songhan Zhang, Pinjia HeISSTA 2026
- TracePicker: Optimization-Based Trace Sampling for Microservice-Based SystemsShuaiyu Xie, Jian Wang, Maodong Li, Peiran Chen et al.FSE 2025 · 1 citation
- FlowScope: Non-Intrusive Distributed Tracing with Method-Level Delay Estimation for Microservices TroubleshootingYantao Geng, Han Zhang, Zhiheng Wu, Yahui Li et al.ICSE 2026
- TraceWeaver: Distributed Request Tracing for Microservices Without Application ModificationSachin Ashok, Vipul Harsh, Brighten Godfrey, Radhika Mittal et al.SIGCOMM 2024 · 14 citations
