# Dapper
## 概要
**Dapper** は [[Google]] の内部分散トレーシングサービス。RPC ツリー全体(トレース)をサンプリングして収集し、各 RPC ノードのレイテンシ成分を詳細に記録する。
## 機能
各 RPC 呼び出しに対して以下の情報を収集する:
- クライアント送信キュー待ち時間
- リクエスト RPC 処理 + ネットワークスタック
- リクエストネットワーク転送
- サーバ受信キュー待ち時間
- サーバアプリケーション処理時間(ネストした RPC 呼び出しを含む)
- サーバ送信キュー待ち時間
- レスポンスネットワーク転送
- レスポンス RPC 処理 + ネットワークスタック
- クライアント受信キュー待ち時間
## RPC 特性研究での位置づけ
[[@2023__SOSP__A Cloud-Scale Characterization of Remote Procedure Calls]] では、Dapper を用いて単一日の **722 億** RPC サンプルを収集。RPC レイテンシタックス(RLT)の成分分析と、8 代表サービス(Bigtable・Network Disk・SSD cache・Video Metadata・Spanner・F1・ML Inference・KV-Store)のクラスタ間・クラスタ内のレイテンシ変動分析を実施した。
## 分散トレーシングとの関係
Dapper は [[分散トレーシング]]の先駆的実装の一つ。他のシステム(Zipkin・Jaeger など)の設計に影響を与えた。[[OpenTelemetry]] のような標準化より前から Google 内部で大規模運用されている。
## 出典
- [[@2023__SOSP__A Cloud-Scale Characterization of Remote Procedure Calls]]