# 分散トレーシング
## 定義
分散トレーシング/ネットワークコールグラフ構築は、クラウドアプリケーションのコンポーネント間の通信(network call)を自動で捕捉し、サービスを頂点・flow を辺とする有向グラフ(call graph)として可視化する営み。path-oriented なテレメトリ([[テレメトリ]])の中核で、障害伝播の予防・診断を支える。call は client→server の有向辺と定義し、固定ポートで listen する側を server とする。([[2025__Kyoto University__Scaling Telemetry Workloads in Cloud Applications - Techniques for Instrumentation, Storage, and Mining]]) instrumentation の位置で **application-intrusive**(アプリコードを改変、詳細だが手間)と **application-non-intrusive**(proxy・kernel network stack・network switch で透過的に捕捉)に分かれ、後者の socket-based 手法はカーネルの socket 操作を probe して user-space コード改変を不要にする。([[2025__Kyoto University__Scaling Telemetry Workloads in Cloud Applications - Techniques for Instrumentation, Storage, and Mining]])
## 横断的知見
- **socket-based tracing は転送オーバーヘッドの抑え方で 4 系統に分岐する**: snapshot polling(procfs を定期取得、短命接続・UDP を取りこぼす)/ streaming(kprobe で全イベントを即転送、メッセージ率で線形劣化)/ in-kernel flow aggregating(flow 単位で kernel 内集約、短命 TCP が多いと flow 数増で破綻)/ **in-kernel flow bundling**(同一宛先への複数 flow を 1 flow に束ね転送量を最小化、[[go-conntracer-bpf]])。bundling は CPU < 2.2% を維持するが、network service 数が 10,000 規模で bundling rate が 0 に近づくと aggregating と差が消える。([[2025__Kyoto University__Scaling Telemetry Workloads in Cloud Applications - Techniques for Instrumentation, Storage, and Mining]])
- **path-oriented データの収集を扱う唯一の wiki ソース**: 既存の AIOps/RCA 群([[Fault Localization]]・[[根本原因分析]])は metric(time-oriented)中心で、call graph/trace を入力に使う手法は二次的にしか現れない。本概念は call graph を「どう低コストに作るか」という instrumentation 側の論点を持ち込み、将来 trace-based RCA を ingest する際の接続点になる。(Source: [[2025__Kyoto University__Scaling Telemetry Workloads in Cloud Applications - Techniques for Instrumentation, Storage, and Mining]])
## 未解決の問い
- socket-based 手法は packet forwarding(NAT)越しの依存を辿れない共通限界を持つ。forwarding history との突き合わせ以外に、relay 越しの call graph を完全化する手法はあるか。
- 構築した call graph を入力とする fault localization / RCA(anomaly-propagation 系、因果探索)は metric ベースとどう統合されるか。path-oriented と time-oriented の mining を結ぶ一次ソースを ingest する([[テレメトリ]] の問いと共通)。
- eBPF ベース tracing の社会実装([[go-conntracer-bpf]])は採用が初期段階。実運用での call graph 自動構築の事例・運用知見を持つ後続ソースを探す。
## 関連
- ソース: [[2025__Kyoto University__Scaling Telemetry Workloads in Cloud Applications - Techniques for Instrumentation, Storage, and Mining]]
- 概念: [[テレメトリ]] / [[Fault Localization]] / [[根本原因分析]] / [[AIOps]]
- エンティティ: [[go-conntracer-bpf]]
- 関連 MOC: [[SRE - MOC]] / [[異常検知 - MOC]]
## 出典
- [[2025__Kyoto University__Scaling Telemetry Workloads in Cloud Applications - Techniques for Instrumentation, Storage, and Mining]](§3.1–3.6 in-kernel flow bundling、socket-based 手法の分類・eBPF 実装・CPU/RTT 評価・限界)