https://www.usenix.org/conference/srecon24americas/presentation/cruz > [[Distributed Tracing|分散トレーシング]]は、14年前から業界のコンセプトとして定着しているにもかかわらず、今日でも多くの組織でその地位を確立しつつある!克服すべき課題の一つは、データ量の管理である。100%のトレースを維持することは高価であり、不必要です。[[OpenTelemetry]]には、ヘッドベース、テールベース、ミキシング&マッチングなど、様々な設定オプションがあります。異なるサンプリング構成に関連するトレードオフと、それらがトレース・データのコストと価値に与える影響について検討しましょう。 この動画は、分散トレーシングにおけるサンプリングの重要性について解説しています。トレーシングはシステムの挙動を理解するための貴重なツールですが、大量のデータを生成するため、コストと価値のバランスを取る必要があります。 トレーシングの課題 - 初期の標準化の欠如: 2019年にOpenTelemetryが登場するまで、複数の競合する標準が存在し、導入が困難でした。 - 未成熟な機能: トレーシングの導入事例が少なく、ベストプラクティスや専門知識の共有が不足していました。 - 学習曲線の高さ: 正しいレベルのインストルメンテーションやトレースの分析には、高い学習コストがかかります。 サンプリングの重要性 サンプリングは、トレースデータの生成と保存コストを削減しながら、価値のある情報を保持するための手法です。サンプリングの決定には、以下の3つの質問が重要です。(動画内では、[[2019__SoCC__Sifter - Scalable Sampling for Distributed Traces, without Feature Engineering|Sifter]]やその後継論文を読んで、この3つの問いに帰着したとのこと) - どのトレースを保持するか? - どのトレースを破棄するか? - 興味深いトレースとは何か? サンプリングの種類 - [[Constant Sampling]] (定数サンプリング): 常に一定の割合でトレースをサンプリングします。 - [[Head-Based Sampling]] (ヘッドベースサンプリング): リクエストの開始時にサンプリングを決定します。予測可能性が高いですが、興味深いトレースを見逃す可能性があります。 - [[Tail-Based Sampling]] (テールベースサンプリング): リクエストの完了後にサンプリングを決定します。興味深いトレースを確実に取得できますが、コストが高くなる可能性があります。 ヘッドベースサンプリングの実装 - Probabilistic (確率的): 一定の確率でトレースをサンプリングします。 - Rate Limiting (レート制限): 一定期間内のトレース数を制限します。 - Adaptive (適応型): エンドポイントや時間に基づいてサンプリングレートを動的に調整します。([[2010__Dapper, a Large-Scale Distributed Systems Tracing Infrastructure|Dapper]]で導入されている。) テールベースサンプリングの例 - Latency-based (レイテンシーベース): 一定以上のレイテンシーを持つトレースをサンプリングします。 - Error-based (エラーベース): エラーが発生したトレースをサンプリングします。 - Attribute-based (属性ベース): 特定の属性値を持つトレースをサンプリングします。 ヘッドベースとテールベースの組み合わせ ヘッドベースとテールベースのサンプリングを組み合わせることで、コストと価値のバランスを最適化できます。ヘッドベースで全体の量を制限し、テールベースで興味深いトレースを確実に取得します。 まとめ サンプリングは、トレースデータの価値を最大限に引き出すための重要な手法です。ビジネスニーズやシステムの特性に合わせて、最適なサンプリング戦略を設計する必要があります。 重要なポイント: サンプリングは静的な設定ではなく、継続的に見直す必要があります。 トレーシングは、メトリクスやログと連携させることで、より効果的に活用できます。 サンプリングに加えて、属性の削除やフィルタリングなどの手法も活用しましょう。 トレーシングは、複雑なシステムの理解とトラブルシューティングに非常に役立つツールです。サンプリングを適切に活用することで、コストを抑えながら、トレーシングの価値を最大限に引き出すことができます。 --- https://x.com/yuuk1t/status/1785558197853737366