JP7372572B2 - サービスグラフ生成装置、サービスグラフ生成方法、およびプログラム - Google Patents

サービスグラフ生成装置、サービスグラフ生成方法、およびプログラム Download PDF

Info

Publication number
JP7372572B2
JP7372572B2 JP2022501477A JP2022501477A JP7372572B2 JP 7372572 B2 JP7372572 B2 JP 7372572B2 JP 2022501477 A JP2022501477 A JP 2022501477A JP 2022501477 A JP2022501477 A JP 2022501477A JP 7372572 B2 JP7372572 B2 JP 7372572B2
Authority
JP
Japan
Prior art keywords
components
component
service
service graph
relationship
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022501477A
Other languages
English (en)
Other versions
JPWO2021166118A1 (ja
Inventor
優 酒井
悟 近藤
謙輔 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2021166118A1 publication Critical patent/JPWO2021166118A1/ja
Application granted granted Critical
Publication of JP7372572B2 publication Critical patent/JP7372572B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3068Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data format conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

本発明は、サービスグラフ生成装置、サービスグラフ生成方法、およびプログラムに関する。
WebサービスおよびICTサービスなどのネットワークサービスをコンポーネントとして機能ごとに分割し、コンポーネント同士が通信を行い連鎖的に動作するマイクロサービスアーキテクチャが普及している。
非特許文献1では、サービスの各コンポーネントにラベル運搬用のコードを埋め込むことで、マイクロサービスの動作の一連の流れを可視化するトレーシング技術が提案されている。非特許文献1の技術は、収集した情報をもとにコンポーネント間の親子関係を可視化したサービストポロジを得ることができる。
"Jaeger: open source, end-to-end distributed tracing"、[online]、インターネット〈 URL:https://www.jaegertracing.io/〉
しかしながら、非特許文献1では、コンポーネント間の順序関係および排他関係を含む依存関係を得ることができない。非特許文献1の技術で可視化したサービストポロジは、コンポーネント間の親子関係を表すことはできるが、コンポーネント間の順序関係および排他関係などのコンポーネントの動作の流れの特徴を表すことができない。
コンポーネント間の親子関係だけではなく、コンポーネント間の順序関係および排他関係を含む依存関係が分かると、サービスの障害発生時に、根本原因箇所、り障範囲の特定が容易となる。
本発明は、上記に鑑みてなされたものであり、サービス障害時における根本原因箇所およびり障範囲の特定を容易にすることを目的とする。
本発明の一態様のサービスグラフ生成装置は、サービスを構成するコンポーネント間の依存関係を表すサービスグラフを生成するサービスグラフ生成装置であって、前記サービスでの一連の処理における前記コンポーネントの処理の時刻データと親子関係を記録したスパンを含むトレースデータを取得する取得部と、前記トレースデータのそれぞれについて、同じ親を持つ前記コンポーネントのスパン間の時刻データを比較して前記コンポーネント間の順序関係または排他関係を推定する解析部と、前記サービスを構成する全ての前記コンポーネントと前記コンポーネント間の親子関係、順序関係、および排他関係を表現したサービスグラフを作成する作成部を備える。
本発明によれば、サービス障害時における根本原因箇所およびり障範囲の特定を容易にすることができる。
図1は、本実施形態のサービスグラフ生成装置を含む保守管理システムの全体構成の一例を示す図である。 図2は、可視化したトレースデータの一例を示す図である。 図3は、可視化したサービストポロジの一例を示す図である。 図4は、本実施形態の保守管理システムの動作を示すシーケンス図である。 図5は、依存関係を推定する処理の流れを示すフローチャートである。 図6は、コンポーネントの組の依存関係を推定する処理の流れを示すフローチャートである。 図7は、トレースデータの一例を示す図である。 図8は、コンポーネントをペトリネットで表現した図である。 図9は、コンポーネント間の親子関係をペトリネットで表現した図である。 図10は、コンポーネント間の順序関係をペトリネットで表現した図である。 図11は、コンポーネント間の排他関係をペトリネットで表現した図である。 図12は、サービスグラフの一例を示す図である。 図13は、サービスグラフ生成装置のハードウェア構成の一例を示す図である。
以下、本発明の実施の形態について図面を用いて説明する。
図1を参照して、本実施形態のサービスグラフ生成装置10を含む保守管理システムの全体構成について説明する。図1に示す保守管理システムは、サービスグラフ生成装置10とトレーシングソフトウェア30を含む。
監視対象サービス50は、複数のコンポーネントを含み、複数のコンポーネントが連鎖的に動作することで特定の機能を実現する。コンポーネントは、他のコンポーネントとの間でリクエストとレスポンスの送受信を行うことができるインタフェースを持ち、各種のプログラム言語で実装されるプログラムである。
トレーシングソフトウェア30は、監視対象サービス50の各コンポーネントにおける処理をスパンという形式で記録し、監視対象サービス50の動作の一連の流れをトレースとして可視化する。監視対象サービス50の各コンポーネントには、ラベル運搬用のコードを埋め込んでおき、スパンを取得できるようにしておく。トレーシングソフトウェア30として、非特許文献1の技術を利用できる。トレーシングソフトウェア30を仮想サーバまたは物理サーバで動作させて監視対象サービス50の動作をトレーシングしたデータを取得する。
トレースは、監視対象サービス50に対するリクエストからレスポンスまでの一連の処理を構成するスパンの集合である。例えば、監視対象サービス50に対するエンドユーザの1回のリクエストからレスポンスまでの1つのトレースデータが得られる。スパンは、各コンポーネントの処理の時刻データと親子関係を記録したデータである。図2に可視化したトレースデータの一例を示す。5つの矩形のそれぞれが各コンポーネントA~Eのスパンを示す。図2では、横軸に時間を取り、コンポーネントの処理期間を矩形の幅で表現している。矢印は、コンポーネントA~E間のリクエストとレスポンスの送受信を示している。スパンは、例えば、コンポーネントA~Eの名前(Name)、トレースID(TraceID)、処理開始時間(StartTime)、処理時間(Duration)、および関係(Reference)の情報を含む。
トレーシングソフトウェア30は、スパンに含まれる親子関係からサービストポロジを可視化する。図3に可視化したサービストポロジの一例を示す。図3の例では、4つのコンポーネントB~EはコンポーネントAを親とすることを示している。つまり、コンポーネントB~Eのそれぞれは、コンポーネントAからリクエストを受信して処理を行い、レスポンスを返信している。
サービスグラフ生成装置10は、トレーシングソフトウェア30からトレースデータを取得し、兄弟関係にあるコンポーネントB~Eの順序関係および排他関係を推定するとともに、監視対象サービス50を構成するコンポーネントの依存関係を表現したサービスグラフを生成する。例えば、依存関係の一例として、コンポーネントDは必ずコンポーネントBの処理後に実行される場合、コンポーネントBとコンポーネントDは順序関係があると言える。コンポーネントDはコンポーネントBから得られる情報を利用する場合、コンポーネントDは必ずコンポーネントBの処理後に実行される。また、別の依存関係の一例として、コンポーネントBとコンポーネントCが並行して処理を実行することがない場合、コンポーネントBとコンポーネントCは排他関係であると言える。コンポーネントBとコンポーネントCが同じ装置に対して指示を出す場合、エラー防止のために並行して処理を実行することがない。
トレーシングソフトウェア30が可視化したサービストポロジでは、コンポーネントAとコンポーネントB~Eの親子関係は分かるが、コンポーネントB~E間の順序関係およびコンポーネントB~E間の排他関係を知ることはできない。そこでサービスグラフ生成装置10は、コンポーネント間の順序関係と排他関係を含む依存関係を表現したサービスグラフを生成して保守者に提示する。以下、サービスグラフ生成装置10の各部について説明する。
サービスグラフ生成装置10は、取得部11、保存部12、解析部13、作成部14、および可視化部15を備える。
取得部11は、トレーシングソフトウェア30からトレースデータを取得し、保存部12に保存する。
保存部12は、トレースデータおよび作成部14の生成したサービスグラフを保存する。
解析部13は、トレースデータを解析してコンポーネント間の順序関係および排他関係を推定する。
作成部14は、解析部13の解析結果に基づいてサービスグラフを生成または更新し、保存部12に保存する。
可視化部15は、作成部14の生成したサービスグラフを可視化して保守者に提示する。
保守者は、トレーシングソフトウェア30の提示するトレースデータとサービストポロジ、ならびにサービスグラフ生成装置10の提示するサービスグラフを参照して、監視対象サービス50の根本原因箇所およびり障範囲を特定する。
図4を参照し、本実施形態の保守管理システムの動作について説明する。
ステップS11にて、トレーシングソフトウェア30は、所定の期間において、監視対象サービス50からデータを取得し、トレースデータを生成する。
ステップS12,S13にて、取得部11は、トレーシングソフトウェア30からトレースデータを取得し、トレースデータを保存部12に保存する。取得部11は、監視対象サービス50で障害が発生したときに、トレーシングソフトウェア30からトレースデータを取得してもよいし、定期的にトレーシングソフトウェア30からトレースデータを取得してもよい。
ステップS14,S15にて、解析部13は、保存部12からトレースデータを読み出して、コンポーネント間の依存関係を推定する。解析部13が依存関係を推定する処理の詳細は後述する。
ステップS16,S17にて、作成部14は、解析部13から解析結果つまりコンポーネント間の依存関係を受信するとともに、保存部12から過去のサービスグラフを読み出す。サービスグラフを新しく作成するときは、ステップS17の処理は行わなくてもよい。
ステップS18にて、作成部14は、サービスグラフの作成または更新を行う。生成するサービスグラフの詳細については後述する。
ステップS19にて、サービスグラフを保存部12に保存する。
ステップS20にて、可視化部15は、保存部12からサービスグラフを読み出して可視化する。
ステップS21,S22て、保守者は、サービスグラフ生成装置10にサービスグラフを表示させたり、トレーシングソフトウェア30にトレースデータおよびサービストポロジを表示させたりして、監視対象サービス50の根本原因箇所およびり障範囲を特定する。
図5のフローチャートを参照し、解析部13による依存関係推定処理について説明する。
ステップS151にて、解析部13は、保存部12からトレースデータを取得する。
ステップS152,S153にて、解析部13は、トレースデータをコンポーネントごとに分析し、コンポーネント間の親子関係を得る。例えば、図3に示したような、コンポーネント間の親子関係を示す木構造が得られる。スパンは、応答を待つコンポーネントを親として明示的に記録しているので、コンポーネント間の親子関係はスパンから抽出可能である。解析部13は、トレーシングソフトウェア30からコンポーネント間の親子関係を取得してもよい。
ステップS154にて、解析部13は、兄弟コンポーネントの複数の集合から1つの集合を選択する。例えば、図3の例では、コンポーネントB、コンポーネントC、コンポーネントD、およびコンポーネントEは、いずれもコンポーネントAを親とする兄弟コンポーネントである。ステップS154では、例えば、4つのコンポーネントB~Eを含む集合が選択される。
ステップS155にて、解析部13は、得られた集合に含まれる2つのコンポーネント(コンポーネントの組)の全ての組み合わせについて、スパンに含まれる時刻データを比較して、コンポーネントの組の順序関係および排他関係を推定する。コンポーネントの組の依存関係の推定処理の詳細については後述する。
解析部13は、集合に含まれるコンポーネントの全ての組み合わせについて依存関係を推定したら、ステップS154に戻り、次の兄弟コンポーネントの集合を取得し、その集合に含まれるコンポーネントの全ての組み合わせについて依存関係を推定する。
兄弟コンポーネントの集合の全てについて処理をした後、ステップS156にて、解析部13は、解析結果として、順序関係を持つコンポーネントの組の全て、および排他関係を持つコンポーネントの組の全てを作成部14へ出力する。解析部13は、親子関係も作成部14へ出力する。
図6のフローチャートを参照し、コンポーネントの組の依存関係推定処理について説明する。
ステップS1551にて、解析部13は、兄弟コンポーネントの集合からコンポーネントの組{a,b}を1つ選択する。解析部13は、図7に示すようなトレースデータ1~nごとに、選択したコンポーネントの組のスパンの時刻データを参照し、ステップS1552からステップS1557の処理を実行する。なお、図7に示したコンポーネントB~Eは、いずれもコンポーネントAとの間に親子関係がある兄弟コンポーネントであるものとする。
ステップS1552にて、解析部13は、いずれかのトレースデータ1~nにおいて、コンポーネントの組{a,b}のスパンに時系列上の重なりがあるか否か判定する。例えば、図7のトレースデータ1では、コンポーネントBとコンポーネントCは時系列上の重なりはなく、コンポーネントDとコンポーネントEは時系列上の重なりがある。
時系列上の重なりがある場合、ステップS1555にて、解析部13は、コンポーネントの組{a,b}の依存関係を「依存関係無し」に更新する。例えば、トレースデータ1において、コンポーネントDとコンポーネントEは時系列上の重なりがあるので、コンポーネントDとコンポーネントEは依存関係無しである。コンポーネント間の依存関係が決まると、解析部13は、コンポーネントの組{a,b}についての処理を終了する。解析部13は、処理をステップS1551に戻し、次のコンポーネントの組を選択する。集合内のコンポーネントの全ての組み合わせについて処理したときは、コンポーネントの組の依存関係の推定処理を終了する。
時系列上の重なりがない場合、ステップS1553にて、解析部13は、a,bまたはb,aの順でスパンが時系列上で連続しているか否か判定する。例えば、図7のトレースデータ1では、コンポーネントBの後にコンポーネントCが処理を実行している。なお、トレースデータ1~nのいずれにおいても、コンポーネントBとコンポーネントCは時系列上の重なりはないものとする。
時系列上で連続していない場合、ステップS1553のNOに進み、解析部13は、コンポーネントの組{a,b}の依存関係を更新しない。依存関係の初期値を「依存関係無し」としてもよいし、過去の解析結果から得られた依存関係を初期値に設定してもよい。
時系列上で連続していた場合、ステップS1554にて、解析部13は、ステップS1553と逆の順、b,aまたはa,bの順で時系列上で連続するスパンが存在するか否か判定する。例えば、図7の例で、トレースデータ1ではコンポーネントBの後にコンポーネントCが実行されており、トレースデータ2ではコンポーネントCの後にコンポーネントBが実行されている。コンポーネントB,Cの組は、コンポーネントB,コンポーネントCの順とコンポーネントC,コンポーネントBの順のいずれの順でもスパンが時系列上で連続している。
コンポーネントの組{a,b}のスパンがいずれの順序でも時系列上で連続していた場合、ステップS1556にて、解析部13は、コンポーネントの組{a,b}の依存関係を「排他関係」に更新する。図7の例では、解析部13は、コンポーネントB,Cの組の依存関係を「排他関係」とする。
コンポーネントの組{a,b}のスパンが決まった順番で時系列上で連続していた場合、ステップS1557にて、解析部13は、コンポーネントの組{a,b}の依存関係を「a→b(b→a)の順序関係」に更新する。例えば、図7の例では、いずれのトレースデータ1~nにおいても、コンポーネントBの後にコンポーネントDが実行されている。解析部13は、コンポーネントB,Dの組の依存関係を「B→Dの順序関係」とする。
図6の処理は、集合内のコンポーネントの全ての組み合わせについて実行される。具体的には、コンポーネントBとコンポーネントCの組、コンポーネントBとコンポーネントDの組、コンポーネントBとコンポーネントEの組、コンポーネントCとコンポーネントDの組、コンポーネントCとコンポーネントEの組、およびコンポーネントDとコンポーネントEの組について実行される。以下、図7の例のコンポーネントB,C,D,Eの依存関係について説明する。
コンポーネントBとコンポーネントCは、トレースデータ1~nのいずれにおいても時系列上の重なりはない。トレースデータ1では、コンポーネントB、コンポーネントCの順でスパンが時系列上で連続しており、トレースデータ2では、コンポーネントC、コンポーネントBの順でスパンが時系列上で連続している。したがって、コンポーネントBとコンポーネントCは、処理の順序は問わないが、並列で行うことはできない排他関係であると推定される。
コンポーネントBとコンポーネントDは、トレースデータ1~nのいずれにおいても時系列上の重なりはない。コンポーネントB、コンポーネントDの順でスパンが時系列上で連続することはあるが、その逆はない。したがって、コンポーネントDは、コンポーネントBの完了後にしか開始できないので、順序関係があると推定される。
コンポーネントDとコンポーネントEは、トレースデータ1~nにおいて時系列上の重なりがある。コンポーネントDとコンポーネントEは、並列して処理できるので、依存関係は無いと推定される。
コンポーネントBとコンポーネントE、コンポーネントCとコンポーネントD、およびコンポーネントCとコンポーネントEは、いずれもコンポーネントDとコンポーネントBとコンポーネントDと同様に、順序関係があると推定される。
図8ないし図11を参照し、コンポーネントの依存関係に基づいてサービスグラフを表現する方法について説明する。
サービスグラフ生成装置10は、推定した依存関係を元に、監視対象サービス50全体のコンポーネントレベルでのサービスグラフをペトリネットで表現する。ペトリネットは、プレースとトランジションという2種類のノードを持ち、プレースとトランジションがアークで接続される2部有向グラフである。プレースにトークンという変数が与えられる。トランジションは、発火によって、自身の前に存在する全てのプレースのトークンを、自身の後に存在する全てのプレースに移す。
本実施形態では、1つのコンポーネントのペトリネットを図8に示すように定義する。具体的には、コンポーネントがとりうる状態を「未処理」、「処理中」、および「処理済」の3種類とし、この3種類の状態をプレースに対応付ける。プレース間に設けたトランジションの発火(処理開始または処理終了)によってトークンを移動させることで、コンポーネントの状態遷移を表現する。図8では図示していないが、トークンは、プレース内に黒丸を配置して表現できる。
コンポーネント間の依存関係は、図8に示したコンポーネントのペトリネットに対してアークおよびプレースを追加することで表現できる。具体的には、図9ないし図11に示すように、コンポーネント間の親子関係、順序関係、および排他関係を表現する。
コンポーネントA,B間の親子関係は図9のように表現できる。親のコンポーネントAの処理開始のトランジションから子のコンポーネントBの未処理のプレースにアークを配置し、子のコンポーネントBの処理済のプレースから親のコンポーネントAの処理終了のトランジションにアークを配置する。これにより、コンポーネントAの処理開始後、コンポーネントBの処理が開始し、コンポーネントBの処理終了後、コンポーネントBは処理済の状態となり、その後コンポーネントAの処理が終了することを表現できる。
コンポーネントB,D間の順序関係は図10のように表現できる。コンポーネントBの処理終了のトランジションから新たにアークとプレースを配置し、新たなプレースからコンポーネントDの処理終了のトランジションにアークを配置する。これにより、コンポーネントBの処理終了後にコンポーネントDの処理が開始することを表現できる。
コンポーネントB,C間の排他関係は図11のように表現できる。コンポーネントBおよびコンポーネントCが両方とも処理中ではない状態を示す新たなプレースを配置し、新たなプレースにはトークンを配置しておく。コンポーネントB,Cの処理終了のトランジションのそれぞれから新たなプレースにアークを配置し、新たなプレースからコンポーネントB,Cの処理開始のトランジションのそれぞれにアークを配置する。これにより、コンポーネントBまたはコンポーネントCの処理終了後にコンポーネントCまたはコンポーネントBの処理が開始することを表現できる。
作成部14は、新たに発見されたコンポーネント間の依存関係については、上記の方法で依存関係を表すグラフを追加し、消失した依存関係については、依存関係を表す部分のグラフを削除する。依存関係を表す部分の追加または削除のみでサービスグラフを更新できる。
図12に、サービスグラフの一例を示す。図12のサービスグラフは、非特許文献1のサンプルアプリケーションであるHotRODに対して非特許文献1のJeagerを用いてトレーシングを行い、サービスグラフ生成装置10がトレースデータから生成し、表示したものである。図12のサービスグラフでは、サービスを構成する全てのコンポーネントとコンポーネント間の依存関係が表現されている。保守者は、図12の左端の状態から右端の状態まで、エンドユーザのリクエストを処理するコンポーネントを処理の順番にたどることができ、根本原因箇所およびり障範囲の特定を容易に行うことができる。
以上説明したように、本実施形態のサービスグラフ生成装置10は、取得部11が、サービスでの一連の処理におけるコンポーネントの処理の時刻データと親子関係を記録したスパンを含むトレースデータを取得し、解析部13が、トレースデータのそれぞれについて、兄弟コンポーネントのスパン間の時刻データを比較してコンポーネント間の順序関係または排他関係を推定し、作成部14が、監視対象サービス50から構成する全てのコンポーネントとコンポーネント間の親子関係、順序関係、および排他関係を表現したサービスグラフを作成する。これにより、トレーシングソフトウェア30の取得するトレースデータでは明示されていないコンポーネント間の順序関係および排他関係を推定し、サービスグラフとして表現できるので、サービス障害時における根本原因箇所およびり障範囲の特定が容易になる。
本実施形態のサービスグラフ生成装置10は、コンポーネントの処理前、処理中、および処理後の状態をペトリネットのプレースとして表現し、コンポーネントの処理開始および処理終了をペトリネットのトランジションとして表現し、コンポーネント間の依存関係を新たなノードとアークを配置して表現する。これにより、サービスグラフ生成装置10は、新たに推定した依存関係の追加および陳腐化した依存関係の削除を容易に行うことができる。
上記説明したサービスグラフ生成装置10には、例えば、図13に示すような、中央演算処理装置(CPU)901と、メモリ902と、ストレージ903と、通信装置904と、入力装置905と、出力装置906とを備える汎用的なコンピュータシステムを用いることができる。このコンピュータシステムにおいて、CPU901がメモリ902上にロードされた所定のプログラムを実行することにより、サービスグラフ生成装置10が実現される。このプログラムは磁気ディスク、光ディスク、半導体メモリ等のコンピュータ読み取り可能な記録媒体に記録することも、ネットワークを介して配信することもできる。
10…サービスグラフ生成装置
11…取得部
12…保存部
13…解析部
14…作成部
15…可視化部
2…トレースデータ
30…トレーシングソフトウェア
50…監視対象サービス

Claims (6)

  1. サービスを構成するコンポーネント間の依存関係を表すサービスグラフを生成するサービスグラフ生成装置であって、
    前記サービスでの一連の処理における前記コンポーネントの処理の時刻データと親子関係を記録したスパンを含むトレースデータを取得する取得部と、
    前記トレースデータのそれぞれについて、同じ親を持つ前記コンポーネントのスパン間の時刻データを比較して前記コンポーネント間の順序関係または排他関係を推定する解析部と、
    前記サービスを構成する全ての前記コンポーネントと前記コンポーネント間の親子関係、順序関係、および排他関係を表現したサービスグラフを作成する作成部を備える
    サービスグラフ生成装置。
  2. 請求項1に記載のサービスグラフ生成装置であって、
    前記解析部は、前記スパン間で処理の時刻が重複せず、時系列上で同じ順番でのみ連続して処理されているコンポーネントを順序関係があると推定し、前記スパン間で処理の時刻が重複せず、時系列上で異なる順番で連続して処理されているコンポーネントを排他関係があると推定する
    サービスグラフ生成装置。
  3. 請求項1または2に記載のサービスグラフ生成装置であって、
    前記作成部は、前記コンポーネントをペトリネットで用いて表現し、前記コンポーネント間の依存関係を前記コンポーネントのペトリネット間に新たなノードとアークを配置して表現する
    サービスグラフ生成装置。
  4. 請求項3に記載のサービスグラフ生成装置であって、
    前記作成部は、前記コンポーネントの処理前、処理中、および処理後の状態を前記ペトリネットのプレースとして表現し、前記コンポーネントの処理開始および処理終了を前記ペトリネットのトランジションとして表現する
    サービスグラフ生成装置。
  5. サービスを構成するコンポーネント間の依存関係を表すサービスグラフを生成するサービスグラフ生成方法であって、
    コンピュータが、
    前記サービスでの一連の処理における前記コンポーネントの処理の時刻データと親子関係を記録したスパンを含むトレースデータを取得し、
    前記トレースデータのそれぞれについて、同じ親を持つ前記コンポーネントのスパン間の時刻データを比較して前記コンポーネント間の順序関係または排他関係を推定し、
    前記サービスを構成する全ての前記コンポーネントと前記コンポーネント間の親子関係、順序関係、および排他関係を表現したサービスグラフを作成する
    サービスグラフ生成方法。
  6. 請求項1ないし4のいずれかに記載のサービスグラフ生成装置の各部としてコンピュータを動作させるプログラム。
JP2022501477A 2020-02-19 2020-02-19 サービスグラフ生成装置、サービスグラフ生成方法、およびプログラム Active JP7372572B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/006513 WO2021166118A1 (ja) 2020-02-19 2020-02-19 サービスグラフ生成装置、サービスグラフ生成方法、およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2021166118A1 JPWO2021166118A1 (ja) 2021-08-26
JP7372572B2 true JP7372572B2 (ja) 2023-11-01

Family

ID=77390802

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022501477A Active JP7372572B2 (ja) 2020-02-19 2020-02-19 サービスグラフ生成装置、サービスグラフ生成方法、およびプログラム

Country Status (3)

Country Link
US (1) US11748226B2 (ja)
JP (1) JP7372572B2 (ja)
WO (1) WO2021166118A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023073859A1 (ja) * 2021-10-28 2023-05-04 日本電信電話株式会社 推定装置、推定方法、及び、推定プログラム
US20240004624A1 (en) * 2022-05-25 2024-01-04 Bionic Stork Ltd. Techniques for recording operations in an application utilizing external initialization engines

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000259589A (ja) 1999-03-10 2000-09-22 Hitachi Ltd 分散制御システム
JP2002215703A (ja) 2001-01-16 2002-08-02 Matsushita Electric Ind Co Ltd ハードウェア/ソフトウェア協調設計方法
JP2009093620A (ja) 2007-10-04 2009-04-30 Mitsubishi Electric Research Laboratories Inc ビジネスプロセスをモデリングするコンピュータ実施方法
JP2013050950A (ja) 2011-08-16 2013-03-14 Ca Inc 分散環境におけるトランザクション別に区別されたメトリックの効率的収集

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8438427B2 (en) * 2011-04-08 2013-05-07 Ca, Inc. Visualizing relationships between a transaction trace graph and a map of logical subsystems
US10216608B1 (en) * 2015-02-26 2019-02-26 Amazon Technologies, Inc. Load testing with automated service dependency discovery
US11314601B1 (en) * 2017-10-24 2022-04-26 EMC IP Holding Company LLC Automated capture and recovery of applications in a function-as-a-service environment
US11194688B1 (en) * 2019-05-08 2021-12-07 Amazon Technologies, Inc. Application architecture optimization and visualization
US11030068B1 (en) * 2020-01-24 2021-06-08 Splunk Inc. Graphical user interface (GUI) for representing instrumented and uninstrumented objects in a microservices-based architecture
US11347625B1 (en) * 2020-10-19 2022-05-31 Splunk Inc. Rendering a service graph illustrate page provider dependencies at query time using exemplars

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000259589A (ja) 1999-03-10 2000-09-22 Hitachi Ltd 分散制御システム
JP2002215703A (ja) 2001-01-16 2002-08-02 Matsushita Electric Ind Co Ltd ハードウェア/ソフトウェア協調設計方法
JP2009093620A (ja) 2007-10-04 2009-04-30 Mitsubishi Electric Research Laboratories Inc ビジネスプロセスをモデリングするコンピュータ実施方法
JP2013050950A (ja) 2011-08-16 2013-03-14 Ca Inc 分散環境におけるトランザクション別に区別されたメトリックの効率的収集

Also Published As

Publication number Publication date
US11748226B2 (en) 2023-09-05
JPWO2021166118A1 (ja) 2021-08-26
US20230082956A1 (en) 2023-03-16
WO2021166118A1 (ja) 2021-08-26

Similar Documents

Publication Publication Date Title
JP2020024711A (ja) データ系統の要約
JP6152675B2 (ja) ワークフロー制御プログラム、装置および方法
EP2228726B1 (en) A method and system for task modeling of mobile phone applications
US8589884B2 (en) Method and system for identifying regression test cases for a software
JP7372572B2 (ja) サービスグラフ生成装置、サービスグラフ生成方法、およびプログラム
US11030384B2 (en) Identification of sequential browsing operations
JP2007316905A (ja) アプリケーションプログラムを監視する計算機システム及びその方法
JP4585534B2 (ja) システム監視プログラム、システム監視方法およびシステム監視装置
JP5327908B2 (ja) 自動操作部品の特定方法およびその装置
EP2669821A2 (en) Control system asset management
Weber et al. Discovering and visualizing operations processes with pod-discovery and pod-viz
CN107341141B (zh) 表单管理方法、装置、介质和计算设备
JP5602871B2 (ja) 照会リネージの自動生成のための方法、システム、およびコンピュータ・プログラム
Delac et al. A reliability improvement method for SOA-based applications
US20100088256A1 (en) Method and monitoring system for the rule-based monitoring of a service-oriented architecture
US9164746B2 (en) Automatic topology extraction and plotting with correlation to real time analytic data
JP6374823B2 (ja) 経路配置方法、経路配置装置、及びプログラム
US8739132B2 (en) Method and apparatus for assessing layered architecture principles compliance for business analytics in traditional and SOA based environments
Samir et al. Reusability quality attributes and metrics of SaaS from prespective of business and provider
JP5041044B2 (ja) システム監視プログラム、システム監視方法およびシステム監視装置
JP7380851B2 (ja) テストスクリプト生成装置、テストスクリプト生成方法及びプログラム
Vasilecas et al. Directed acyclic graph extraction from event logs
JP5651873B2 (ja) 操作支援方法及び計算機
WO2022149262A1 (ja) 制御装置、制御方法、およびプログラム
KR20150070606A (ko) 교통 빅데이터 서비스 조합 프레임워크

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220721

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230919

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231002

R150 Certificate of patent or registration of utility model

Ref document number: 7372572

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150