分散トレーシング(ぶんさんとれーしんぐ)
最終更新:2026/4/25
分散トレーシングは、複数のサービスを跨ぐリクエストの処理経路を追跡し、パフォーマンスボトルネックを特定するための手法である。
別名・同義語 トレースリクエストトレーシング
ポイント
マイクロサービスアーキテクチャにおいて、複雑なシステム全体の可観測性を高めるために不可欠な技術であり、問題の迅速な解決に貢献する。
分散トレーシングとは
分散トレーシングは、複数のサービスが連携して処理を行うシステムにおいて、あるリクエストがどのサービスをどのような順序で通過したかを追跡する技術です。従来のモニタリング手法では、個々のサービスのパフォーマンスは計測できても、システム全体としての処理フローを把握することは困難でした。分散トレーシングは、この課題を解決し、システム全体の可観測性を向上させます。
分散トレーシングの仕組み
分散トレーシングでは、各サービスがリクエストを受け取ると、一意のID(トレースID)を生成し、そのIDを後続のサービスに伝播します。各サービスは、自身の処理時間を計測し、トレースIDと関連付けて記録します。これらの記録を収集・分析することで、リクエストの処理経路と各サービスの処理時間を可視化できます。
分散トレーシングのメリット
- パフォーマンスボトルネックの特定: システム全体の処理フローを可視化することで、遅延の原因となっているサービスを特定できます。
- 障害箇所の特定: エラーが発生した場合、どのサービスでエラーが発生したかを特定し、迅速な対応を可能にします。
- システム全体の理解: 複雑なシステム全体の処理フローを理解し、改善点を見つけることができます。
- マイクロサービスアーキテクチャへの対応: マイクロサービスアーキテクチャのような複雑なシステムにおいて、特に有効です。
分散トレーシングのツール
- Jaeger: Uberによって開発されたオープンソースの分散トレーシングシステム。
- Zipkin: Twitterによって開発されたオープンソースの分散トレーシングシステム。
- OpenTelemetry: 分散トレーシング、メトリクス、ログを統合的に扱うためのオープンソースのフレームワーク。