# DeepFlow
[[Tsinghua University]](清華大学)と [[Yunshan Networks]](雲杉网络)が共同開発した、eBPF ベースのネットワーク中心分散トレースフレームワーク。マイクロサービスのトラブルシューティングを「コード変更ゼロ」で実現する。(Source: [[@2023__SIGCOMM__Network-Centric Distributed Tracing with DeepFlow]])
## 主要な特徴
- **ゼロコード計装**: eBPF を用いたカーネル空間の自動非侵入型計装により、アプリケーションの修正・再コンパイル・再起動が不要
- **ネットワーク中心のトレースプレーン**: システムコール ABI(イングレス 5 種 + イグレス 5 種)をフックし、アプリケーションロジックやプロトコルに依存せず全通信シナリオをカバー
- **暗黙のコンテキスト伝搬**: TCP シーケンスの不変性を利用してパケットへの識別子挿入を不要にする独自手法
- **タグベース相関**: Kubernetes タグ・クラウドリソースタグ・自己定義ラベルをスパンに注入し、メトリクスとトレースを統合
- **スマートエンコーディング**: タグ注入を 2 フェーズに分割し、VPC/IP を Int 形式で中間保持することで直接挿入比で CPU 4.31×・メモリ 1.97×・ディスク 3.9× を節約
## アーキテクチャ
- **DeepFlow Agent**: 各コンテナノード/VM/物理マシンに配置し、事前定義の eBPF フックとインストルメンテーション拡張でトレースデータを収集・送信
- **DeepFlow Server**: クラスタレベルの処理。スパンをデータベース(ClickHouse)に格納し、クエリ時にトレースに組み立てる
## 実績・導入状況
- 2 年間の本番稼働(論文執筆時点)で 26 社超の企業で 71 件超の重大性能異常を特定
- 数百人の個人開発者が利用
- Apache-2.0 ライセンスで公開: https://github.com/deepflowio/deepflow
- CNCF ランドスケープと eBPF アプリケーションランドスケープに参加
## 性能評価
- エンドツーエンドオーバーヘッド: 最大 7%(Jaeger の 4%、Zipkin の 3% より若干高いが、スパン数は 4〜10 倍)
- システムコール ABI へのレイテンシ追加: 277〜889 ns
## 関連
- ソース: [[@2023__SIGCOMM__Network-Centric Distributed Tracing with DeepFlow]]
- 概念: [[分散トレーシング]] / [[eBPF]] / [[動的インストルメンテーション]] / [[テレメトリ]] / [[トレースサンプリング]]
- 組織: [[Tsinghua University]] / [[Yunshan Networks]]
- 人物: [[Junxian Shen]] / [[Han Zhang (DeepFlow)]] / [[Mingwei Xu]]