# サービス依存グラフ
## 定義
サービス依存グラフ(Service Dependency Graph、SDG)は、オンラインサービスシステムにおけるサービス間の依存関係を表す有向グラフ G_sdg = (V, E)。各ノード v ∈ V はサービスを、各有向辺 e = (v_i, v_j) ∈ E はサービス v_i が v_j に依存することを示す([[@2024__Electronics__Leveraging Large Language Models for Efficient Alert Aggregation in AIOPs|Zha+ Electronics2024]] Def 6)。
類縁概念に **Enterprise Topology Graph(ETG)** があり、ノードを IT コンポーネント(プロセス・サービス・ソフトウェア・インフラ等)、辺を type 付き関係とする(Zha+ Def 2)。SDG は ETG の "サービス層" を抽出した部分グラフと位置づけられる。マイクロサービス文脈の [[マイクロサービスコールグラフ]] とも近いが、マイクロサービスコールグラフはユーザーリクエスト 1 件あたりのコールパターンを記録するのに対し、SDG は静的な依存関係を表現する。
## 横断的知見
- **SDG は AIOps の "LLM hallucination 制御材" として機能する**: [[@2024__Electronics__Leveraging Large Language Models for Efficient Alert Aggregation in AIOPs|Zha+ 2024]] が明示的に述べる「LLM はサービス間関係の知識が不足、SDG なしの LLM 直接適用は impractical」(§3.2.2)は、LLM × RCA の重要な工学的制約を示す。LLM はクラスタ要約を SDG ノードに **マッピング**するタスクに限定され、関係推論は SDG の弱連結成分計算という deterministic な処理が担う。VOCE([[@2025__FASE__VOCE - A Virtual On-Call Engineer for Automated Alert Incident Analysis Using a Large Language Model|Chen+ FASE2025]])が "System Topology" を causality mining の制約に使うのも同じ思想。SDG は LLM の自由度を制約することで信頼性を確保する役割を担う。(Source: [[@2024__Electronics__Leveraging Large Language Models for Efficient Alert Aggregation in AIOPs]] §3.2.2, [[@2025__FASE__VOCE - A Virtual On-Call Engineer for Automated Alert Incident Analysis Using a Large Language Model]] §4.3)
- **SDG の自動構築は研究済みだが本番運用は別問題**: Zha+ 2024 は SDG が「easily constructed and successfully applied [32, 33]」と言及する。SDG 自動構築の研究は分散トレース・コールグラフ・依存関係抽出の領域で進行している(参照: [[ネットワーク依存性発見]]、[[マイクロサービスコールグラフ]])。一方で 3 論文すべてで「SDG/topology の保守可能性」が limitation として指摘される: VOCE §6.2 は "System Topology Incompleteness" を主要限界、SkyNet([[@2025__SIGCOMM__SkyNet - Analyzing Alert Flooding from Severe Network Failures in Large Cloud Infrastructures]])は location 階層(SDG の variant)を運用 8 年保守。「SDG が古い・部分的・矛盾」した場合の集約/分析精度の劣化曲線は実測がない。(Source: [[@2025__FASE__VOCE - A Virtual On-Call Engineer for Automated Alert Incident Analysis Using a Large Language Model]] §6.2, [[@2025__SIGCOMM__SkyNet - Analyzing Alert Flooding from Severe Network Failures in Large Cloud Infrastructures]] §5.2)
- **トポロジの欠落は、SDG 保守だけでなくモニタ沈黙によっても起きる**: [[@2021__ASE__Graph-based Incident Aggregation for Large-Scale Online Service Systems|GRLIA]] は、サービス依存関係自体があっても、フォールトトレランスやモニタ閾値により中間ノードがインシデントを出さないと、障害影響グラフが分断されることを示す。この場合、問題は「依存グラフの辺がない」ではなく「障害伝播の証拠が incident として観測されない」ことであり、KPI トレンド類似度により沈黙ノードを補完する設計になる。VOCE の topology incompleteness が構造データの不完全性なら、GRLIA は観測イベントの不完全性である。(Source: [[@2021__ASE__Graph-based Incident Aggregation for Large-Scale Online Service Systems]], [[@2025__FASE__VOCE - A Virtual On-Call Engineer for Automated Alert Incident Analysis Using a Large Language Model]])
- **FDG(障害依存グラフ)は SDG の障害ユニット版として共通の課題を持つ**: DéjàVu([[@2022__ESEC FSE__Actionable and Interpretable Fault Localization for Recurring Failures in Online Service Systems]])が提案した[[障害依存グラフ]](FDG)は SDG と同様にコール関係 + デプロイ関係から自動構築するが、頂点を「コンポーネント × メトリクスグループ」という障害ユニットレベルにまで細粒度化する点が異なる。FDG でも辺の欠落への頑健性(10% 除去でほぼ無劣化)が実証されており、SDG と FDG は「自動構築の精度と診断への影響」という同じ課題を別粒度で扱っている。(Source: [[@2022__ESEC FSE__Actionable and Interpretable Fault Localization for Recurring Failures in Online Service Systems]] §5.3.1)
- **下流依存性の不完全性が TTB(周知時間)を TTM(緩和時間)と同等にまで膨張させる**: [[@2020__ESEC-FSE__Towards Intelligent Incident Management - Why We Need It and How We Make It|Chen+ ESEC/FSE 2020]] は Microsoft 6 コアサービスの実証研究から、**TTB(Time to Broadcast: 担当者着手から全影響サービスへの周知完了まで)がほぼ全サービスで TTM と同等**の時間を要することを示した。根本は下流依存性の不完全性——各サービスチームが自サービスの下流依存サービスを把握しきれていない。この発見は SDG 研究が「依存グラフの欠落が診断精度を下げる」という影響評価を RCA に焦点を当ててきた(VOCE・GRLIA)のに対し、**依存グラフの欠落がインパクト伝達(broadcasting)コストとして現れる**という別の障害局面を実証する。「SDG が古い・部分的」という品質問題は RCA の誤りだけでなく TTB 遅延という TTM と同等のコストを生む可能性があり、SDG 保守の投資判断に追加の経済的根拠を与える。(Source: [[@2020__ESEC-FSE__Towards Intelligent Incident Management - Why We Need It and How We Make It]] §4.1)
- **サイドカーの統計情報は SDG 構築源としての実運用の具体例を与えるが、体系的な転用としては書かれていない**: 本 concept の未解決の問い(下記)は「Service Mesh(Istio・Linkerd)の sidecar から得られる依存情報を直接 SDG として使う設計」を検討課題としていた。SREの探求26章([[@2021__OReillyJapan__SREの探求 - Chapter 26 サービスメッシュはマイクロサービスの世話人か]])は、サイドカープロキシが「あらゆるホップで一貫した統計情報」を提供し、「発信元と送信先のサービスをドロップダウンリストから選択」できるサービス対サービスダッシュボードを自動生成できると述べ(ch.26 §26.3.3)、Lyft の Envoy 導入ではこれが実際に「グローバルなEnvoyダッシュボード」として運用された実例を提供する(ch.26 §26.4.2.1)。ただし章はこれをサービス対サービスのオブザーバビリティダッシュボードとして論じるにとどまり、Zha+ 2024 や VOCE が定式化するような SDG(有向グラフ G_sdg = (V, E))を明示的に構築する設計としては記述していない。サイドカー統計を体系的に SDG 構築へ転用する設計は依然として本 vault の既存ソースの範囲を超える。(Source: [[@2021__OReillyJapan__SREの探求 - Chapter 26 サービスメッシュはマイクロサービスの世話人か]] ch.26 §26.3.3, §26.4.2.1)
- **『SREの探求』9章は SDG の辺(依存関係の「有無」)に「結合の緊密さ」という未形式化の重み属性を要求する具体例を与える**: Zha+ 2024 の SDG 定義(Def 6、既出)は有向グラフ G_sdg = (V, E) として依存の存在を表現するが、辺に重みや属性を持たせるかは規定しない。Legeza(9章 §9.3)は、DNS と LDAP という 2 つの外部依存関係を対比し、「コンポーネントがドメイン名解決を頻繁に実行する場合、DNS のサービス障害はコンポーネントを完全に麻痺させサービス全体に影響するが、起動処理中に数回呼び出すだけの LDAP では、コンポーネントが影響を受けるのはサービスの起動時・再起動時に限られる」と述べ、両者は「依存関係がある」という点では同じでも、障害イベントの重大度がまったく異なると明示する。これは、SDG が辺の有無だけを表現する構造的モデルにとどまる限り、DNS 依存と LDAP 依存を区別できず、障害伝播の実際の重大度を過大または過小評価しうることを示す。TTB膨張の知見(Chen+、既出)が「依存グラフの欠落」というグラフの不完全性を問題にするのに対し、9章の知見は「依存グラフが完全でも、辺に結合の緊密さという属性がなければ障害影響を正しく予測できない」という、構造の欠落とは別種の限界を指摘する。(Source: [[@2021__OReillyJapan__SREの探求 - Chapter 9 25ページでシステム管理者からSREへ]] §9.3, [[@2024__Electronics__Leveraging Large Language Models for Efficient Alert Aggregation in AIOPs]] Def 6)
## 未解決の問い
- **依存関係の「結合の緊密さ」を SDG の辺属性として形式化できるか**: 『SREの探求』9章(既出)が示す DNS/LDAP の対比(呼び出し頻度・障害時の影響範囲の違い)を、Zha+ 2024 の SDG 定義(単純な有向辺)に重みや属性として組み込む形式化は本 vault の既存ソースには存在しない。障害伝播シミュレーションや RCA の精度向上に、この属性がどの程度寄与するかは未検証。
- **SDG の自動更新と LLM × AIOps の整合**: マイクロサービス環境は数十秒〜数分単位で新サービスが起動/停止する。SDG が静的だと LLM × SDG 集約は陳腐化する。リアルタイム SDG 更新と LLM 推論レイテンシのトレードオフは何か?
- **SDG vs Enterprise Topology Graph vs Service Mesh の依存関係**: Zha+ 2024 は ETG(コンポーネント層、Def 2)と SDG(サービス層、Def 6)を分けるが、実装上の差はどこにあるか。Service Mesh(Istio・Linkerd)の sidecar から得られる依存情報を直接 SDG として使う設計と、Drain / FT-tree 等のログ分析から構築する設計のどちらが本番運用に耐えるか。
- **incomplete SDG への LLM の "推論補完"**: VOCE §6.2 が示す "topology incompleteness" 問題に対し、LLM が SDG の欠損辺を推論で補える可能性。実装すれば SDG 保守コストを下げられるが、hallucination リスクとの均衡。
- **観測イベント欠落とトポロジ欠落の切り分け**: GRLIA は KPI で沈黙ノードを補うが、依存グラフ自体が古い場合は誤ったコミュニティ検出につながる。SDG/topology の欠落と、モニタ/incident の欠落を別々に検出する診断手法は必要か。
## 関連
- 親概念: [[マイクロサービスアーキテクチャ]]、[[ネットワーク依存性発見]]
- 兄弟概念: [[マイクロサービスコールグラフ]]、[[ネットワーク依存性発見]]、[[トポロジ階層構造]]
- 利用研究: Zha+ 2024(SDG を LLM 集約の constraint に)、VOCE(System Topology を causality mining constraint に)、GRLIA(KPI で不完全な障害影響グラフを補完)、AlertStorm Zhao+ 2020(system topology + textual で hybrid 集約)
- 概念: [[サービスメッシュ]]
- ソース: [[@2024__Electronics__Leveraging Large Language Models for Efficient Alert Aggregation in AIOPs]] / [[@2025__FASE__VOCE - A Virtual On-Call Engineer for Automated Alert Incident Analysis Using a Large Language Model]] / [[@2021__ASE__Graph-based Incident Aggregation for Large-Scale Online Service Systems]] / [[@2021__OReillyJapan__SREの探求 - Chapter 26 サービスメッシュはマイクロサービスの世話人か]] / [[@2021__OReillyJapan__SREの探求 - Chapter 9 25ページでシステム管理者からSREへ]]
## 出典
- [[@2024__Electronics__Leveraging Large Language Models for Efficient Alert Aggregation in AIOPs]] Def 2(Enterprise Topology Graph)、Def 6(Service Dependency Graph)、§3.2.2(LLM × SDG マッピング)
- [[@2025__FASE__VOCE - A Virtual On-Call Engineer for Automated Alert Incident Analysis Using a Large Language Model]] §4.3-§4.5(System Topology を causality mining/correction に活用)
- [[@2021__ASE__Graph-based Incident Aggregation for Large-Scale Online Service Systems]] §II-B、§III-C(不完全な障害影響グラフと KPI による補完)
- [[@2021__OReillyJapan__SREの探求 - Chapter 26 サービスメッシュはマイクロサービスの世話人か]](サイドカーによるサービス対サービスダッシュボードの自動生成。ch.26 §26.3.3, §26.4.2.1)
- [[@2021__OReillyJapan__SREの探求 - Chapter 9 25ページでシステム管理者からSREへ]](§9.3: DNS/LDAP の結合の緊密さの対比による外部依存関係の評価)