JP2021196970A - 遅延原因特定方法および遅延原因特定プログラム - Google Patents

遅延原因特定方法および遅延原因特定プログラム Download PDF

Info

Publication number
JP2021196970A
JP2021196970A JP2020103985A JP2020103985A JP2021196970A JP 2021196970 A JP2021196970 A JP 2021196970A JP 2020103985 A JP2020103985 A JP 2020103985A JP 2020103985 A JP2020103985 A JP 2020103985A JP 2021196970 A JP2021196970 A JP 2021196970A
Authority
JP
Japan
Prior art keywords
microservice
delay
called
span
workload
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.)
Pending
Application number
JP2020103985A
Other languages
English (en)
Inventor
二美 飯倉
Futami Iikura
乾 横山
Ken Yokoyama
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2020103985A priority Critical patent/JP2021196970A/ja
Priority to EP21169837.8A priority patent/EP3926928A1/en
Priority to US17/245,505 priority patent/US20210390005A1/en
Publication of JP2021196970A publication Critical patent/JP2021196970A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/142Network analysis or design using statistical or mathematical methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0858One way delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/20Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/75Indicating network or usage conditions on the user display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/046Network management architectures or arrangements comprising network management agents or mobile agents therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Environmental & Geological Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】サービスの応答遅延の原因を特定する際の精度を向上させること。【解決手段】遅延原因特定装置は、MS−BにおけるMS−Cの応答時間の遅れが検知された場合、MS−BからMS−Cへのワークロード間の経路ごとに、MS−Bのスパンの統計値を算出する。遅延原因特定装置は、経路ごとの統計値に基づいて、MS−Bのスパンが有意に長い経路に共通する呼び出し先マイクロサービスのワークロードが存在するか否かを判定する。遅延原因特定装置は、MS−Bのスパンの異常時および正常時における平均値の第1の差と、MS−BにおけるMS−Cの応答時間の異常時および正常時における平均値の第2の差とが同じであるか否かを判定する。遅延原因特定装置は、MS−Bのスパンが有意に長い経路に共通するMS−C2があり、第1の差と第2の差とが同じであると判定した場合に、MS−C2に関連するネットワークに遅延があると判定する。【選択図】図12

Description

本発明は、遅延原因特定方法および遅延原因特定プログラムに関する。
近年、IT(Information Technology)システムの開発において、1つのサービスを複数のマイクロサービスに分割し、マイクロサービス間をAPI(Application Programming Interface)で接続するアーキテクチャが利用されている。
先行技術としては、複数のサービスに係る送信元側の受信時刻および送信先側の送信時刻を含む通信情報を取得し、送信時刻から遡って所定時間以内の受信時刻を有する送信元候補をサービスごとに抽出し、各サービスの送信元候補に基づき、サービス間の関係を示す関係図を生成するものがある。
特開2018−081440号公報
しかしながら、従来技術では、マイクロサービスアーキテクチャの応答遅延の原因調査において、サービスの応答遅延の原因が、サービスの処理にあるのか、ネットワークにあるのかを特定することが難しい。
一つの側面では、本発明は、サービスの応答遅延の原因を特定する際の精度を向上させることを目的とする。
一つの実施態様では、呼び出し元マイクロサービスにおける呼び出し先マイクロサービスの応答時間の遅れが検知された場合に、前記呼び出し元マイクロサービスに対応する呼び出し元ワークロードから前記呼び出し先マイクロサービスに対応する複数の呼び出し先ワークロードへの経路ごとに、前記呼び出し元ワークロードの処理時間の統計値を算出し、算出した前記経路ごとの前記統計値に基づいて、前記経路のうちの前記呼び出し元マイクロサービスの処理時間が相対的に長い経路に共通する呼び出し先ワークロードが存在すると判定され、かつ、前記呼び出し元マイクロサービスの処理時間の異常時および正常時における平均値の差と、前記呼び出し元マイクロサービスにおける前記呼び出し先マイクロサービスの応答時間の異常時および正常時における平均値の差とが所定の範囲内であると判定された場合に、前記呼び出し先マイクロサービスに関連するネットワークもしくは呼び出し先マイクロサービスが遅延原因であると判定する、遅延原因特定方法が提供される。
本発明の一側面によれば、サービスの応答遅延の原因を特定する際の精度を向上させることができるという効果を奏する。
図1は、実施の形態にかかる情報処理システム100のシステム構成例を示す説明図である。 図2は、マイクロサービスアーキテクチャの実装例を示す説明図である。 図3は、マイクロサービスの具体例を示す説明図である。 図4は、トレースとタイマーとの関係を示す説明図である。 図5は、遅延原因特定装置101のハードウェア構成例を示すブロック図である。 図6は、タイマーデータの具体例を示す説明図である。 図7は、トレースデータの具体例を示す説明図である。 図8は、遅延原因特定装置101の機能的構成例を示すブロック図である。 図9は、マイクロサービスの応答時間の遅れの検知例を示す説明図である。 図10は、経路別送信元スパン統計表の具体例を示す説明図である。 図11は、マイクロサービスのスパンと応答時間との関係を示す説明図である。 図12は、ワークロード間の経路別のスパンの長さを示す説明図である。 図13は、遅延原因特定装置101の第1の遅延原因特定処理手順の一例を示すフローチャート(その1)である。 図14は、遅延原因特定装置101の第1の遅延原因特定処理手順の一例を示すフローチャート(その2)である。 図15は、第1の差算出処理の具体的処理手順の一例を示すフローチャートである。 図16は、第2の差算出処理の具体的処理手順の一例を示すフローチャートである。 図17は、遅延原因特定装置101の第2の遅延原因特定処理手順の一例を示すフローチャート(その1)である。 図18は、遅延原因特定装置101の第2の遅延原因特定処理手順の一例を示すフローチャート(その2)である。 図19は、遅延原因特定装置101の第2の遅延原因特定処理手順の一例を示すフローチャート(その3)である。
以下に図面を参照して、本発明にかかる遅延原因特定方法および遅延原因特定プログラムの実施の形態を詳細に説明する。
(実施の形態)
まず、実施の形態にかかる情報処理システム100のシステム構成例について説明する。情報処理システム100は、例えば、マイクロサービスアーキテクチャを利用してウェブサービスを提供するコンピュータシステムに適用される。
図1は、実施の形態にかかる情報処理システム100のシステム構成例を示す説明図である。図1において、情報処理システム100は、遅延原因特定装置101と、複数の処理装置102と、APM(Application Performance Monitoring)システム103と、分散トレーシングシステム104と、運用者端末105と、を含む。情報処理システム100において、遅延原因特定装置101、処理装置102、APMシステム103、分散トレーシングシステム104および運用者端末105は、有線または無線のネットワーク110を介して接続される。ネットワーク110は、例えば、インターネット、LAN、WAN(Wide Area Network)などである。
遅延原因特定装置101は、マイクロサービスの応答遅延の原因を特定するコンピュータである。マイクロサービスは、1つのサービスを機能ごとに分割したアーキテクチャである。例えば、1つのサービスを複数のマイクロサービスに分割することで、機能追加やメンテナンスが行いやすくなり、開発スピードの向上につなげることができる。
処理装置102は、マイクロサービスを実行するコンピュータである。処理装置102は、例えば、VM(Virtual Machine)やコンテナを実行可能である。VMは、物理的なコンピュータのハードウェア資源を分割して構築される実行環境で動作する仮想的なコンピュータである。
VMは、例えば、ハイパーバイザによりハードウェア資源を仮想化することにより実現される。コンテナは、OS(Operating System)のカーネルを内部で分割して作成されるユーザ空間に相当し、OSのプロセスのひとつとして動作する。マイクロサービスは、例えば、VMやコンテナで実装される。
1つのサービスを分割した複数のマイクロサービスのマイクロサービス間は、APIで接続される。また、マイクロサービスは、1または複数のワークロードにより実現される。ワークロードは、マイクロサービスの実体である。ここで、図2を用いて、マイクロサービスアーキテクチャの実装例について説明する。
以下の説明では、任意のマイクロサービス#を「MS−#」と表記する場合がある。
図2は、マイクロサービスアーキテクチャの実装例を示す説明図である。図2において、ノードN1〜N4は、マイクロサービスを実行するコンピュータであり、例えば、処理装置102に相当する。マイクロサービスのワークロードは、マイクロサービスの可用性を高めるため、複数のノードに分散される。
例えば、MS−A1およびMS−A2は、MS−Aのワークロードであり、ノードN1,N3に分散して配置されている。また、MS−B1およびMS−B2は、MS−Bのワークロードであり、ノードN1,N2に分散して配置されている。また、MS−C1およびMS−C2は、MS−Cのワークロードであり、ノードN2,N4に分散して配置されている。
図1の説明に戻り、APMシステム103は、既存のAPM(アプリケーションパフォーマンス監視)により、アプリケーションの性能を監視するコンピュータシステムである。例えば、APMシステム103は、APMツールにより、マイクロサービスのAPI呼び出しにかかるメトリクスを収集して、異常を検知する。
メトリクスとしては、例えば、API呼び出しの単位時間当たりの回数、エラー率、マイクロサービスの応答時間などが収集される。メトリクスは、例えば、処理装置102において各マイクロサービスの処理の中で計測される情報をもとに計算され、不図示のエージェントを介して、処理装置102からAPMシステム103に送信される。
例えば、MS−BからMS−Cを呼び出す場合を想定する。この場合、MS−Bの処理の中で、APMのタイマーにより、MS−Cにリクエストを送信してから、MS−Cからのレスポンスを受信するまでの時間を計測することで、MS−B(呼び出し元)におけるMS−C(呼び出し先)の応答時間が計測される。
ただし、APMのタイマーにより計測された情報は収集時に統計値に変換される。例えば、タイマーにより計測されたMS−Cの応答時間は、一旦バッファに記録され、一定時間(例えば、1分)ごとに、バッファに記録された応答時間の統計値(例えば、平均、標準偏差など)が計算されて、APMシステム103に送信される。
また、呼び出し元マイクロサービスにおいて、呼び出し先マイクロサービスのワークロードを特定することができないことが多い。したがって、APMのタイマーにより計測される応答時間は、ワークロード単位の応答時間ではなく、マイクロサービス単位の応答時間となる。
分散トレーシングシステム104は、既存の分散トレーシングにより、ワークロード単位のスパン(処理時間)を計測するコンピュータシステムである。スパンは、各ワークロードが、リクエストを受けてからレスポンスを返すまでの時間である。スパンは、例えば、ワークロードを実行する処理装置102において計測され、不図示のエージェントを介して、処理装置102から分散トレーシングシステム104に送信される。
例えば、MS−B2からMS−C2を呼び出す場合を想定する。この場合、MS−C2が配置された処理装置102(VM、コンテナ)において、MS−C2が呼び出し元のMS−B2からリクエストを受けてから、呼び出し元のMS−B2にレスポンスを返すまでの時間を計測することで、MS−C2のスパンが計測される。
運用者端末105は、サービスの運用者が使用するコンピュータである。例えば、サービスの運用者は、運用者端末105において、遅延原因特定装置101によって特定されるマイクロサービスの応答遅延の原因を確認することができる。運用者端末105は、例えば、PC(Personal Computer)、タブレット端末などである。
なお、遅延原因特定装置101、APMシステム103、分散トレーシングシステム104および処理装置102は、例えば、クラウドコンピューティングのサーバにより実現される。また、APMシステム103および分散トレーシングシステム104は、同一のサーバにより実現されてもよい。また、APMシステム103および分散トレーシングシステム104は、遅延原因特定装置101や、複数の処理装置102のいずれかの処理装置102により実現されてもよい。
ここで、図3を用いて、1つのサービスを分割したマイクロサービスの具体例を説明する。
図3は、マイクロサービスの具体例を示す説明図である。図3において、MS−A、MS−BおよびMS−Cは、1つのサービスを分割した複数のマイクロサービスの一例である。MS−A、MS−BおよびMS−Cは、クライアントからのリクエストに応じて実行される一連のマイクロサービスである。
図3において、MS−A、MS−BおよびMS−Cは、リクエストに応じて「MS−A⇒MS−B⇒MS−C」の順に呼び出される。ここで、MS−BからMS−Cの呼び出しに着目し、MS−BのワークロードであるMS−B2から、MS−CのワークロードであるMS−C2が呼び出される場合を想定する。
MS−B2は、物理サーバ301上で動作するVM1で実行される。MS−C2は、物理サーバ302上で動作するVM2で実行される。物理サーバ301,302は、図1に示した処理装置102に相当する。MS−B2,MS−C2間の通信経路上には、VM1に対応する仮想SW1、物理サーバ301,302間の物理SW303およびVM2に対応する仮想SW2が存在する。
ここで、マイクロサービスの障害分析において、トレースを使用して応答遅延の原因調査を行う場合がある。トレースは、1つのサービスを実現する複数のマイクロサービスの各々のマイクロサービスのスパン(ワークロードのスパン)をまとめたものであり、ワークロード単位のスパンの長さを特定可能な情報である。図3の例では、トレースから、MS−B2のスパンおよびMS−C2のスパンを特定することができる。
しかし、分散トレーシングのスパンの伸長だけでは、サービスの応答遅延が、サービスの処理にあるのか、ネットワーク(通信経路)にあるのかを特定することが難しい。ネットワークに問題がある場合、原因箇所としては、仮想SW、物理サーバ、物理SWなどがありえる。
例えば、MS−B2からMS−C2への通信経路上の仮想SW2で遅延が起きたとする。この場合、MS−C2の処理自体は問題ないため、MS−C2のスパンの長さは通常通りとなる。一方、MS−B2のスパンは、MS−B2の処理自体に問題がなくても、通常より長くなる。このため、スパンの伸長だけをもとに、MS−B2を実行している側に問題があると判断してしまうと、遅延原因を特定することが難しくなる。
ここで、APMのタイマーでは、呼び出し元マイクロサービスにおける、呼び出し先マイクロサービスの応答時間を計測することができる。分散トレーシングでは、呼び出し先マイクロサービスのワークロードの処理時間を計測することができる。このため、APMのタイマーにより計測される呼び出し先マイクロサービスの応答時間と、分散トレーシングにより計測される呼び出し先のワークロードでの処理時間との差分を取ることができれば、通信にかかった時間を得ることができる。
図4は、トレースとタイマーとの関係を示す説明図である。図4において、MS−A、MS−BおよびMS−Cそれぞれの処理時間(スパン)を表すバー401,402,403が時間軸上に示されている。例えば、バー403は、MS−C Spanを表している。MS−C Spanは、分散トレーシングにより計測されるMS−Cの処理時間である。また、MS−C timerは、APMのタイマーにより計測されるMS−BにおけるMS−Cの応答時間である。
このため、MS−C timerとMS−C Spanとの差分を取ることができれば、MS−B,MS−C間の通信経路でかかった時間を得ることができる。しかし、APMのタイマーにより計測された情報は収集時に統計値に丸められる。したがって、APMのタイマーにより計測される応答時間(例えば、MS−C timer)は、トレースのスパン(例えば、MS−C Span)と直接比較することができない。
なお、通信経路の遅延を調べる既存手法として、パケットキャプチャの技術を利用するものがある。パケットキャプチャは、通信回線を流れるパケットをキャプチャして、パケットを解析したり、集計したりすることである。しかし、パケットキャプチャを常時行うことはコスト的に難しく、過去に遅延はあったが現在は解消しているといった状況の場合、原因箇所の特定にパケットキャプチャは使えない。
また、通信経路のスイッチなどに保存されるメトリクスを用いて、通信経路の遅延を調べることも考えられる。しかし、スイッチなどに保存されるメトリクスは、サービスの運用者とは異なるインフラの運用者が管理している場合がある。この場合、サービスの運用者は、直接メトリクスを見ることができない。
そこで、本実施の形態では、マイクロサービスの性能監視のために一般的に収集されるAPMタイマーや分散トレーシングのメトリクスを利用して、サービスの応答遅延の原因を特定する際の精度を向上させる遅延原因特定方法について説明する。
(遅延原因特定装置101のハードウェア構成例)
図5は、遅延原因特定装置101のハードウェア構成例を示すブロック図である。図5において、遅延原因特定装置101は、CPU(Central Processing Unit)501と、メモリ502と、ディスクドライブ503と、ディスク504と、通信I/F(Interface)505と、可搬型記録媒体I/F506と、可搬型記録媒体507と、を有する。また、各構成部は、バス500によってそれぞれ接続される。
ここで、CPU501は、遅延原因特定装置101の全体の制御を司る。CPU501は、複数のコアを有していてもよい。メモリ502は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMがOSのプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU501のワークエリアとして使用される。メモリ502に記憶されるプログラムは、CPU501にロードされることで、コーディングされている処理をCPU501に実行させる。
ディスクドライブ503は、CPU501の制御に従ってディスク504に対するデータのリード/ライトを制御する。ディスク504は、ディスクドライブ503の制御で書き込まれたデータを記憶する。ディスク504としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
通信I/F505は、通信回線を通じてネットワーク110に接続され、ネットワーク110を介して外部のコンピュータ(例えば、図1に示した処理装置102、APMシステム103、分散トレーシングシステム104、運用者端末105など)に接続される。そして、通信I/F505は、ネットワーク110と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。
可搬型記録媒体I/F506は、CPU501の制御に従って可搬型記録媒体507に対するデータのリード/ライトを制御する。可搬型記録媒体507は、可搬型記録媒体I/F506の制御で書き込まれたデータを記憶する。可搬型記録媒体507としては、例えば、CD(Compact Disc)−ROM、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリなどが挙げられる。
なお、遅延原因特定装置101は、上述した構成部のほかに、例えば、SSD(Solid State Drive)、入力装置、ディスプレイ等を有することにしてもよい。また、遅延原因特定装置101は、上述した構成部のうち、例えば、ディスクドライブ503、ディスク504、可搬型記録媒体I/F506、可搬型記録媒体507を有していなくてもよい。
また、図1に示した処理装置102、APMシステム103、分散トレーシングシステム104および運用者端末105についても、遅延原因特定装置101と同様のハードウェア構成により実現することができる。ただし、運用者端末105は、上述した構成部のほかに、例えば、入力装置、ディスプレイを有する。
(タイマーデータの具体例)
つぎに、図6を用いて、遅延原因特定装置101が用いるタイマーデータの具体例について説明する。タイマーデータは、例えば、APMシステム103において生成されて、遅延原因特定装置101に送信される。
図6は、タイマーデータの具体例を示す説明図である。図6において、タイマーデータ600は、複数の応答時間データ(例えば、応答時間データ600−1〜600−4)を含む。各応答時間データは、APMのタイマーにより計測される各マイクロサービスの応答時間に関する統計情報である。
ここで、応答時間データは、time window、service、mean、stdvおよびmaxの情報を含む。time windowは、一定時間ごとに区切られた期間を示す。一定時間は、例えば、数秒〜1分程度の時間である。serviceは、マイクロサービスの名称を示す。
meanは、time windowに計測されたマイクロサービスの応答時間の平均を示す。マイクロサービスの応答時間は、例えば、呼び出し元で計測される、呼び出し先のマイクロサービスの応答時間である(例えば、図4参照)。stdvは、time windowに計測されたマイクロサービスの応答時間の標準偏差を示す。maxは、time windowに計測されたマイクロサービスの応答時間の最大値を示す。
例えば、応答時間データ600−1は、期間T1に計測されたMS−Aの応答時間の平均Mat1、標準偏差Sat1および最大値Mxat1を示す。
(トレースデータの具体例)
つぎに、図7を用いて、遅延原因特定装置101が用いるトレースデータの具体例について説明する。トレースデータは、例えば、分散トレーシングシステム104において生成されて、遅延原因特定装置101に送信される。
図7は、トレースデータの具体例を示す説明図である。図7において、トレースデータ700は、複数のスパンデータ(例えば、スパンデータ700−1〜700−4)を含む。各スパンデータは、各ワークロードのスパン(処理時間)に関する情報である。
ここで、スパンデータは、trace ID、service name、workload、start timeおよびdurationの情報を含む。trace IDは、トレースを一意に識別する識別子である。トレースは、1つのサービスを実現する複数のマイクロサービスの各々のワークロードのスパンをまとめたものである。service nameは、トレースに含まれるマイクロサービスの名称である。
workloadは、マイクロサービスに対応するワークロードの名称である。start timeは、ワークロードが呼び出し元からリクエストを受信した時間(例えば、日時)を示す。durationは、ワークロードのスパンの長さを示す(単位:msec)。ワークロードのスパンは、ワークロードが、呼び出し元からリクエストを受信してから、呼び出し元にレスポンスを返すまでの処理時間である。
trace IDが同一のスパンデータ群により一つのトレースが形成される。例えば、trace ID「4567」のスパンデータ700−1〜700−3により一つのトレースが形成される。例えば、スパンデータ700−1は、trace ID「4567」のトレースに含まれるMS−AのワークロードであるMS−A2のstart time「t1」およびduration「d1」を示す。
なお、図示は省略するが、トレースデータには、例えば、1つのサービスを実現する複数のマイクロサービスのマイクロサービス間(ワークロード間)の呼び出し関係を特定可能な情報が含まれている。
(遅延原因特定装置101の機能的構成例)
図8は、遅延原因特定装置101の機能的構成例を示すブロック図である。図8において、遅延原因特定装置101は、検知部801と、判断部802と、算出部803と、第1の条件判定部804と、第2の条件判定部805と、遅延原因判定部806と、出力部807と、を含む。具体的には、例えば、検知部801〜出力部807は、図5に示したメモリ502、ディスク504、可搬型記録媒体507などの記憶装置に記憶されたプログラムをCPU501に実行させることにより、または、通信I/F505により、その機能を実現する。各機能部の処理結果は、例えば、メモリ502、ディスク504などの記憶装置に記憶される。
検知部801は、呼び出し元マイクロサービスにおける呼び出し先マイクロサービスの応答時間の遅れを検知する。ここで、呼び出し元マイクロサービスは、1つのサービスを実現する一連のマイクロサービスのうちのいずれかのマイクロサービスである。呼び出し先マイクロサービスは、複数のマイクロサービスのうちの呼び出し元マイクロサービスから呼び出されるマイクロサービスである。
また、マイクロサービスの応答時間の遅れとは、マイクロサービスの応答時間が許容値を超える程度に長い状態である。具体的には、例えば、検知部801は、APMシステム103から呼び出し先マイクロサービスの遅延アラートを受信したことに応じて、その呼び出し先マイクロサービスの応答時間の遅れを検知する。
遅延アラートは、APMシステム103において、マイクロサービスの応答時間の遅れに関する異常が検知された場合に出力されるアラートである。遅延アラートには、例えば、呼び出し先マイクロサービスおよび呼び出し元マイクロサービスを特定する情報が含まれる。また、遅延アラートには、呼び出し先マイクロサービスの応答時間の遅れが検知された時点を特定する情報が含まれていてもよい。
ここで、図9を用いて、APMシステム103における、マイクロサービスの応答時間の遅れの検知例について説明する。ここでは、呼び出し元マイクロサービスを「MS−B」とし、呼び出し先マイクロサービスを「MS−C」とする。
図9は、マイクロサービスの応答時間の遅れの検知例を示す説明図である。図9において、グラフ900は、APMシステム103において監視される、単位時間あたりのMS−Cの平均応答時間(最大応答時間でもよい)の時間変化を示す折れ線グラフである。MS−Cの平均応答時間は、呼び出し元であるMS−Bにおいて計測されたMS−Cの応答時間の平均値である。
グラフ900上の各点(例えば、点901〜904)は、図6に示したtime windowあたりのマイクロサービスの応答時間の平均値(最大値でもよい)に相当する。APMシステム103は、例えば、MS−Cの平均応答時間が閾値Xを複数回超えた場合に遅延アラートを出力する。閾値Xは、任意に設定可能である(図9中、点線)。
具体的には、例えば、APMシステム103は、MS−Cの平均応答時間が閾値Xを所定回数以上超えた場合に、遅延原因特定装置101に遅延アラートを送信してもよい。また、APMシステム103は、MS−Cの平均応答時間が閾値Xを所定回数連続して超えた場合に、遅延原因特定装置101に遅延アラートを送信してもよい。所定回数は、任意に設定可能である。
図9の例では、MS−Cの平均応答時間が閾値Xを4回連続して超えた場合に、APMシステム103から遅延原因特定装置101に、MS−Cの遅延アラートが送信される。この場合、検知部801は、APMシステム103からMS−Cの遅延アラートを受信したことに応じて、遅延アラートから特定される、MS−B(呼び出し元)におけるMS−C(呼び出し先)の応答時間の遅れを検知する。
図8の説明に戻り、判断部802は、呼び出し元マイクロサービスにおける呼び出し先マイクロサービスの応答時間の遅れが検知されたことに応じて、第1の期間における呼び出し先マイクロサービスの処理時間が、第2の期間における呼び出し先マイクロサービスの処理時間に比べて長くなっているか否かを判断する。
ここで、第1の期間は、呼び出し元マイクロサービスにおける呼び出し先マイクロサービスの応答時間の遅れが検知された期間である。第2の期間は、第1の期間とは異なる期間、すなわち、呼び出し元マイクロサービスにおける呼び出し先マイクロサービスの応答時間の遅れが検知されていない期間である。
また、マイクロサービスの処理時間は、マイクロサービスが、呼び出し元からリクエストを受信してから、呼び出し元にレスポンスを返すまでの処理時間である。例えば、呼び出し先マイクロサービスの処理時間は、呼び出し先マイクロサービスのワークロードが、呼び出し元マイクロサービスのワークロードからリクエストを受信してから、そのワークロードにレスポンスを返すまでの処理時間である。
以下の説明では、呼び出し元マイクロサービスにおける呼び出し先マイクロサービスの応答時間の遅れが検知された第1の期間を「異常時間帯」と表記する場合がある。また、呼び出し元マイクロサービスにおける呼び出し先マイクロサービスの応答時間の遅れが検知されていない第2の期間を「正常時間帯」と表記する場合がある。また、マイクロサービスの処理時間を「マイクロサービスのスパン」と表記する場合がある。
具体的には、例えば、判断部802は、呼び出し先マイクロサービスの応答時間の遅れが検知されたことに応じて、APMシステム103から、呼び出し先マイクロサービスの応答時間の遅れが検知されたときの応答時間データを含むタイマーデータを取得する。タイマーデータは、例えば、図6に示したタイマーデータ600である。
タイマーデータには、例えば、呼び出し先マイクロサービスの応答時間の遅れが検知された時点を含む所定の時間帯の応答時間データが含まれる。図9に示したグラフ900を例に挙げると、所定の時間帯は、例えば、点901の時刻の数分〜1時間程度前の時刻から、点904の時刻までの時間帯である。
また、判断部802は、呼び出し先マイクロサービスの応答時間の遅れが検知されたことに応じて、分散トレーシングシステム104から、呼び出し先マイクロサービスの応答時間の遅れが検知されたときのスパンデータを含むトレースデータを取得する。トレースデータは、例えば、図7に示したトレースデータ700である。
トレースデータには、例えば、呼び出し先マイクロサービスの応答時間の遅れが検知された時点を含む所定の時間帯のスパンデータが含まれる。所定の時間帯は、例えば、タイマーデータと同じ時間帯であり、例えば、点901の時刻の数十分〜1時間程度前の時刻から、点904の時刻までの時間帯である。
つぎに、判断部802は、取得したタイマーデータを参照して、呼び出し先マイクロサービスの異常時間帯および正常時間帯を特定する。例えば、タイマーデータ内の各応答時間データに、マイクロサービスの応答時間の平均値(または、最大値)が閾値Xを超えていると、OFF(0)からON(1)となるフラグが含まれているとする。
この場合、判断部802は、タイマーデータ内の遅れが検知された呼び出し先マイクロサービスの応答時間データのフラグを参照して、フラグがONの時間帯を異常時間帯として特定し、異常時間帯とは異なる時間帯を正常時間帯として特定する。
ただし、判断部802が、遅れが検知された呼び出し先マイクロサービスの応答時間の平均値が閾値Xを超えているか否かを判断することにしてもよい。閾値Xは、例えば、予めメモリ502やディスク504に記憶されていてもよい。また、判断部802は、APMシステム103に、遅れが検知された呼び出し先マイクロサービスの異常時間帯を問い合わせることにしてもよい。
つぎに、判断部802は、取得したトレースデータを参照して、特定した異常時間帯における呼び出し先マイクロサービスの処理時間を算出する。また、判断部802は、取得したトレースデータを参照して、特定した正常時間帯における呼び出し先マイクロサービスの処理時間を算出する。
ここで、異常時間帯の開始時刻を「tas」とし、異常時間帯の終了時刻を「tae」とする。また、以下の説明では、遅れが検知された呼び出し先マイクロサービスを「MS−C」とし、呼び出し元マイクロサービスを「MS−B」として説明する場合がある。ただし、MS−BからMS−Cのみが呼び出されたとする。
この場合、判断部802は、例えば、トレースデータ700から、service nameが「MS−C」であり、「start time>tas」かつ「start time<tae」のスパンデータを抽出する。ただし、呼び出し先マイクロサービスの応答時間の遅れが検知されたときと同じ呼び出しパターンのスパンデータを対象とする。
すなわち、判断部802は、MS−BからMS−Cのみが呼び出されたときのスパンデータを対象とする。そして、判断部802は、抽出したスパンデータのdurationの平均値を算出することにより、異常時間帯におけるMS−Cのスパンの平均Daを算出する。
また、判断部802は、トレースデータ700から、service nameが「MS−C」であり、「start time<tas」または「start time>tae」のスパンデータを抽出する。ただし、呼び出し先マイクロサービスの応答時間の遅れが検知されたときと同じ呼び出しパターンのスパンデータを対象とする。また、ここで抽出されるスパンデータ数は十分大きいものとする(例えば、100以上)。
そして、判断部802は、抽出したスパンデータのdurationの平均値および標準偏差を算出することにより、正常時間帯におけるMS−Cのスパンの平均Dnおよび標準偏差Snを算出する。つぎに、判断部802は、算出した算出結果に基づいて、異常時間帯におけるMS−Cのスパンが、正常時間帯におけるMS−Cのスパンに比べて長くなっているか否かを判断する。
より詳細に説明すると、例えば、判断部802は、「Da>Dn+3Sn」の場合に、異常時間帯におけるMS−Cのスパンが、正常時間帯におけるMS−Cのスパンに比べて長くなっていると判断する。一方、「Da≦Dn+3Sn」の場合は、判断部802は、異常時間帯におけるMS−Cのスパンが、正常時間帯におけるMS−Cのスパンに比べて長くなっていないと判断する。
遅延原因判定部806は、マイクロサービスの応答遅延の原因を判定する。具体的には、例えば、遅延原因判定部806は、異常時間帯におけるマイクロサービスのスパンが、正常時間帯における呼び出し先マイクロサービスのスパンに比べて長くなっていると判断された場合、呼び出し先マイクロサービスに遅延(遅延原因)があると判定することにしてもよい。
より詳細に説明すると、例えば、遅延原因判定部806は、MS−Bにおける応答時間の遅れが検知されたMS−Cについて、異常時間帯におけるスパンが正常時間帯におけるスパンに比べて長くなっている場合、MS−Cに遅延があると判定する。
一方、異常時間帯における呼び出し先マイクロサービスのスパンが、正常時間帯における呼び出し先マイクロサービスのスパンに比べて長くなっていないと判断された場合、呼び出し先マイクロサービスのスパンの長さが正常であるといえる。この場合、遅延原因判定部806は、この時点では遅延原因を特定しない。
算出部803は、呼び出し元マイクロサービスから呼び出し先マイクロサービスへの経路ごとに、呼び出し元マイクロサービスのスパンに関する統計値を算出する。ここで、経路は、呼び出し元マイクロサービスのワークロードから、呼び出し先マイクロサービスのワークロードへの経路である。
例えば、経路は、呼び出し元マイクロサービスのワークロード(呼び出し元ワークロード)と、呼び出し先マイクロサービスのワークロード(呼び出し先ワークロード)との組み合わせによって特定される。また、呼び出し元マイクロサービスのスパンの統計値は、例えば、スパンの平均、標準偏差および呼び出し回数である。呼び出し回数は、呼び出し元マイクロサービスから呼び出し先マイクロサービスを呼び出した回数である。
例えば、算出部803は、呼び出し元マイクロサービスにおける呼び出し先マイクロサービスの応答時間の遅れが検知された場合に、呼び出し元マイクロサービスに対応する呼び出し元ワークロードから呼び出し先マイクロサービスに対応する複数の呼び出し先ワークロードへの経路ごとに、呼び出し元ワークロードのスパンの統計値を算出する。
具体的には、例えば、算出部803は、異常時間帯における呼び出し先マイクロサービスのスパンが、正常時間帯における呼び出し先マイクロサービスのスパンに比べて長くなっていないと判断された場合に、異常時間帯における呼び出し元ワークロードのスパンに基づいて、経路ごとに、呼び出し元ワークロードのスパンの統計値を算出することにしてもよい。
ここで、遅れが検知された呼び出し先マイクロサービスを「MS−C」とし、呼び出し元マイクロサービスを「MS−B」とする。この場合、算出部803は、例えば、トレースデータ700の異常時間帯のトレースを参照して、MS−Bのワークロードから、MS−Cのワークロードへの経路を特定する。
異常時間帯のトレースは、例えば、start timeが異常時間帯に含まれるスパンデータからなるトレースデータである。ただし、呼び出し先マイクロサービスであるMS−Cの応答時間の遅れが検知されたときと同じ呼び出しパターンのスパンデータを対象とする。
例えば、MS−Bのワークロードを「MS−B1,MS−B2,MS−B3」とし、MS−Cのワークロードを「MS−C1,MS−C2,MS−C3」とする。この場合、MS−BのワークロードとMS−Cのワークロードとの組み合わせを特定することで、9通りのワークロード間の経路が特定される。
つぎに、算出部803は、異常時間帯のトレースを参照して、特定したワークロード間の経路ごとに、MS−Bのワークロードのスパンの統計値を算出する。スパンの統計値は、スパンの平均、標準偏差および呼び出し回数とする。そして、算出部803は、算出した算出結果に基づいて、経路別送信元スパン統計表を作成する。
経路別送信元スパン統計表は、呼び出し元マイクロサービスのワークロード(呼び出し元ワークロード)と呼び出し先マイクロサービスのワークロード(呼び出し先ワークロード)との間の経路ごとに、呼び出し元ワークロードのスパンの統計値を示す情報である。ここで、経路別送信元スパン統計表の具体例について説明する。
図10は、経路別送信元スパン統計表の具体例を示す説明図である。図10において、経路別送信元スパン統計表1000は、呼び出し元であるMS−Bのワークロードと呼び出し先であるMS−Cのワークロードとの間の経路ごとに、MS−Bのワークロードのスパンの統計値を示す情報である。
送信元は、呼び出し元マイクロサービスのワークロードを示す。送信先は、呼び出し先マイクロサービスのワークロードを示す。平均は、MS−Bのワークロードのスパンの平均を示す。標準偏差は、MS−Bのワークロードのスパンの標準偏差を示す。回数は、MS−BのワークロードからMS−Cのワークロードの呼び出し回数を示す。
例えば、MS−B1からMS−C1への経路を例に挙げると、MS−B1のスパンの平均は「Mm11」である。また、MS−B1のスパンの標準偏差は「S11」である。また、MS−B1からMS−C1の呼び出し回数は「N11」である。
図8の説明に戻り、第1の条件判定部804は、算出した経路ごとの統計値に基づいて、特定した経路のうち、呼び出し元マイクロサービスのスパンが相対的に長い経路に共通する呼び出し先ワークロードが存在するか否かを判定する。例えば、第1の条件判定部804は、呼び出し先マイクロサービスの1つのワークロードに着目し、そのワークロードのときの呼び出し元マイクロサービスのスパンが、他のワークロードのときよりも有意に長いか否かを判断する。
具体的には、例えば、第1の条件判定部804は、作成された経路別送信元スパン統計表を参照して、下記式(1)を用いて、呼び出し先マイクロサービスのワークロードごとに統計量tを算出する。以下の説明では、着目している呼び出し先マイクロサービスのワークロードを「対象ワークロード」と表記する場合がある。
Figure 2021196970
ただし、上記式(1)中、x〜は、呼び出し先マイクロサービスのワークロードが対象ワークロードのときの呼び出し元マイクロサービスのワークロードのスパンの平均の平均である。#〜の「〜」は、#の上に付されたバーを示す。y〜は、呼び出し先マイクロサービスのワークロードが対象ワークロード以外のときの呼び出し元マイクロサービスのワークロードのスパンの平均の平均である。sxは、呼び出し先マイクロサービスのワークロードが対象ワークロードのときの呼び出し元マイクロサービスのワークロードのスパンの標準偏差の合成を示す。syは、呼び出し先マイクロサービスのワークロードが対象ワークロード以外のときの呼び出し元マイクロサービスのワークロードのスパンの標準偏差の合成を示す。mは、呼び出し先マイクロサービスのワークロードが対象ワークロードのときの呼び出し回数の合計である。nは、呼び出し先マイクロサービスのワークロードが対象ワークロード以外のときの呼び出し回数の合計である。
例えば、対象ワークロードを「MS−C2」とする。この場合、x〜は、Mm12,M22,Mm32の平均となる。y〜は、Mm12,M22,Mm32以外のMmの平均となる。sxは、S12,S22,S32の合成である。syは、S12,S22,S32以外のSの合成である。mは、N12,N22,N32の合計である。nは、N12,N22,N32以外のNの合計である。
つぎに、第1の条件判定部804は、算出した統計量tに基づいて、t分布のp値を算出する。ここで、p値は、有意確率である。p値は、例えば、T.DIST.2T関数などの既存の表計算ソフトの関数を用いて算出することができる。p値が有意水準より小さければ、x〜とy〜とは差がないといえる。
例えば、有意水準を5%とする。この場合、対象ワークロードが「MS−C2」のときのp値が「p<0.05」であれば、x〜とy〜とは有意差がないといえる。すなわち、「p<0.05」の場合、対象ワークロードが「MS−C2」のときの呼び出し元マイクロサービスのスパンが有意に長いとはいえない。
一方、対象ワークロードが「MS−C2」のときのp値が「p≧0.05」の場合には、x〜とy〜とに有意差があるといえる。すなわち、「p≧0.05」の場合には、対象ワークロードが「MS−C2」のときの呼び出し元マイクロサービスのスパンが有意に長いといえる。
この場合、第1の条件判定部804は、呼び出し元マイクロサービス(MS−B)のスパンが有意に長い経路に共通する呼び出し先ワークロード(MS−C2)が存在すると判定する。MS−C2のときの呼び出し元マイクロサービス(MS−B)のスパンが有意に長いといえる場合、呼び出し元のマイクロサービスとMS−C2との間のネットワークまたはMS−C2が遅延していると推定することができる。
また、呼び出し先マイクロサービスの全ワークロードについて、p値が「p<0.05」、すなわち、呼び出し元マイクロサービスのスパンが有意に長いとはいえない場合がある。この場合、第1の条件判定部804は、呼び出し元マイクロサービスのスパンが有意に長い経路に共通する呼び出し先マイクロサービスが存在しないと判定する。
第2の条件判定部805は、第1の差と第2の差とが、所定の範囲内であるか否かを判定する。ここで、第1の差は、呼び出し元マイクロサービスのスパンの異常時および正常時における平均値の差である。第2の差は、呼び出し元マイクロサービスにおける呼び出し先マイクロサービスの応答時間の異常時および正常時における平均値の差である。所定の範囲は、任意に設定可能であり、例えば、第1の差と第2の差とが同じであるといえる範囲に設定される。
呼び出し元マイクロサービスのスパンの異常時における平均値は、例えば、異常時間帯における呼び出し元マイクロサービスのスパンから計算される。呼び出し元マイクロサービスのスパンの正常時における平均値は、例えば、正常時間帯における呼び出し元マイクロサービスのスパンから計算される。
また、呼び出し先マイクロサービスの応答時間の異常時における平均値は、例えば、異常時間帯における呼び出し先マイクロサービスの応答時間から計算される。呼び出し先マイクロサービスの応答時間の正常時における平均値は、例えば、正常時間帯における呼び出し先マイクロサービスの応答時間から計算される。
また、第1の条件判定部804によって、呼び出し元マイクロサービスのスパンが長い経路に共通する呼び出し先ワークロードが特定されている場合がある。この場合、第2の条件判定部805は、経路別送信元スパン統計表を参照して、特定された呼び出し先ワークロードを含む経路を考慮して、呼び出し元マイクロサービスのスパンの異常時における平均値を算出することにしてもよい。
なお、第1の差および第2の差を算出する具体的な処理例については後述する。
第1の差と第2の差とが所定の範囲内であるか否かの判定は、例えば、既存の平均値の検定(両側検定)を用いて行うことができる。具体的には、例えば、第2の条件判定部805は、算出した第1の差および第2の差に基づいて、下記式(2)を用いて、第1の差と第2の差とが所定の範囲内であるか否かを判定する。
Figure 2021196970
ただし、上記式(2)中、x〜は、標本平均を示す。μは、母平均を示す。nは、標本数を示す。sは、標本標準偏差を示す。第2の条件判定部805は、例えば、標本平均を第1の差とし、母平均を第2の差とする。標本数は、例えば、第1の差の算出に用いたスパンの数である。標本標準偏差は、例えば、第1の差の算出に用いたスパンから算出される。
つぎに、第2の条件判定部805は、算出した統計量tに基づいて、t分布のp値を算出する。p値が有意水準より小さければ、x〜とμとは差がないといえる。なお、p値は、例えば、T.DIST.2T関数などの既存の表計算ソフトの関数を用いて算出することができる。
例えば、有意水準を5%とする。この場合、p値が「p<0.05」であれば、x〜とμとは有意差がないといえる。このため、第2の条件判定部805は、「p<0.05」の場合、第1の差と第2の差とが同じ(所定範囲内)であると判定する。一方、第2の条件判定部805は、「p≧0.05」の場合、第1の差と第2の差とが同じではない(所定範囲外)であると判定する。
遅延原因判定部806は、第1の条件判定部804によって共通する呼び出し先ワークロードが存在すると判定され、かつ、第2の条件判定部805によって第1の差と第2の差とが所定の範囲内であると判定された場合、呼び出し先マイクロサービスに関連するネットワークもしくは呼び出し先マイクロサービスに遅延があると判定する。
上述したように、遅延原因判定部806は、例えば、判断部802によって異常時間帯におけるマイクロサービスのスパンが、正常時間帯における呼び出し先マイクロサービスのスパンに比べて長くなっていると判断された場合、呼び出し先マイクロサービスに遅延があると判定する。このため、遅延原因判定部806は、例えば、異常時間帯におけるマイクロサービスのスパンが、正常時間帯における呼び出し先マイクロサービスのスパンに比べて長くなっていないと判断されたときに、共通する呼び出し先ワークロードが存在すると判定され、かつ、第1の差と第2の差とが所定の範囲内であると判定された場合、呼び出し先マイクロサービスに関連するネットワークに遅延があると判定する。
また、遅延原因判定部806は、第1の条件判定部804によって共通する呼び出し先マイクロサービスが存在しないと判定された場合には、呼び出し先マイクロサービスに関連するネットワークに遅延があるとはいえないと判定する。
また、遅延原因判定部806は、第2の条件判定部805によって第1の差と第2の差とが所定の範囲外であると判定された場合には、呼び出し先マイクロサービスに関連するネットワークに遅延があるとはいえないと判定する。
なお、マイクロサービスの応答遅延の原因の判定例については、図11を用いて後述する。
出力部807は、遅延原因判定部806によって判定された判定結果を出力する。出力部807の出力形式としては、例えば、メモリ502、ディスク504などの記憶装置への記憶、通信I/F505による他のコンピュータへの送信、不図示のディスプレイへの表示、不図示のプリンタへの印刷出力などがある。
具体的には、例えば、出力部807は、図1に示した運用者端末105に遅延原因判定結果を送信することにしてもよい。ここで、遅延原因判定結果は、マイクロサービスの応答遅延の原因の判定結果を示す情報である。運用者端末105において、サービスの運用者は、遅延原因判定結果を参照することで、マイクロサービスの応答遅延の原因を確認することができる。
例えば、呼び出し先マイクロサービスに関連するネットワークに遅延があると判定されたとする。この場合、遅延原因判定結果は、呼び出し先マイクロサービスに関連するネットワークに遅延があることを示す情報となる。また、遅延原因判定結果には、例えば、呼び出し元マイクロサービスのスパンが有意に長い経路に共通する呼び出し先マイクロサービスのワークロードを特定する情報が含まれる。また、遅延原因判定結果には、呼び出し元マイクロサービスのワークロードを特定する情報が含まれていてもよい。
なお、上述した遅延原因特定装置101の各機能部は、情報処理システム100内の複数のコンピュータ(例えば、遅延原因特定装置101と処理装置102)により実現されることにしてもよい。
(第1の差および第2の差の算出処理例)
ここで、第1の差および第2の差の算出処理例について説明する。まず、第1の差を算出する具体的な処理例について説明する。ただし、遅れが検知された呼び出し先マイクロサービスを「MS−C」とし、呼び出し元マイクロサービスを「MS−B」とする。
この場合、第2の条件判定部805は、トレースデータ700(図7参照)から、service nameがMS−Bであり、かつ、start timeが異常時間帯に含まれるスパンデータを抽出する。ただし、MS−Cの応答時間の遅れが検知されたときと同じ呼び出しパターン(MS−B⇒MS−C)のスパンデータを対象とする。つぎに、第2の条件判定部805は、抽出したスパンデータのdurationの平均を求めることにより、MS−Bのスパンの異常時における平均値E(Xd)を算出する。
また、第2の条件判定部805は、トレースデータ700から、service nameがMS−Bであり、かつ、start timeが正常時間帯に含まれるスパンデータを抽出する。ただし、MS−Cの応答時間の遅れが検知されたときと同じ呼び出しパターン(MS−B⇒MS−C)のスパンデータを対象とする。つぎに、第2の条件判定部805は、抽出したスパンデータのdurationの平均を求めることにより、MS−Bのスパンの正常時における平均値E(Xn)を算出する。
そして、第2の条件判定部805は、算出した平均値E(Xd)から平均値E(Xn)を減算することにより、第1の差(E(Xd)−E(Xn))を算出する。
ただし、MS−Bのスパンが長い経路に共通するMS−Cのワークロードが特定されている場合がある。例えば、MS−Bのスパンが有意に長い経路に共通するMS−Cのワークロードとして、「MS−C2」が特定されているとする。この場合、第2の条件判定部805は、MS−C2を含む経路を考慮して、MS−Bのスパンの異常時における平均値E(Xd)を算出することにしてもよい。
より詳細に説明すると、例えば、第2の条件判定部805は、経路別送信元スパン統計表1000を参照して、下記式(3)および(4)を用いて、MS−C2を呼び出す割合a1と、MS−C2以外を呼び出す割合a2とを算出する。
a1=(N12+N22+N23)/(N11〜N33の総和)・・・(3)
a2=1−a1 ・・・(4)
また、第2の条件判定部805は、経路別送信元スパン統計表1000を参照して、MS−C2を呼び出すときのMS−Bのスパンの平均値e(Xd)を算出する。ここでは、平均値e(Xd)は、Mm12,Mm22,Mm32の平均である。
また、第2の条件判定部805は、経路別送信元スパン統計表1000を参照して、MS−C2を呼び出さないときのMS−Bのスパンの平均値e(Xn)を算出する。ここでは、平均値e(Xn)は、Mm11,Mm13,Mm21,Mm23,M31,Mm33の平均である。
そして、第2の条件判定部805は、下記式(5)を用いて、MS−Bのスパンの異常時における平均値E(Xd)を算出する。
E(Xd)=a1×e(Xd)+a2×e(Xn) ・・・(5)
これにより、MS−Bのスパンが長くなる経路に共通するMS−C2が特定されている場合には、MS−C2を呼び出すときのスパンを異常時のスパン、MS−C2以外を呼び出すときのスパンを正常時のスパンと見なして、MS−Bのスパンの異常時における平均値E(Xd)を算出することができる。
また、上述した説明では、MS−Bのスパンの正常時における平均値E(Xn)を、start timeが正常時間帯に含まれるスパンデータのdurationから算出することにしたが、これに限らない。例えば、MS−Bのスパンの正常時における平均値E(Xn)として、異常時間帯におけるMS−C2を呼び出さないときのMS−Bのスパンの平均値e(Xn)を用いることにしてもよい。すなわち、MS−Bのスパンが長くなる経路に共通するMS−C2が特定されている場合には、MS−C2以外を呼び出すときのスパンを正常時のスパンと見なして、MS−Bのスパンの正常時における平均値E(Xn)を求めることにしてもよい。
つぎに、第2の差を算出する具体的な処理例について説明する。ただし、遅れが検知された呼び出し先マイクロサービスを「MS−C」とし、呼び出し元マイクロサービスを「MS−B」とする。
この場合、第2の条件判定部805は、例えば、タイマーデータ600から、serviceがMS−Cであり、かつ、time windowが異常時間帯に含まれる応答時間データを抽出する。つぎに、第2の条件判定部805は、抽出した応答時間データのmeanの平均を求めることにより、呼び出し先マイクロサービスの応答時間の異常時における平均値Tmdを算出する。
また、第2の条件判定部805は、タイマーデータ600から、serviceがMS−Cであり、かつ、time windowが正常時間帯に含まれる応答時間データを抽出する。つぎに、第2の条件判定部805は、抽出した応答時間データのmeanの平均を求めることにより、呼び出し先マイクロサービスの応答時間の正常時における平均値Tmnを算出する。
そして、第2の条件判定部805は、算出した平均値Tmdから平均値Tmnを減算することにより、第2の差(Tmd−Tmn)を算出する。
(マイクロサービスの応答遅延の原因の判定例)
つぎに、図11および図12を用いて、マイクロサービスの応答遅延の原因の判定例について説明する。ただし、遅れが検知された呼び出し先マイクロサービスを「MS−C」とし、呼び出し元マイクロサービスを「MS−B」とする。
図11は、マイクロサービスのスパンと応答時間との関係を示す説明図である。図11において、MS−BおよびMS−CのスパンDb,Dcを表すバー1101,1102が時間軸上に示されている。Tcは、MS−BにおけるMS−Cの応答時間を示す。
遅延原因判定部806は、異常時(MS−Cの応答時間に遅れ)に、正常時に比べて、MS−CのスパンDcが長くなっておらず、MS−BのスパンDbとMS−BにおけるMS−Cの応答時間Tcが同じくらい長くなっていれば、ネットワークが遅延原因であると判定する。
一方、異常時(MS−Cの応答時間に遅れ)に、正常時に比べて、MS−CのスパンDcが長くなっておらず、MS−BのスパンDbとMS−BにおけるMS−Cの応答時間Tcが同じくらい長くなっていなければ、ネットワークが遅延原因であるとはいえないと判定する。
また、遅延原因判定部806は、異常時(MS−Cの応答時間に遅れ)に、正常時に比べて、MS−CのスパンDcが長くなっていれば、MS−Cが遅延原因であると判定する。
図12は、ワークロード間の経路別のスパンの長さを示す説明図である。図12において、MS−BからMS−Cへのワークロード間の経路と、ワークロード間の経路別のスパン(MS−Bのスパン)の長さが示されている。スパン「通常」は、スパンが他の経路と比べて有意に長いとはいえないことを示す。スパン「長い」は、スパンが他の経路と比べて有意に長いことを示す。
図12の例では、MS−Cのスパンが正常時に比べて長くなっておらず、MS−Bのスパンが長くなっている経路に共通するMS−C2が存在する。また、MS−Bのスパンの異常時および正常時における平均値の第1の差と、MS−BにおけるMS−Cの応答時間の異常時および正常時における平均値の第2の差とが所定の範囲内である。この場合、遅延原因特定装置101は、MS−C2に関連するネットワークに遅延があると判定する。
また、遅延原因特定装置101は、例えば、MS−C2に関連するネットワークに遅延があることを示す遅延原因判定結果を運用者端末105に送信する。これにより、サービスの運用者は、遅延原因判定結果を参照することで、MS−C2に関連するネットワーク(物理SW、仮想SWなど)に遅延原因があることを特定することができる。
(遅延原因特定装置101の遅延原因特定処理手順)
つぎに、遅延原因特定装置101の遅延原因特定処理手順について説明する。まず、図1および図14を用いて、遅延原因特定装置101の第1の遅延原因特定処理手順について説明する。第1の遅延原因特定処理では、呼び出し先マイクロサービスが遅延原因であるか否かの判定を行わない場合について説明する。
図13および図14は、遅延原因特定装置101の第1の遅延原因特定処理手順の一例を示すフローチャートである。図13のフローチャートにおいて、まず、遅延原因特定装置101は、APMシステム103から呼び出し先マイクロサービスの遅延アラートを受信したか否かを判断する(ステップS1301)。
ここで、遅延原因特定装置101は、遅延アラートを受信するのを待つ(ステップS1301:No)。そして、遅延原因特定装置101は、遅延アラートを受信した場合(ステップS1301:Yes)、APMシステム103から、呼び出し先マイクロサービスの応答時間の遅れが検知されたときの応答時間データを含むタイマーデータを取得する(ステップS1302)。
つぎに、遅延原因特定装置101は、分散トレーシングシステム104から、呼び出し先マイクロサービスの応答時間の遅れが検知されたときのスパンデータを含むトレースデータを取得する(ステップS1303)。
そして、遅延原因特定装置101は、取得したタイマーデータを参照して、呼び出し先マイクロサービスの異常時間帯および正常時間帯を特定する(ステップS1304)。つぎに、遅延原因特定装置101は、トレースデータから異常時間帯のトレースを抽出する(ステップS1305)。
そして、遅延原因特定装置101は、抽出した異常時間帯のトレースを参照して、呼び出し元マイクロサービスから呼び出し先マイクロサービスへのワークロード間の経路を特定する(ステップS1306)。つぎに、遅延原因特定装置101は、異常時間帯のトレースを参照して、特定したワークロード間の経路ごとに、呼び出し元マイクロサービスのスパンの統計値を算出する(ステップS1307)。
そして、遅延原因特定装置101は、算出した算出結果に基づいて、経路別送信元スパン統計表を作成する(ステップS1308)。つぎに、遅延原因特定装置101は、作成した経路別送信元スパン統計表を参照して、特定した経路のうち、呼び出し元マイクロサービスのスパンが有意に長い経路に共通する呼び出し先ワークロードが存在するか否かを判定する(ステップS1309)。
ここで、呼び出し先ワークロードが存在しない場合(ステップS1309:No)、遅延原因特定装置101は、呼び出し先ワークロードのネットワークが遅延原因とはいえないと判定して(ステップS1310)、図14に示すステップS1406に移行する。
一方、呼び出し先ワークロードが存在する場合(ステップS1309:Yes)、遅延原因特定装置101は、図14に示すステップS1401に移行する。
図14のフローチャートにおいて、まず、遅延原因特定装置101は、呼び出し元マイクロサービスのスパンの異常時および正常時における平均値の第1の差を算出する第1の差算出処理を実行する(ステップS1401)。なお、第1の差算出処理の具体的な処理手順については、図15を用いて後述する。
つぎに、遅延原因特定装置101は、呼び出し元マイクロサービスにおける呼び出し先マイクロサービスの応答時間の異常時および正常時における平均値の第2の差を算出する第2の差算出処理を実行する(ステップS1402)。なお、第2の差算出処理の具体的な処理手順については、図16を用いて後述する。
つぎに、遅延原因特定装置101は、算出した第1の差と第2の差とが所定の範囲内であるか否かを判定する(ステップS1403)。ここで、第1の差と第2の差とが所定の範囲内であると判定した場合(ステップS1403:Yes)、遅延原因特定装置101は、呼び出し先ワークロードのネットワークもしくは呼び出し先ワークロードが遅延原因であると判定して(ステップS1404)、ステップS1406に移行する。
一方、第1の差と第2の差とが所定の範囲内ではないと判定した場合(ステップS1403:No)、遅延原因特定装置101は、呼び出し先ワークロードのネットワークが遅延原因であるとはいえないと判定する(ステップS1405)。そして、遅延原因特定装置101は、遅延原因判定結果を出力して(ステップS1406)、本フローチャートによる一連の処理を終了する。
これにより、マイクロサービスの応答遅延の原因を特定可能な情報(遅延原因判定結果)を、サービスの運用者等に提供することができる。
つぎに、図15を用いて、図14に示したステップS1401の第1の差算出処理の具体的な処理手順について説明する。
図15は、第1の差算出処理の具体的処理手順の一例を示すフローチャートである。図15のフローチャートにおいて、まず、遅延原因特定装置101は、取得したトレースデータから、異常時間帯における呼び出し元マイクロサービスのスパンデータを抽出する(ステップS1501)。そして、遅延原因特定装置101は、抽出したスパンデータに基づいて、呼び出し元マイクロサービスのスパンの異常時における平均値を算出する(ステップS1502)。
つぎに、遅延原因特定装置101は、トレースデータから、正常時間帯における呼び出し元マイクロサービスのスパンデータを抽出する(ステップS1503)。そして、遅延原因特定装置101は、抽出したスパンデータに基づいて、呼び出し元マイクロサービスのスパンの正常時における平均値を算出する(ステップS1504)。
そして、遅延原因特定装置101は、算出した異常時における平均値から正常時における平均値を減算することにより、第1の差を算出して(ステップS1505)、第1の差算出処理を呼び出したステップに戻る。
これにより、呼び出し元マイクロサービスのスパンの異常時および正常時における平均値の差(第1の差)を算出することができる。
つぎに、図16を用いて、図14に示したステップS1402の第2の差算出処理の具体的な処理手順について説明する。
図16は、第2の差算出処理の具体的処理手順の一例を示すフローチャートである。図16のフローチャートにおいて、まず、遅延原因特定装置101は、取得したタイマーデータから、異常時間帯における呼び出し先マイクロサービスの応答時間データを抽出する(ステップS1601)。そして、遅延原因特定装置101は、抽出した応答時間データに基づいて、呼び出し先マイクロサービスの応答時間の異常時における平均値を算出する(ステップS1602)。
つぎに、遅延原因特定装置101は、タイマーデータから、正常時間帯における呼び出し先マイクロサービスの応答時間データを抽出する(ステップS1603)。そして、遅延原因特定装置101は、抽出した応答時間データに基づいて、呼び出し先マイクロサービスの応答時間の正常時における平均値を算出する(ステップS1604)。
そして、遅延原因特定装置101は、算出した異常時における平均値から、算出した正常時における平均値を減算することにより、第2の差を算出して(ステップS1605)、第2の差算出処理を呼び出したステップに戻る。
これにより、呼び出し元マイクロサービスにおける呼び出し先マイクロサービスの応答時間の異常時および正常時における平均値の差(第2の差)を算出することができる。
つぎに、図17〜図19を用いて、遅延原因特定装置101の第2の遅延原因特定処理手順について説明する。第2の遅延原因特定処理では、呼び出し先マイクロサービスが遅延原因であるか否かの判定を行う場合について説明する。
図17〜図19は、遅延原因特定装置101の第2の遅延原因特定処理手順の一例を示すフローチャートである。図17のフローチャートにおいて、まず、遅延原因特定装置101は、APMシステム103から呼び出し先マイクロサービスの遅延アラートを受信したか否かを判断する(ステップS1701)。
ここで、遅延原因特定装置101は、遅延アラートを受信するのを待つ(ステップS1701:No)。そして、遅延原因特定装置101は、遅延アラートを受信した場合(ステップS1701:Yes)、APMシステム103から、呼び出し先マイクロサービスの応答時間の遅れが検知されたときの応答時間データを含むタイマーデータを取得する(ステップS1702)。
つぎに、遅延原因特定装置101は、分散トレーシングシステム104から、呼び出し先マイクロサービスの応答時間の遅れが検知されたときのスパンデータを含むトレースデータを取得する(ステップS1703)。
そして、遅延原因特定装置101は、取得したタイマーデータを参照して、呼び出し先マイクロサービスの異常時間帯および正常時間帯を特定する(ステップS1704)。つぎに、遅延原因特定装置101は、取得したトレースデータを参照して、特定した異常時間帯における呼び出し先マイクロサービスのスパンの平均値を算出する(ステップS1705)。
つぎに、遅延原因特定装置101は、取得したトレースデータを参照して、特定した正常時間帯における呼び出し先マイクロサービスのスパンの平均値を算出する(ステップS1706)。そして、遅延原因特定装置101は、算出した算出結果に基づいて、異常時間帯における呼び出し先マイクロサービスのスパンが、正常時間帯における呼び出し先マイクロサービスのスパンに比べて長くなっているか否かを判断する(ステップS1707)。
ここで、呼び出し先マイクロサービスのスパンが長くなっている場合(ステップS1707:Yes)、遅延原因特定装置101は、呼び出し先マイクロサービスが遅延原因であると判定して(ステップS1708)、図19に示すステップS1906に移行する。
一方、呼び出し先マイクロサービスのスパンが長くなっていない場合には(ステップS1707:No)、遅延原因特定装置101は、図18に示すステップS1801に移行する。
図18のフローチャートにおいて、まず、遅延原因特定装置101は、トレースデータから異常時間帯のトレースを抽出する(ステップS1801)。そして、遅延原因特定装置101は、抽出した異常時間帯のトレースを参照して、呼び出し元マイクロサービスから呼び出し先マイクロサービスへのワークロード間の経路を特定する(ステップS1802)。
つぎに、遅延原因特定装置101は、異常時間帯のトレースを参照して、特定したワークロード間の経路ごとに、呼び出し元マイクロサービスのスパンの統計値を算出する(ステップS1803)。そして、遅延原因特定装置101は、算出した算出結果に基づいて、経路別送信元スパン統計表を作成する(ステップS1804)。
つぎに、遅延原因特定装置101は、作成した経路別送信元スパン統計表を参照して、特定した経路のうち、呼び出し元マイクロサービスのスパンが有意に長い経路に共通する呼び出し先ワークロードが存在するか否かを判定する(ステップS1805)。
ここで、呼び出し先ワークロードが存在しない場合(ステップS1805:No)、遅延原因特定装置101は、呼び出し先ワークロードのネットワークが遅延原因とはいえないと判定して(ステップS1806)、図19に示すステップS1906に移行する。
一方、呼び出し先ワークロードが存在する場合(ステップS1805:Yes)、遅延原因特定装置101は、図19に示すステップS1901に移行する。
図19のフローチャートにおいて、まず、遅延原因特定装置101は、呼び出し元マイクロサービスのスパンの異常時および正常時における平均値の第1の差を算出する第1の差算出処理を実行する(ステップS1901)。なお、第1の差算出処理の具体的な処理手順については、図15で説明した処理手順と同様のため、図示および説明を省略する。
つぎに、遅延原因特定装置101は、呼び出し元マイクロサービスにおける呼び出し先マイクロサービスの応答時間の異常時および正常時における平均値の第2の差を算出する第2の差算出処理を実行する(ステップS1902)。なお、第2の差算出処理の具体的な処理手順については、図16で説明した処理手順と同様のため、図示および説明を省略する。
つぎに、遅延原因特定装置101は、算出した第1の差と第2の差とが所定の範囲内であるか否かを判定する(ステップS1903)。ここで、第1の差と第2の差とが所定の範囲内であると判定した場合(ステップS1903:Yes)、遅延原因特定装置101は、呼び出し先ワークロードのネットワークが遅延原因であると判定して(ステップS1904)、ステップS1906に移行する。
一方、第1の差と第2の差とが所定の範囲内ではないと判定した場合(ステップS1903:No)、遅延原因特定装置101は、呼び出し先ワークロードのネットワークが遅延原因であるとはいえないと判定する(ステップS1905)。そして、遅延原因特定装置101は、遅延原因判定結果を出力して(ステップS1906)、本フローチャートによる一連の処理を終了する。
これにより、呼び出し先マイクロサービスが遅延原因であるか否かを含む、マイクロサービスの応答遅延の原因を特定可能な情報(遅延原因判定結果)を、サービスの運用者等に提供することができる。
以上説明したように、実施の形態にかかる遅延原因特定装置101によれば、呼び出し元マイクロサービスにおける呼び出し先マイクロサービスの応答時間の遅れが検知された場合に、呼び出し元マイクロサービスに対応する呼び出し元ワークロードから呼び出し先マイクロサービスに対応する複数の呼び出し先ワークロードへの経路ごとに、呼び出し元ワークロードのスパンの統計値を算出することができる。そして、遅延原因特定装置101によれば、算出した経路ごとの統計値に基づいて、経路のうちの呼び出し元マイクロサービスのスパンが相対的に長い経路に共通する呼び出し先ワークロードが存在するか否かを判定することができる。
これにより、APMのタイマーを利用してマイクロサービスの応答時間の遅れが検知された際に、遅延原因がネットワークにあるか否かを推定することができる。例えば、呼び出し元マイクロサービスのスパンが長い経路に共通する呼び出し先ワークロードが存在する場合に、遅延原因がネットワークもしくは呼び出し先マイクロサービスにあると推定することができる。
また、遅延原因特定装置101によれば、呼び出し元マイクロサービスのスパンの異常時および正常時における平均値の第1の差と、呼び出し元マイクロサービスにおける呼び出し先マイクロサービスの応答時間の異常時および正常時における平均値の第2の差とが所定の範囲内であるか否かを判定することができる。
これにより、呼び出し元マイクロサービスの処理自体に遅延原因があれば、異常時に呼び出し元マイクロサービスのスパンと呼び出し先マイクロサービスの応答時間とが同じように長くならないことを利用して、ネットワークに遅延があったことを検証することができる。
また、遅延原因特定装置101によれば、共通する呼び出し先ワークロードが存在すると判定し、かつ、第1の差と第2の差とが所定の範囲内であると判定した場合に、呼び出し先マイクロサービスに関連するネットワークもしくは呼び出し先マイクロサービスが遅延原因であると判定することができる。
これにより、遅延原因がネットワークにあると推定できる場合に、異常時に呼び出し元マイクロサービスのスパンと呼び出し先マイクロサービスの応答時間とが同じように長くなっていれば、ネットワークもしくは呼び出し先マイクロサービスが遅延原因であると判定することができる。
また、遅延原因特定装置101によれば、異常時間帯における呼び出し先マイクロサービスのスパンが、正常時間帯における呼び出し先マイクロサービスのスパンに比べて長くなっているか否かを判断することができる。そして、遅延原因特定装置101によれば、呼び出し先マイクロサービスのスパンが長くなっていると判断した場合、呼び出し先マイクロサービスが遅延原因であると判定することができる。ただし、異常時間帯は、呼び出し元マイクロサービスにおける呼び出し先マイクロサービスの応答時間の遅れが検知された期間である。正常時間帯は、異常時間帯とは異なる期間である。
これにより、APMのタイマーを利用してマイクロサービスの応答時間の遅れが検知された際に、呼び出し先マイクロサービスでの処理時間が長くなっていれば、呼び出し先マイクロサービスの処理自体に遅延原因があると判定することができる。
また、遅延原因特定装置101によれば、呼び出し先マイクロサービスのスパンが長くなっていないと判断した場合に、異常時間帯における呼び出し元ワークロードのスパンに基づいて、経路ごとに、呼び出し元ワークロードのスパンの統計値を算出することができる。
これにより、APMのタイマーを利用してマイクロサービスの応答時間の遅れが検知された際に、呼び出し先マイクロサービスの処理自体に遅延原因がないといえる場合に、遅延原因がネットワークにあるか否かを推定することができる。
また、遅延原因特定装置101によれば、共通する呼び出し先ワークロードが存在しないと判定した場合には、呼び出し先マイクロサービスに関連するネットワークが遅延原因ではないと判定することができる。
これにより、APMのタイマーを利用してマイクロサービスの応答時間の遅れが検知された際に、呼び出し元マイクロサービスのスパンが長い経路に共通する呼び出し先マイクロサービスが存在しなければ、遅延原因がネットワークにあるとはいえないと判定することができる。
また、遅延原因特定装置101によれば、第1の差と第2の差とが所定の範囲内ではないと判定した場合には、呼び出し先マイクロサービスに関連するネットワークが遅延原因ではないと判定することができる。
これにより、異常時に呼び出し元マイクロサービスのスパンと呼び出し先マイクロサービスの応答時間とが同じように長くなっていなければ、遅延原因がネットワークにあるとはいえないと判定することができる。
また、遅延原因特定装置101によれば、判定した遅延原因判定結果を出力することができる。
これにより、マイクロサービスの応答遅延の原因を特定可能な情報を、サービスの運用者等に提供することができる。
また、遅延原因特定装置101によれば、算出した経路ごとの統計値に基づいて、経路のうちの呼び出し元マイクロサービスのスパンが有意に長い経路に共通する呼び出し先ワークロードが存在するか否かを判定することができる。そして、遅延原因特定装置101によれば、共通する呼び出し先ワークロードが存在すると判定し、かつ、第1の差と第2の差とが所定の範囲内であると判定した場合に、共通する呼び出し先ワークロードに関連するネットワークが遅延原因であると判定することができる。
これにより、呼び出し先マイクロサービスのワークロードが複数存在する場合であっても、遅延原因があるネットワークが、どのワークロードのネットワークであるかを特定することができる。
これらのことから、実施の形態にかかる遅延原因特定方法および遅延原因特定プログラムによれば、サービスの応答遅延の原因を特定する際の精度を向上させることができ、マイクロサービスアーキテクチャの応答遅延の原因調査にかかる作業負荷や作業時間を低減させることができる。
また、APMのタイマーを利用してマイクロサービスの応答時間の遅れが検知されたタイミングで遅延原因特定処理を開始できるため、リアルタイムな原因調査を行うことが可能となる。また、パケットキャプチャの技術を利用したパケット解析などに比べて、応答遅延の原因調査にかかるコストを削減することができる。また、通信経路のスイッチなどに保存されるメトリクスを直接見ることができない者であっても、性能監視のために一般的に収集されるメトリクスを利用して応答遅延を特定可能となるため、利便性を向上させることができる。
なお、本実施の形態で説明した遅延原因特定方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本遅延原因特定プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、DVD、USBメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本遅延原因特定プログラムは、インターネット等のネットワークを介して配布してもよい。
また、本実施の形態で説明した遅延原因特定装置101は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けICやFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)呼び出し元マイクロサービスにおける呼び出し先マイクロサービスの応答時間の遅れが検知された場合に、前記呼び出し元マイクロサービスに対応する呼び出し元ワークロードから前記呼び出し先マイクロサービスに対応する複数の呼び出し先ワークロードへの経路ごとに、前記呼び出し元ワークロードの処理時間の統計値を算出し、
算出した前記経路ごとの前記統計値に基づいて、前記経路のうちの前記呼び出し元マイクロサービスの処理時間が相対的に長い経路に共通する呼び出し先ワークロードが存在すると判定され、かつ、前記呼び出し元マイクロサービスの処理時間の異常時および正常時における平均値の差と、前記呼び出し元マイクロサービスにおける前記呼び出し先マイクロサービスの応答時間の異常時および正常時における平均値の差とが所定の範囲内であると判定された場合に、前記呼び出し先マイクロサービスに関連するネットワークもしくは呼び出し先マイクロサービスが遅延原因であると判定する、
処理をコンピュータが実行することを特徴とする遅延原因特定方法。
(付記2)前記呼び出し元マイクロサービスにおける前記呼び出し先マイクロサービスの応答時間の遅れが検知された第1の期間における前記呼び出し先マイクロサービスの処理時間が、前記第1の期間とは異なる第2の期間における前記呼び出し先マイクロサービスの処理時間に比べて長くなっているか否かを判断し、
前記呼び出し先マイクロサービスの処理時間が長くなっていると判断した場合、前記呼び出し先マイクロサービスが遅延原因であると判定する、
処理を前記コンピュータが実行することを特徴とする付記1に記載の遅延原因特定方法。
(付記3)前記算出する処理は、
前記呼び出し先マイクロサービスの処理時間が長くなっていないと判断した場合に、前記第1の期間における前記呼び出し元ワークロードの処理時間に基づいて、前記経路ごとに、前記呼び出し元ワークロードの処理時間の統計値を算出する、ことを特徴とする付記2に記載の遅延原因特定方法。
(付記4)前記共通する呼び出し先ワークロードが存在しないと判定した場合、または、前記所定の範囲内ではないと判定した場合には、前記呼び出し先マイクロサービスに関連するネットワークが遅延原因ではないと判定する、処理を前記コンピュータが実行することを特徴とする付記1〜3のいずれか一つに記載の遅延原因特定方法。
(付記5)判定した遅延原因判定結果を出力する、処理を前記コンピュータが実行することを特徴とする付記1〜4のいずれか一つに記載の遅延原因特定方法。
(付記6)算出した前記経路ごとの前記統計値に基づいて、前記経路のうちの前記呼び出し元マイクロサービスの処理時間が有意に長い経路に共通する呼び出し先ワークロードが存在するか否かを判定し、
前記共通する呼び出し先ワークロードが存在すると判定し、かつ、前記所定の範囲内であると判定した場合に、前記共通する呼び出し先ワークロードに関連するネットワークが遅延原因であると判定する、
処理を前記コンピュータが実行することを特徴とする付記2に記載の遅延原因特定方法。
(付記7)前記呼び出し元マイクロサービスにおける前記呼び出し先マイクロサービスの応答時間の遅れが検知された第1の期間および前記第1の期間とは異なる第2の期間それぞれの期間における、前記呼び出し元マイクロサービスの処理時間の平均値の第1の差を算出し、
前記それぞれの期間における、前記呼び出し元マイクロサービスにおける前記呼び出し先マイクロサービスの応答時間の平均値の第2の差を算出する、
処理を前記コンピュータが実行し、
前記所定の範囲内であるか否かを判定する処理は、
算出した前記第1の差と前記第2の差とが、前記所定の範囲内であるか否かを判定する、ことを特徴とする付記1〜6のいずれか一つに記載の遅延原因特定方法。
(付記8)前記呼び出し元マイクロサービスは、サービスを実現する複数のマイクロサービスのうちのいずれかのマイクロサービスであり、
前記呼び出し先マイクロサービスは、前記複数のマイクロサービスのうちの前記呼び出し元マイクロサービスから呼び出されるマイクロサービスである、
ことを特徴とする付記1〜7のいずれか一つに記載の遅延原因特定方法。
(付記9)呼び出し元マイクロサービスにおける呼び出し先マイクロサービスの応答時間の遅れが検知された場合に、前記呼び出し元マイクロサービスに対応する呼び出し元ワークロードから前記呼び出し先マイクロサービスに対応する複数の呼び出し先ワークロードへの経路ごとに、前記呼び出し元ワークロードの処理時間の統計値を算出し、
算出した前記経路ごとの前記統計値に基づいて、前記経路のうちの前記呼び出し元マイクロサービスの処理時間が相対的に長い経路に共通する呼び出し先ワークロードが存在すると判定され、かつ、前記呼び出し元マイクロサービスの処理時間の異常時および正常時における平均値の差と、前記呼び出し元マイクロサービスにおける前記呼び出し先マイクロサービスの応答時間の異常時および正常時における平均値の差とが所定の範囲内であると判定された場合に、前記呼び出し先マイクロサービスに関連するネットワークもしくは呼び出し先マイクロサービスが遅延原因であると判定する、
処理をコンピュータに実行させることを特徴とする遅延原因特定プログラム。
100 情報処理システム
101 遅延原因特定装置
102 処理装置
103 APMシステム
104 分散トレーシングシステム
105 運用者端末
110 ネットワーク
500 バス
501 CPU
502 メモリ
503 ディスクドライブ
504 ディスク
505 通信I/F
506 可搬型記録媒体I/F
507 可搬型記録媒体
600 タイマーデータ
700 トレースデータ
801 検知部
802 判断部
803 算出部
804 第1の条件判定部
805 第2の条件判定部
806 遅延原因判定部
807 出力部
1000 経路別送信元スパン統計表

Claims (6)

  1. 呼び出し元マイクロサービスにおける呼び出し先マイクロサービスの応答時間の遅れが検知された場合に、前記呼び出し元マイクロサービスに対応する呼び出し元ワークロードから前記呼び出し先マイクロサービスに対応する複数の呼び出し先ワークロードへの経路ごとに、前記呼び出し元ワークロードの処理時間の統計値を算出し、
    算出した前記経路ごとの前記統計値に基づいて、前記経路のうちの前記呼び出し元マイクロサービスの処理時間が相対的に長い経路に共通する呼び出し先ワークロードが存在すると判定され、かつ、前記呼び出し元マイクロサービスの処理時間の異常時および正常時における平均値の差と、前記呼び出し元マイクロサービスにおける前記呼び出し先マイクロサービスの応答時間の異常時および正常時における平均値の差とが所定の範囲内であると判定された場合に、前記呼び出し先マイクロサービスに関連するネットワークもしくは呼び出し先マイクロサービスが遅延原因であると判定する、
    処理をコンピュータが実行することを特徴とする遅延原因特定方法。
  2. 前記呼び出し元マイクロサービスにおける前記呼び出し先マイクロサービスの応答時間の遅れが検知された第1の期間における前記呼び出し先マイクロサービスの処理時間が、前記第1の期間とは異なる第2の期間における前記呼び出し先マイクロサービスの処理時間に比べて長くなっているか否かを判断し、
    前記呼び出し先マイクロサービスの処理時間が長くなっていると判断した場合、前記呼び出し先マイクロサービスが遅延原因であると判定する、
    処理を前記コンピュータが実行することを特徴とする請求項1に記載の遅延原因特定方法。
  3. 前記算出する処理は、
    前記呼び出し先マイクロサービスの処理時間が長くなっていないと判断した場合に、前記第1の期間における前記呼び出し元ワークロードの処理時間に基づいて、前記経路ごとに、前記呼び出し元ワークロードの処理時間の統計値を算出する、ことを特徴とする請求項2に記載の遅延原因特定方法。
  4. 前記共通する呼び出し先ワークロードが存在しないと判定した場合、または、前記所定の範囲内ではないと判定した場合には、前記呼び出し先マイクロサービスに関連するネットワークが遅延原因ではないと判定する、処理を前記コンピュータが実行することを特徴とする請求項1〜3のいずれか一つに記載の遅延原因特定方法。
  5. 判定した遅延原因判定結果を出力する、処理を前記コンピュータが実行することを特徴とする請求項1〜4のいずれか一つに記載の遅延原因特定方法。
  6. 呼び出し元マイクロサービスにおける呼び出し先マイクロサービスの応答時間の遅れが検知された場合に、前記呼び出し元マイクロサービスに対応する呼び出し元ワークロードから前記呼び出し先マイクロサービスに対応する複数の呼び出し先ワークロードへの経路ごとに、前記呼び出し元ワークロードの処理時間の統計値を算出し、
    算出した前記経路ごとの前記統計値に基づいて、前記経路のうちの前記呼び出し元マイクロサービスの処理時間が相対的に長い経路に共通する呼び出し先ワークロードが存在すると判定され、かつ、前記呼び出し元マイクロサービスの処理時間の異常時および正常時における平均値の差と、前記呼び出し元マイクロサービスにおける前記呼び出し先マイクロサービスの応答時間の異常時および正常時における平均値の差とが所定の範囲内であると判定された場合に、前記呼び出し先マイクロサービスに関連するネットワークもしくは呼び出し先マイクロサービスが遅延原因であると判定する、
    処理をコンピュータに実行させることを特徴とする遅延原因特定プログラム。
JP2020103985A 2020-06-16 2020-06-16 遅延原因特定方法および遅延原因特定プログラム Pending JP2021196970A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2020103985A JP2021196970A (ja) 2020-06-16 2020-06-16 遅延原因特定方法および遅延原因特定プログラム
EP21169837.8A EP3926928A1 (en) 2020-06-16 2021-04-22 Delay cause identification method, delay cause identification program, delay cause identification apparatus
US17/245,505 US20210390005A1 (en) 2020-06-16 2021-04-30 Delay cause identification method, non-transitory computer-readable storage medium, delay cause identification apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020103985A JP2021196970A (ja) 2020-06-16 2020-06-16 遅延原因特定方法および遅延原因特定プログラム

Publications (1)

Publication Number Publication Date
JP2021196970A true JP2021196970A (ja) 2021-12-27

Family

ID=75639770

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020103985A Pending JP2021196970A (ja) 2020-06-16 2020-06-16 遅延原因特定方法および遅延原因特定プログラム

Country Status (3)

Country Link
US (1) US20210390005A1 (ja)
EP (1) EP3926928A1 (ja)
JP (1) JP2021196970A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024079871A1 (ja) * 2022-10-14 2024-04-18 三菱電機株式会社 遅延推定装置、遅延推定方法、遅延推定システム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114201458B (zh) * 2022-02-16 2022-04-26 苏州浪潮智能科技有限公司 一种信息更新方法、微服务系统及计算机可读存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5458308B2 (ja) * 2010-06-11 2014-04-02 株式会社日立製作所 仮想計算機システム、仮想計算機システムの監視方法及びネットワーク装置
JP6834385B2 (ja) 2016-11-15 2021-02-24 富士通株式会社 プログラム、情報処理装置及び情報処理方法
JP7004902B2 (ja) * 2018-02-05 2022-01-21 富士通株式会社 性能評価プログラム、および性能評価方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024079871A1 (ja) * 2022-10-14 2024-04-18 三菱電機株式会社 遅延推定装置、遅延推定方法、遅延推定システム

Also Published As

Publication number Publication date
EP3926928A1 (en) 2021-12-22
US20210390005A1 (en) 2021-12-16

Similar Documents

Publication Publication Date Title
KR101979363B1 (ko) 애플리케이션 토폴로지 관계의 발견 방법, 장치, 및 시스템
US11582130B2 (en) Performance monitoring in a distributed storage system
EP3296876B1 (en) Systems and methods for predicting performance of applications on an internet of things (iot) platform
US8326971B2 (en) Method for using dynamically scheduled synthetic transactions to monitor performance and availability of E-business systems
JP2021196970A (ja) 遅延原因特定方法および遅延原因特定プログラム
US10360140B2 (en) Production sampling for determining code coverage
JP2008538642A5 (ja)
US20160274997A1 (en) End user monitoring to automate issue tracking
US20180095819A1 (en) Incident analysis program, incident analysis method, information processing device, service identification program, service identification method, and service identification device
US20160371177A1 (en) Method for determining an amount of available resources ensuring a quality user experience
US11288164B2 (en) Dynamic distributed tracing instrumentation in a microservice architecture
US20210111974A1 (en) Methods and apparatus to monitor telemetry data associated with computing devices
US9021484B2 (en) Migrated application performance comparisons using log mapping
JP2006512687A (ja) ミドルウエア応答時間を測定するシステム及び方法
US20140089341A1 (en) Coordinating data collection among system components
US20220269520A1 (en) Factor identification method and information processing device
EP4057146A1 (en) Information processing method, information processing program, and information processing device
US9141460B2 (en) Identify failed components during data collection
JP2018032245A (ja) 計算機システム及びリソース制御方法
US10445198B2 (en) Information processing device that monitors a plurality of servers and failover time measurement method
WO2020201615A1 (en) Method for observing traffic over a network interface
US9396083B2 (en) Computer system processes
EP4016303B1 (en) Methods and apparatus to monitor telemetry data associated with computing devices
US20160239363A1 (en) Analysis device and information processing system
JP5287382B2 (ja) システム性能分析装置、システム性能分析方法、及びプログラム