# Hindsight 遡及的サンプリング(retroactive sampling)を実装した常時稼働の軽量分散トレーシングシステム。[[Jonathan Mace]] ら([[Max Planck Institute for Software Systems]] / Emory University / Princeton University)が開発し、NSDI 2023 で発表。 ## 概要 全リクエストのトレースデータをローカルメモリに生成するが、バックエンドへの取り込みは症状(エラー・テイルレイテンシ・キュー詰まり等)のトリガー発火後にのみ遅延的に行う。データプレーン(共有メモリバッファプールへの高速書き込み、tracepoint 約 8 ns)とコントロールプレーン(メタデータインデックス・ブレッドクラムトラバーサル・トリガー調整)を分離し、100% トレーシングを −3.5% 以内のスループット影響で実現する。 ## 特徴 - クライアントライブラリ約 4 KLOC C + エージェント/コーディネータ約 5.5 KLOC Go - OpenTelemetry API 互換。X-Trace との統合実績 - ノードあたり最大 55 GB/s の書き込みスループット - 一貫性ハッシュによる過負荷時のトレース一貫性保証 - ラテラルトレース(TriggerSet)による時間的プロベナンスサポート - アプリケーションクラッシュ時もバッファプール内データを保全 ## 評価環境 - [[DeathStarBench]] Social Network(12 マイクロサービス) - HDFS(Hadoop Distributed File System) - MicroBricks(Alibaba トレースデータセット由来の 93 サービストポロジ) (Source: [[@2023__NSDI__Hindsight - Tracing Edge-Cases in Distributed Systems]])