OpenZipkin
Zipkin:分散システムの動きを追跡可能に

CurioSwitchのエンジニアは、分散トレーシングシステムZipkinをはじめとするOpenZipkinのプロジェクトへ継続的に貢献しています。
複数のサービスで構成されるシステムでは、ひとつの遅延やエラーの原因を見つけることが難しくなります。Zipkinは、それぞれのサービスが記録した処理時間や関連情報を集め、リクエストが通った経路をひとつのトレースとして可視化します。
見えないリクエストの旅をたどる
アプリケーション内の計測ライブラリは、処理の開始・終了やサービス間の関係をSpanとして記録します。ReporterがデータをCollectorへ送り、Storageへ保存。Query APIとWeb UIを通じて、開発者が検索・分析できる形にします。
- Trace IDからリクエスト全体を直接検索
- サービス名、処理名、タグ、所要時間による絞り込み
- 各処理の成功・失敗とレイテンシーを可視化
- サービス間の依存関係をダイアグラムで表示
さまざまな運用環境へ接続
トレースはHTTPやKafkaをはじめとする複数の方法で収集でき、保存先にはインメモリ、Cassandra、Elasticsearchなどを選べます。既存のシステム構成に合わせて段階的に導入できる柔軟性も、長く使われるオープンソース基盤に欠かせない特徴です。
CurioSwitchは、複雑なシステムの内部を理解できる形に変え、障害対応と継続的な性能改善を支える技術に取り組んでいます。