# トレースサンプリング
## 定義
トレースサンプリング(trace sampling)は、マイクロサービスシステムが生成する大量の分散トレースから、分析価値の高いトレースを選択的に保持する取り組み。大規模本番システムでは日に数百万〜数十億件のトレースが発生し、全量の保持・分析はコスト面で非現実的なため、サンプリングが不可欠となる。手法は大きく**ヘッドベースサンプリング**(トレース開始時に均一確率で採否を決定、Dapper/Jaeger/Zipkin が採用)と**バイアスサンプリング**(テールベース: トレース完了後に情報を用いて偏りのある採否を決定)に分かれる。バイアスサンプリングはさらに、トレースの多様性(エッジケース優先)に基づく手法(Sifter, Sieve, HC, SampleHST, TraceCRL)と、システムランタイム状態を加味する手法([[TraStrainer]])に分岐する。レトロアクティブサンプリング(Hindsight)は、トレースライフサイクルの早期段階で遅延取得を行い効率を高める別軸の発展である。(Source: [[@2024__FSE__TraStrainer - Adaptive Sampling for Distributed Traces with System Runtime State]])
## 横断的知見
- (1 ソース目のため横断的知見は今後蓄積する)
## 未解決の問い
- サンプリング品質が下流分析(RCA)の精度を直接支配することが TraStrainer で示されたが、サンプラーと RCA 手法をエンドツーエンドで共同最適化する研究はあるか。現状はサンプリングと分析が分離したパイプラインである
- TraStrainer はテールベースサンプリングのみを実装。レトロアクティブサンプリング(Hindsight)にシステムランタイム状態を組み合わせた場合の効率・品質のトレードオフは未検証
- システムランタイム状態の「異常度」を DLinear で評価しているが、メトリクスの分布ドリフトや季節性の変化に対するロバスト性は限定的に検証されたのみ
- テスト済みの障害タイプは 7 種に限られる。より複雑な障害シナリオ(カスケード障害、部分的劣化)での有効性は未確認
- [[テレメトリ]] の「情報を絞る」課題との接続: サンプリングは計装層と分析層の間に位置するデータ削減の仕組みだが、計装層での削減([[特徴量削減]])や分析層での削減(LLM エージェントへのテレメトリ絞り込み)とどう協調すべきか
## 関連
- ソース: [[@2024__FSE__TraStrainer - Adaptive Sampling for Distributed Traces with System Runtime State]]
- 概念: [[分散トレーシング]] / [[テレメトリ]] / [[根本原因分析]] / [[AIOps]] / [[特徴量削減]] / [[Scaling Telemetry Workloads]]
- エンティティ: [[TraStrainer]]
- 関連 MOC: [[SRE - MOC]] / [[LLM4SRE - MOC]]
## 出典
- [[@2024__FSE__TraStrainer - Adaptive Sampling for Distributed Traces with System Runtime State]](§2.1 サンプリング手法の分類、§8 関連研究の体系化、§5 実験評価でサンプリング品質と下流 RCA 精度の関係を実証)