## Memo
Googleの[[Distributed Tracing|分散トレーシング]]システム.Low overhead, Application-level transparency, Scalability が特徴.
- Low Overhead: 適応的サンプリングにより低オーバーヘッドを維持
- Application-level transparency: RPC計測ライブラリ.サンプリングやトレースデータのログ出力などを担当する.コア部分はC++ 1000行程度
- Scalability: トレースデータをBigTableに集約
[Dapper, A Large Scale Distributed Systems Tracing Infrastructure | the morning paper](https://blog.acolyer.org/2015/10/06/dapper-a-large-scale-distributed-systems-tracing-infrastructure/)
> DapperはPinpointやMagpieのような高レベルのアイデア の多くを共有しているが、我々の実装はこの分野におけ る多くの新しい貢献を含んでいる。例えば、特にレイテ ンシに敏感な傾向のある高度に最適化されたWebサービ スでは、低オーバーヘッドのためにサンプリングが必要 であることがわかった。おそらくもう少し驚くべきこと に、数千リクエストのうち1リクエストのサンプルは、 トレースデータの多くの一般的な使用法に十分な情報を
## Abstract
現代のインターネットサービスは、多くの場合、複雑で大規模な分散システムとして実装されています。これらのアプリケーションは、ソフトウェアモジュールの集合体として構築されています。これらのソフトウェアモジュールは、異なるチームによって、異なるプログラミング言語で開発されている可能性があり、複数の物理的な施設にある何千台ものマシンにまたがる可能性があります。このような環境では、システムの動作を理解し、パフォーマンスの問題を推論するためのツールが非常に重要になります。
ここでは、Dapperの設計について紹介します。Dapperは、Googleが開発した分散システムのトレースインフラであり、低オーバーヘッド、アプリケーションレベルの透過性、超大規模システムへのユビキタス展開という設計目標をどのように達成したかを説明します。Dapperは他のトレースシステム、特に[[2003__HotOS__Magpie - online modelling and performance-aware systems|Magpie]]Magpie やX-Trace [12]と概念的には類似していますが、サンプリングの使用や、計測対象をごく少数の一般的なライブラリに限定するなど、我々の環境での成功の鍵となる特定の設計上の選択がなされています。
本論文の主な目的は、2年以上にわたってシステムを構築、デプロイ、使用してきた経験を報告することです。なぜなら、Dapperの成功の最大の尺度は、開発チームと運用チームにとっての有用性だからです。Dapperは自己完結型のトレースツールとして始まりましたが、モニタリングプラットフォームへと発展し、設計者が予想しなかったような多くの異なるツールの作成を可能にしました。ここでは、Dapperを使用して構築されたいくつかの分析ツールについて説明し、Googleでの使用状況についての統計を共有し、いくつかの使用例を紹介し、これまでに得られた教訓について議論します。