Dapperを読んだ
Dapperとは
googleが社内で利用している、分散トレーシングツール https://research.google.com/pubs/pub36356.html
この論文から出来たOSSとしてはtwitterによるzipkin(github)、uberによるjaeger(github)が有る。
内容
マイクロサービスだと1つのリクエストに対して複数のサービスが連携するので、一貫した記録が必要になる。 だから、リクエストの中でどのサービスにどれくらい時間がかかったかを記録したかった。
各サービスはspanという開始と終了時間とリクエストid、annotationという任意のマークを持っている。 サービスが別サービスを呼び出すとspanは入れ子になる。
各spanは一度ローカルに保存され、その後中央(googleだから、bigtable)に送られる。 Dapperにはオーバーヘッドがあるので、サンプリングしている。 全部のリクエストを記録しなくても、トレーシングとしては、十分把握出来る