JP2019507454A - アプリケーションの実行中に観察される問題の根本原因を特定する方法 - Google Patents

アプリケーションの実行中に観察される問題の根本原因を特定する方法 Download PDF

Info

Publication number
JP2019507454A
JP2019507454A JP2018562730A JP2018562730A JP2019507454A JP 2019507454 A JP2019507454 A JP 2019507454A JP 2018562730 A JP2018562730 A JP 2018562730A JP 2018562730 A JP2018562730 A JP 2018562730A JP 2019507454 A JP2019507454 A JP 2019507454A
Authority
JP
Japan
Prior art keywords
component
metric
degradation
time series
application
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
JP2018562730A
Other languages
English (en)
Other versions
JP2019507454A5 (ja
Inventor
カール サーン ルイス
カール サーン ルイス
ライトストーン イータン
ライトストーン イータン
スネル ジェイソン
スネル ジェイソン
Original Assignee
ニュー レリック インコーポレイテッド
ニュー レリック インコーポレイテッド
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 ニュー レリック インコーポレイテッド, ニュー レリック インコーポレイテッド filed Critical ニュー レリック インコーポレイテッド
Publication of JP2019507454A publication Critical patent/JP2019507454A/ja
Publication of JP2019507454A5 publication Critical patent/JP2019507454A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/3409Recording 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 for performance assessment
    • 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
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • 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
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • 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
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0781Error filtering or prioritizing based on a policy defined by the user or on a policy defined by a hardware/software module, e.g. according to a severity level
    • 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
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • 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/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/3409Recording 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 for performance assessment
    • G06F11/3433Recording 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 for performance assessment for load management
    • 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/81Threshold
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

アプリケーションのコンポーネントへの要求およびコンポーネントからの要求を監視することによって、アプリケーション分析エンジンは、アプリケーションのさまざまなコンポーネントがどのように接続されているかを特定するアプリケーションのコンポーネント間グラフを作成する。性能問題がアプリケーションに関連して検出されると、トラバースモジュールは、コンポーネント間グラフをトラバースして、検出された問題の原因とされている可能性のある実行経路を判定する。トラバースモジュールは、実行経路の異なるコンポーネントのメトリック時系列を検出された問題と比較する要求を相関モジュールに送信する。相関モジュールは、メトリック時系列を問題メトリックと比較して実行パターン間の相関を特定する。相関の結果は、検出された問題の根本原因を視覚的に特定するレポートで提示され得る。

Description

本発明は、アプリケーションの実行中に観察される問題の根本原因を特定する方法に関する。
本開示は、一般には、アプリケーションを監視することに関し、より詳細には、アプリケーションの実行中に観察される問題の根本原因を特定することに関する。
今日の複雑なソフトウェアの相互依存のサービス環境において、アプリケーションのエンドユーザに影響を及ぼす問題の根本原因を見つけることは、困難で時間がかかることが多い。典型的には、アプリケーションを監視する時、そのアプリケーションに対し、大量の性能データが収集される。問題の正確な原因を見つけるために圧倒的な量のデータを選り分けるには、コンポーネントでは問題が表面化した場所から多数の層が除去される場合もあり、時間のかかる、大変な手動作業であることが多い。
アプリケーションのコンポーネントへの要求およびコンポーネントからの要求を監視することによって、アプリケーション分析エンジンは、アプリケーションのさまざまなコンポーネントがどのように接続されているかを特定するアプリケーションのコンポーネント間グラフを作成する。性能問題がアプリケーションに関連して検出されると、トラバースモジュールは、コンポーネント間グラフをトラバースして、検出された問題の原因とされている可能性のある実行経路を判定する。トラバースモジュールは、実行経路の異なるコンポーネントのメトリック時系列を検出された問題と比較する要求を相関モジュールに送信する。特に、相関モジュールは、メトリック時系列を問題メトリックと比較して実行パターン間の相関を特定する。相関の結果は、検出された問題の根本原因を視覚的に特定するレポートで提示され得る。レポートは、問題が検出されたレベルから根本原因までの実行経路を特定することができる。
一実施形態に従って、アプリケーションを監視するためのシステム環境を示す図である。 一実施形態に従って、監視サーバのさまざまなコンポーネントを示すブロック図である。 一実施形態に従って、アプリケーション分析エンジンによって作成される例示的なコンポーネント間グラフを示す図である。 一実施形態に従って、図3の単一のコンポーネントQの例示的なコンポーネント内階層を示す図である。 一実施形態に従って、実行するアプリケーションに関連して検出される問題の根本原因を判定するための方法ステップのフローチャートである。 一実施形態に従って、コンポーネント間グラフとコンポーネント内階層のトラバースモジュールによる例示的なトラバースを示す図である。 一実施形態に従って、コンポーネント間グラフとコンポーネント内階層のトラバースモジュールによる例示的なトラバースを示す図である。 一実施形態に従って、アプリケーションの異なるコンポーネントのメトリック時系列の例示的な可視化とメトリック時系列が検出された問題とどのように相関されるかを示す図である。 一実施形態に従って、アプリケーションの異なるコンポーネントのメトリック時系列の例示的な可視化とメトリック時系列が検出された問題とどのように相関されるかを示す図である。
図面は、本開示のさまざまな実施形態を単に例証を目的として示す。本明細書で示される構造と方法の代替実施形態が本明細書で説明される開示の原則から逸脱しない範囲で用いられ得ることが以下の考察から当業者には容易に認識されよう。
図1は、一実施形態に従って、アプリケーションを監視するためのシステム環境を示す。一実施形態において、環境は、ネットワーク150を通じて通信する、アプリケーションランタイム110、クライアントデバイス130、および監視サーバ140を含む。
クライアントデバイス130は、ユーザ入力を受信するならびにネットワーク150経由でデータを送信するおよび/または受信する能力がある1つまたは複数のコンピューティングデバイスを含む。一実施形態において、クライアントデバイス130は、デスクトップまたはラップトップコンピュータなど、従来のコンピュータシステムである。あるいは、クライアントデバイス130は、携帯情報端末(PDA)、携帯電話、スマートフォンまたは別の適したデバイスなど、コンピュータの機能性を有するデバイスになり得る。クライアントデバイス130は、ネットワーク150経由で通信するように構成される。一実施形態において、クライアントデバイス130は、クライアントデバイス130のユーザにアプリケーションランタイム110と対話するようにさせるアプリケーションを実行する。例えば、クライアントデバイス130は、ネットワーク150経由でクライアントデバイス130とアプリケーションランタイム110との間の対話を可能にするブラウザアプリケーションを実行する。別の実施形態において、クライアントデバイス130は、IOS(登録商標)またはANDROID(商標)など、クライアントデバイス130のネイティブオペレーティングシステムで稼働するアプリケーションプログラミングインタフェース(API)を介してアプリケーションランタイム110と対話する。図1では単一のクライアントデバイス130が示されているが、任意の数のクライアントデバイス130がネットワーク150経由でアプリケーションランタイム110と対話することができる。
クライアントデバイス130は、有線および/または無線通信システムの両方を使用して、ローカルエリアおよび/またはワイドエリアネットワークの任意の組み合わせを備えることができる、ネットワーク150経由でアプリケーションランタイム110と通信するように構成される。一実施形態において、ネットワーク150は、標準の通信技術および/またはプロトコルを使用する。例えば、ネットワーク150は、イーサネット、802.11、WiMAX(worldwide interoperability for microwave access)、3G、4G、CDMA(符号分割多元接続)、DSL(デジタル加入者線)その他などの技術を使用する通信リンクを含む。ネットワーク150経由の通信に使用されるネットワーキングプロトコルの例は、マルチプロトコルラベルスイッチング(MPLS)、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、ハイパーテキスト転送プロトコル(HTTP)、簡易メール転送プロトコル(SMTP)、およびファイル転送プロトコル(FTP)を含む。ネットワーク150を通じて交換されるデータは、ハイパーテキストマークアップ言語(HTML)または拡張可能マークアップ言語(XML)など、任意の適したフォーマットを使用して表現され得る。いくつかの実施形態において、ネットワーク150の通信リンクのすべてまたは一部は、任意の適した1つまたは複数の技術を使用して暗号化され得る。
アプリケーションランタイム110は、アプリケーション115とエージェント120を動作する。アプリケーション115は、モバイルアプリケーションまたはウェブアプリケーションのさまざまなタイプのいずれかにすることができ、クライアントサーバアプリケーションの動作のサブセットを表すことができる。アプリケーションランタイム110によって動作されるアプリケーション115は、データベースコンテンツを読み出して格納し、クライアントデバイス130においてレンダリングするユーザインタフェースを作成し、クライアントデバイス130において要求される機能を行い、コンテンツをクライアントデバイス130に(例えば、ネットワーク150を通じて)伝達するなど、クライアントサーバアプリケーションのサーバ側のいくつかのプロセスを含む一方、アプリケーションのクライアント側プロセスは、コンテンツをユーザに表示して要求をアプリケーションランタイム110に伝達するなどのプロセスを含む。例えば、アプリケーションランタイム110は、ユーザに表示するウェブページをクライアントデバイス130にサーブする。図1では単一のアプリケーションランタイム110が示されているが、アプリケーションランタイム110は、アプリケーション115の機能を実行する1つまたは複数のコンピューティングデバイスを備えることができ、その環境は、任意の数のアプリケーション115を動作する任意の数のウェブサーバを含むことができる。
一実施形態において、アプリケーション115の機能性は、1つまたは複数のトランザクションに量子化される。各トランザクションは、クライアントデバイス130から受信された要求に応答してアプリケーションランタイム110によって実行される一連のアプリケーションコンポーネントである。一実施形態において、トランザクションの開始は、アプリケーションランタイム110がクライアントデバイス130から要求(例えば、クライアントデバイス130で表示されるウェブページの一部を送る要求)を受信する時間として定義される一方、トランザクションの終了は、アプリケーションランタイム110が要求(例えば、ウェブページをクライアントデバイス130に送る)の応答を返す時間として定義される。トランザクションの終了は、アプリケーションランタイム110が応答の送信を始める時間、アプリケーションランタイム110が応答の送信を終える時間となり、あるいは応答に対して定義される。別の実施形態において、トランザクションの開始と終了は、アプリケーション115内の指定されたポイントであり、必ずしも要求と応答に対して定義されない。
トランザクションの各コンポーネントは、アプリケーションランタイム110によって維持される実行スレッド内で実行される。各コンポーネント内で、アプリケーションランタイム110は、1つまたは複数の方法を実行する。トランザクション方法は、一群のソフトウェアステートメントまたはコマンドを表し、共にアプリケーション115の個別の動作を表す。例えば、アプリケーション115の1つのトランザクション方法は、データベースクエリになり得る一方、別のトランザクション方法は、データベースから読み出されるデータを使用して計算を行う。
アプリケーションランタイム110は、複数の方法が同時にまたは時間期間が重なる間に実行されるように、コンポーネントを非同期的に実行することができる。一部の方法はまた、トランザクションの他の方法によって呼び出すまたは呼び出されることもできる。トランザクションの第2の方法を呼び出す第1の方法は、第2の方法の「親」といわれる一方、第2の方法は、第1の方法の「子」といわれる。第1の方法の子として、第2の方法は、たとえ第1の方法が第2の方法とは異なるスレッド内で実行されるとしても、(例えば、第1の方法が完了した後)第1の方法が第2の方法を呼び出すまで実行されない。いくつかの方法は、ブロッキング方法が実行される間、コンポーネントの実行が中断されるように、トランザクションのコンポーネントをブロックすることもできる。例えば、第1のトランザクションコンポーネントは、第1と第3の方法を含み、第2のトランザクションコンポーネントは、第2の方法を含み、そこで第1の方法は、第2の方法を呼び出して第2の方法は、第3の方法を呼び出す。第2の方法が実行されている間、第1のコンポーネントがブロックされ、第2の方法が実行されている間、どの方法も第1のスレッドで実行されない。第2の実行が完了すると、第3の方法は、第1のスレッドで実行される。
エージェント120は、アプリケーションランタイム110で稼働するプロセス、アプリケーション115の応答時間、アプリケーション115のトランザクション、ユーザデバイスにおけるアプリケーション115の性能に対するバックエンドプロセスの効果、および/または他の情報を含む、アプリケーション115の性能を監視する。エージェント120は、アプリケーションランタイム110によってアプリケーション115と共に実行されるソフトウェアモジュールのセットであり、コードをアプリケーション115に注入することによってアプリケーション115を監視する。注入されたコードは、アプリケーション115の選択された方法が実行される時にアプリケーションランタイム110によって実行される。エージェント120によって監視される方法は、アプリケーション115の開発者またはアプリケーション115の管理者によって手動で選択され得るか、またはエージェント120によって自動的に選択され得る。例えば、エージェント120は、アプリケーション115のあらゆる方法を監視することができる。実行されると、注入されたコードは、各々監視される方法を指定するメトリック:方法の識別子、方法の実行の期間、方法の子および/または親、および方法がその他のアプリケーションコンポーネントの実行をブロックするかどうかを指定するメトリックを作成する。
監視サーバ140は、アプリケーションランタイム110の性能を監視する。監視サーバ140は、アプリケーション監視サービスプロバイダによってホストされることができ、任意の数のアプリケーション(app)サーバの性能を監視することができる。一実施形態において、監視サーバ140は、New Relic(登録商標)社によってホストされ、NEW RELIC(登録商標)APMを実行する。アプリケーションランタイム110を監視するために、監視サーバ140は、エージェント120にアプリケーションランタイム110を提供して、エージェント120からデータを受信する。監視サーバ140は、エージェント120からレポートを受信して、アプリケーションランタイム110の管理者によって分析されるレポートにデータをフォーマットして、管理者がアプリケーション115のどの性能問題にも取り組むことができるようにする。例えば、監視サーバ140は、トランザクションのクリティカルパスでの方法の実行時間を示すプロットを作成する。クリティカルパスでの方法の実行時間を報告することによって、管理者が実行時間の長い方法を特定して、トランザクション時間の削減を目的とする方法を判定することが可能になる。
図2は、一実施形態に従って、監視サーバ140のさまざまなコンポーネントを示すブロック図である。図のように、監視サーバ140は、アプリケーション分析エンジン210、コンポーネント間グラフストア220、コンポーネント内階層ストア240、メトリックストア250、および根本原因検出エンジン260を含む。
グラフストア220、階層ストア240、およびメトリックストア250は各々、1つまたは複数のテーブル、1つまたは複数の関係データベース、および/または1つまたは複数の多次元データキューブであるか、またはこれらを含むことができる。さらに、単一のコンポーネントとして示されているが、グラフストア220、階層ストア240、およびメトリックストア250は各々、単一のコンピューティングデバイスに実装され得るまたは多数のコンピューティングデバイスまたはメモリコンポーネント間で分散され得る、データベースクラスタなど、複数のデータベースになり得る。さらに、監視サーバ140に含まれるさまざまなモジュールおよびデータストアは、1つのコンピューティングシステム内に物理的にコロケートされ得るか、あるいは複数のコンピューティングシステムに異なって配置され得る。
アプリケーション分析エンジン210は、監視サーバ140によって監視される異なるアプリケーションのコンポーネント間グラフを作成し、かつそれを行う1つの手段である。動作において、アプリケーション115などのアプリケーションは、連動するいくつかのコンポーネントを有することができる。アプリケーション分析エンジン210は、さまざまなコンポーネントがどのように接続されているかを特定するアプリケーションのコンポーネント間グラフを作成するためにこれらのコンポーネントのそれぞれのアウトバウンド要求とインバウンド要求をトレースする。
一実施形態において、エージェント120は、一意のヘッダのセットを、ブラウザおよびバックエンドサービスなど、アプリケーション115のコンポーネントからのアウトバウンドハイパーテキスト転送プロトコル(HTTP)要求に付加する。エージェント120は、これらの一意のヘッダの他のコンポーネントのインバウンド要求を監視する。コンポーネントAからのアウトバウンド要求に付加される一意のヘッダのうちの1つがコンポーネントBへのインバウンド要求で特定されると、エージェント120は、コンポーネントAが下流コンポーネントBに接続されていることを示す通知をアプリケーション分析エンジン210に送信する。アプリケーション分析エンジン210は、アプリケーションのコンポーネント間のさまざまな接続および関連した接続性の方向を示すこうした通知を処理してアプリケーション115のコンポーネント間グラフを構築する。コンポーネント間グラフは、ブラウザまたはユーザインタフェースなど、ユーザ向けコンポーネントから、支払い処理など、バックエンドサービスコンポーネントまでに拡張し、最終的には、キャッシングおよびデータベースなど、バックエンドストレージ層までに拡張する。アプリケーション分析エンジン210は、コンポーネント間グラフをコンポーネント間グラフストア220(本明細書では「グラフストア220」ともいわれる)に格納する。
図3は、一実施形態に従って、アプリケーション分析エンジン210によって作成される例示的なコンポーネント間グラフを示す。コンポーネント間グラフにおいて、「W」と記されたコンポーネントは、ウェブインタフェースコンポーネントである。「P」および「Q」と記されたコンポーネントは、「バックエンドA」、「バックエンドB」、「バックエンドC」と記されたデータベースから生データをサーブし、そしてデータベースにデータを格納する、「W」コンポーネントによって呼び出されるアプリケーションプログラミングインタフェースにサービスする。一実施形態において、Pは、ユーザ情報コンポーネントであり、Qは、ショッピングカタログコンポーネントである。コンポーネントPおよびQなど、各APIコンポーネントは、それ自身のデータストアを有することが多い。スタックの最上の層1は、人間が消費するデータ、サービス、インタフェースなどを表し、スタックの中間の層2は、機械消耗品(またはAPI)を表し、スタックの最下の層3は、ストレージおよび他のバックエンドサービスを表す。
再度図2について、メトリック収集エンジン230は、粒度のさまざまなレベルのエージェント120によって収集されるメトリックを集合し、かつそれを行う1つの手段である。エージェント120は、アプリケーション115の各コンポーネントのメトリック、さらにそれらのコンポーネント内の各方法または動作ユニットのメトリックを受信する。これらのメトリックは、時間単位で測定される実行期間と実行中に遭遇するエラーを含む。メトリック収集エンジン230は、コンポーネントのどの方法がトランザクション中に呼び出されるか、各方法が呼び出された回数、実行される時の各方法の全時間期間を判定するメトリックを集合する。エージェント120はまた、1つまたは複数の子を有する各方法の排他実行時間も判定することができ、排他実行時間は、子方法の実行時間を考慮に入れずに実行される親方法の時間量または子方法が実行されていた間に親方法がブロックされた時間量を表す。
メトリック収集エンジン230は、アプリケーション150の各コンポーネントおよびサブコンポーネントのメトリック時系列を作成するために受信されたメトリックを集合する。メトリック時系列は、所与のメトリックに対し、所定の時間間隔で関連したコンポーネント/サブコンポーネントのメトリックの値を指定する。メトリック収集エンジン230は、メトリック時系列をメトリックストア250に格納する。メトリック収集エンジン230はまた、アプリケーション115の各コンポーネントのコンポーネント内階層も作成する。特に、コンポーネントのコンポーネント内階層は、コンポーネントのさまざまな動作ユニット、例えば、方法、データストレージサービスなどがどのように接続されているかを特定する。メトリック収集エンジン230は、コンポーネント内階層をコンポーネント内階層ストア240に格納する。
図4は、一実施形態に従って、図3の単一のコンポーネントQの例示的なコンポーネント内階層を示す。コンポーネント内階層において、コンポーネントQは、「外部サービス」、「データストアサービス」、および「HTTPディスパッチャ」を含む、多数の最上位の動作ユニット402を含む。最上位の動作ユニット402は、さらにメトリック収集エンジン230によって特定される下位の動作ユニットを有することが多い。図において、例えば、「外部サービス」はさらに、「カタログサービス」、「ユーザサービス」、「アカウントサービス」、および「ユーザデータストア」にコンポーネント化される。コンポーネント内階層は、最上位の動作ユニット402と下位の動作ユニット404の間の関係をキャプチャする。
再度図2について、根本原因検出エンジン260は、アプリケーション115の実行中に発生する問題を検出し、それらの問題の根本原因を確率的に判定し、かつそれを行う1つの手段である。根本原因検出エンジン260は、問題検出モジュール262、トラバースモジュール264、相関モジュール266、およびレポーティングモジュール268を含む。
問題検出モジュール262は、メトリックストア250に格納されたメトリックを監視してアプリケーション115の実行の潜在的問題を特定し、かつそれを行う1つの手段である。問題は、メトリックが問題検出モジュール262で定義される閾値を超える時に検出される。閾値は、アプリケーションおよび/またはアプリケーションのコンポーネントの履歴性能に基づいて判定される構成可能な閾値にすることができる。一実施形態において、問題検出モジュール262は、アプリケーションまたはアプリケーションのコンポーネントの実行時間が閾値を超える時に問題を検出する。別の実施形態において、問題検出モジュール262は、アプリケーションまたはアプリケーションのコンポーネントの所与の実行期間内で発生したエラー数が閾値を超える時に問題を検出する。問題検出モジュール262が問題を検出すると、問題検出モジュール262は、トラバースモジュール264にアラートを発する。アラートは、問題が検出されたアプリケーションおよび/またはアプリケーションのコンポーネントを特定する。
トラバースモジュール264は、アプリケーションに関連付けられたコンポーネント間グラフおよびコンポーネント内階層をトラバースして、問題検出モジュール262によって検出される問題の根本原因を特定し、かつそれを行う1つの手段である。動作において、トラバースモジュール264は、問題検出モジュール262によって発せられたアラートをリッスンする。アラートが発せられると、トラバースモジュール264は、問題が検出されたアプリケーションを特定して、そのアプリケーションに関連付けられたコンポーネント間グラフをグラフストア220から読み出し、およびコンポーネント内階層を階層ストア240から読み出す。所与の問題の場合、トラバースモジュール264は、コンポーネント間グラフとコンポーネント内階層をトラバースして、検出された問題の原因であるとされている可能性のある実行経路を判定する。トラバースモジュール264は、実行経路の異なるコンポーネントのメトリック時系列を検出された問題と比較する要求を相関モジュール266に送信する。一実施形態において、トラバースモジュール264は、相関モジュール266による比較の結果に基づいて実行経路で特定されたコンポーネントとサブコンポーネントのメトリック時系列を反復的にフェッチする。
相関モジュール266は、メトリック時系列を問題メトリックと比較して実行パターン間の相関を特定し、かつそれを行う1つの手段である。一実施形態において、ピアソンの積率相関係数を使用してこれらの2つの時系列を比較する。問題応答期間の時系列は、n値を包含するデータセット{x|,…,xn}であり、可能なサブコンポーネント期間のメトリック時系列は、これもn値を包含するデータセット{y|,…,yn}であると仮定する。相関係数rの式は、次の通りである。
Figure 2019507454
ここで
Figure 2019507454
Figure 2019507454
は、それぞれの標本平均値である。1.0のr値は、完全相関を表し、0.0は、無相関を表し、−1.0は、完全負相関を表す。同じ等式は、期間メトリック時系列を時間単位ごとに観察される誤り数に置き換えることによって誤り率メトリックに適用される。サブコンポーネントが問題メトリックに高い相関を与えると、サブコンポーネントの子と問題メトリックとの相関を計算するアルゴリズムが繰り返される。
レポーティングモジュール268は、検出された問題の根本原因を視覚的に特定するレポートをアプリケーション115の管理者に作成し、かつそれを行う1つの手段である。これらのレポートは、問題が検出されたレベルから根本原因までの実行経路を特定することができる。レポートはまた、特定された根本原因の信頼レベルを問題の根本原因であるファクトによって指定することもできる。
図5は、一実施形態に従って、実行するアプリケーションに関連して検出された問題の根本原因を判定するための方法ステップのフローチャートである。他の実施形態は、図5に示されたプロセスのステップを異なる順序で行うことができ、異なる、追加のおよび/またはより少ないステップを含むことができる。プロセスは、根本原因検出エンジン260など、適した任意のエンティティによって行われ得る。
根本原因検出エンジン260は、502において、問題がランタイム中にアプリケーションに関連して検出されたことを判定する。一実施形態において、問題は、アプリケーションの性能に関係するメトリックが根本原因検出エンジン260で定義された閾値を超える時に検出される。閾値は、アプリケーションおよび/またはアプリケーションのコンポーネントの履歴性能に基づいて判定される構成可能な閾値にすることができる。
根本原因検出エンジン260は、504において、問題が検出されたアプリケーションに関連付けられたメトリック時系列(「アプリケーションメトリック時系列」といわれる)をメトリックストア250からフェッチする。アプリケーションメトリック時系列は、時間のさまざまなポイントにおける所与のメトリックの値を示す。例えば、応答時間メトリック時系列は、時間のさまざまなポイントにおけるアプリケーション応答時間を示す。一実施形態において、検出された問題は、典型的には、アプリケーションに関連付けられたメトリック時系列の異常として現れる。
根本原因検出エンジン260は、問題が検出されたアプリケーションのコンポーネントに関連付けられた最上位のメトリック時系列を読み出す。特に、根本原因検出エンジン260は、アプリケーションに関連付けられたコンポーネント間グラフを分析して、問題に起因すると考えられるアプリケーションの最上位のコンポーネントを判定する。上記で論じたように、アプリケーションのコンポーネント間グラフは、アプリケーションのさまざまなコンポーネントがどのように接続されているかを特定する。
根本原因検出エンジン260は、508において、アプリケーションのアプリケーションメトリック時系列を、アプリケーションのコンポーネントに関連付けられた最上位のメトリック時系列と相関させる。根本原因検出エンジン260は、510において、アプリケーションメトリック時系列との最高の相関を有する最高位のメトリック時系列を有するコンポーネントを選択する。
根本原因検出エンジン260は、512において、選択されたコンポーネントに関連付けられた下位のメトリック時系列をメトリックストア250からフェッチする。特に、根本原因検出エンジン260は、選択されたコンポーネントに関連付けられたコンポーネント内階層を分析して、問題に起因すると考えられるアプリケーションの動作ユニットを判定する。上記で論じたように、コンポーネントのコンポーネント内階層は、コンポーネントのさまざまな動作ユニット、例えば、方法、データストレージサービスなどがどのように接続されているかを特定する。
根本原因検出エンジン260は、514において、アプリケーションのアプリケーションメトリック時系列を、選択されたコンポーネントの動作ユニットに関連付けられた下位のメトリック時系列と相関させる。根本原因検出エンジン260は、516において、アプリケーションメトリック時系列との最高の相関を有する下位のメトリック時系列を有する動作ユニットを根本原因として特定する。
一実施形態において、コンポーネントの動作ユニットは、それ自身のコンポーネント間グラフとコンポーネント内階層に関連付けられたアプリケーションにすることができる。このような実施形態において、根本原因検出エンジン260は、根本原因が特定されるまでステップ506−514を反復的に行う。さらに、最上位または下位のメトリック時系列がアプリケーションメトリック時系列と相関できなければ、根本原因検出エンジン260は、ウェブトランザクション、データストア、または他の動作コンポーネントおよびアプリケーションの依存性に関連付けられたメトリック時系列の間の相関を探索する。
図6Aと図6Bは、一実施形態に従って、コンポーネント間グラフとコンポーネント内階層のトラバースモジュール264による例示的なトラバースを示す。具体的には、図6Aと図6Bに示されたトラバースは、「W」と記されたコンポーネント602において検出される問題を引き起こし得る異なる実行経路を示す。トラバースモジュール264は、アプリケーション分析エンジン210によって作成されるコンポーネント間グラフを反復的にトラバースして、コンポーネント602に接続されているアプリケーションスタックの下位層のコンポーネントのセットを特定する。コンポーネントのセットは、アプリケーションスタックの層2の3つの「Q」コンポーネントとスタックの層3のバックエンド「C」コンポーネントを含む。根本原因検出エンジン260は、コンポーネントのセットのコンポーネントに関連付けられた最上位のメトリック時系列を読み出す。図示された例において、根本原因検出エンジン260は、コンポーネント602のメトリック時系列を、セットのコンポーネントに関連付けられた最上位のメトリック時系列と相関させて、メトリック時系列との最高の相関を有する最高位のメトリック時系列を有するものとしてコンポーネント604を選択する。
図6Bに示すように、コンポーネントQは、「拡張サービス」、「データストアサービス」、および「HTTPディスパッチャ」を含む、多数の最上位の動作ユニットを含む。根本原因検出エンジン260は、コンポーネントの動作ユニットに関連付けられた下位のメトリック時系列を反復的に読み出す。根本原因検出エンジン260は、コンポーネント604のメトリック時系列を、動作ユニットに関連付けられた下位のメトリック時系列と相関させて、メトリック時系列との最高の相関を有する最高位のメトリック時系列を有する動作ユニットを問題の根本原因として選択する。図示された例において、根本原因検出エンジン260は、ユーザデータストア602が問題の根本原因であることを判定する。
図7Aと図7Bは、一実施形態に従って、アプリケーション115の異なるコンポーネントのメトリック時系列の例示的な可視化とメトリック時系列が問題メトリックとどのように相関されるかを示す。アプリケーション時系列の可視化701は、10:30amにおけるメトリックの値の異常を示す。このような異常は、アプリケーションの性能の問題702に起因する。可視化704−712は、アプリケーション115のコンポーネントおよびサブコンポーネントに関連付けられたさまざまなメトリック時系列を表す。可視化708に示すように、検出された問題702をデータベース性能と相関させることができる。根本原因検出エンジン260は、データベースのサブコンポーネントに関連付けられた時系列を評価して、時系列712によって問題702の根本原因であると表されるトランザクションAを特定する。
本開示の実施形態の前述の説明は、例証の目的で提示されており、網羅的または本開示を開示されたとおりの形態に限定することを意図しない。当業者は、上記の開示に照らして多くの変更および変形形態が可能であることを認識できる。
本説明のいくつの部分は、情報の動作のアルゴリズムおよび記号表現の観点から開示の実施形態を説明している。これらのアルゴリズム的記述および表現は、データ処理技術の当業者によって、彼らの研究の本質を他の当業者に効果的に伝えるために広く用いられている。これらの動作は、機能的に、計算的に、または論理的に説明されているが、コンピュータプログラムまたは等価の電気回路、マイクロコードその他によって実装されることが理解される。さらに、一般性を失わずに、動作のこのような配置をモジュールということが時には便利なことも証明されている。説明された動作およびそれらに関連したモジュールは、ソフトウェア、ファームウェア、ハードウェアまたはそれらの任意の組み合わせにおいて具体化され得る。
本明細書で説明されるステップ、動作、またはプロセスのいずれも行われ得るまたは1つまたは複数のハードウェアまたはソフトウェアモジュールに単独または他のデバイスとの組み合わせにおいて実装され得る。一実施形態において、ソフトウェアモジュールは、説明されたステップ、動作、またはプロセスの一部またはすべてを行うコンピュータプロセッサによって実行できる、コンピュータプログラムコードを包含するコンピュータ可読媒体を備えるコンピュータプログラム製品に実装される。
本開示の実施形態は、本明細書の動作を行う装置に関係することもできる。この装置は、必要な目的のために特別に構築されてもよく、および/またはコンピュータに格納されたコンピュータプログラムによって選択的にアクティブ化されるまたは再構成される汎用コンピューティングデバイスを備えてもよい。このようなコンピュータプログラムは、有形コンピュータ可読ストレージ媒体または電子命令を格納するのに適した任意のタイプの媒体に格納され、そしてコンピュータシステムバスに結合され得る。さらに、明細書において言及される任意のコンピューティングシステムは、単一のプロセッサを含んでよい、または計算能力が増大されるように複数のプロセッサ設計を用いるアーキテクチャであってもよい。
本開示の実施形態は、コンピュータデータ信号が本明細書で説明されるコンピュータプログラム製品または他のデータの組み合わせの任意の実施形態を含む、搬送波において具体化されるコンピュータデータ信号に関係することもできる。コンピュータデータ信号は、有形媒体または搬送波で提示されるおよび変更されるか、あるいは有形である搬送波に符号化され、そして任意に適した送信方法に従って送信される。
最後に、明細書で使用される言語は、主に読みやすさまたは教授目的で選択されており、発明の主題を叙述または制限するために選択されていない場合もある。従って、本開示の範囲は、この詳細な説明によるのではなく、本明細書に基づくアプリケーションに関するいずれかの特許請求の範囲によって制限されることを意図する。従って、本開示の実施形態の開示は、例証することを意図し、発明の範囲を制限するものではない。

Claims (20)

  1. ソフトウェアアプリケーションに関係する実行問題の根本原因を特定するための方法であって、
    ソフトウェアアプリケーションの実行中に所与の時間期間の性能メトリックの劣化を特定し、アプリケーションスタックに関連付けられた前記ソフトウェアアプリケーションは、各々が1つまたは複数のコンポーネントを含む複数の階層的に組織化された層を有することと、
    前記ソフトウェアアプリケーションに対応するコンポーネント間グラフをトラバースして、前記実行中にインスタンス化されたコンポーネントの階層を特定し、前記コンポーネント間グラフは、前記ソフトウェアアプリケーションの異なるコンポーネント間の接続を表し、コンポーネントの前記階層は、前記アプリケーションスタックの第1の層の第1のコンポーネントと第2のコンポーネントを含むことと、
    前記性能メトリックの前記劣化を、前記第1のコンポーネントと前記第2のコンポーネントのそれぞれに関連付けられた前記メトリック時系列に相関させ、前記メトリック時系列の各々は、所与のメトリックに対し、前記時間期間中に前記関連したコンポーネントに対する前記メトリックの1つまたは複数の値を指定することと、
    前記性能メトリックの前記劣化と前記メトリック時系列との間の前記相関に基づいて、前記第1のコンポーネントを前記性能メトリックの前記劣化の原因として選択することと、
    前記第1のコンポーネントを前記性能メトリックの前記劣化の前記原因として報告することと
    を備える方法。
  2. 前記劣化は、前記ソフトウェアアプリケーションのランタイム中に発生する実行問題を示す、請求項1に記載の方法。
  3. 前記ソフトウェアアプリケーションの前記異なるコンポーネントから生じる要求を監視して、前記コンポーネント間グラフを構築することをさらに備える、請求項1に記載の方法。
  4. 前記性能メトリックの前記劣化は実行時系列として表され、前記性能メトリックの前記劣化を前記メトリック時系列に相関させることは、前記実行時系列の値と前記メトリック時系列の値を比較することを備える、請求項1に記載の方法。
  5. 前記第1のコンポーネントに対応するコンポーネント内グラフをトラバースして、前記実行中にインスタンス化されたサブコンポーネントの階層を特定し、前記コンポーネント内グラフは、前記第1のコンポーネントの異なるサブコンポーネント間の接続を表し、コンポーネントの前記階層は、前記第1のコンポーネントの第1のサブコンポーネントと第2のサブコンポーネントを含むことをさらに備える、請求項1に記載の方法。
  6. 前記性能メトリックの前記劣化を、前記第1のサブコンポーネントと前記第2のサブコンポーネントのそれぞれに関連付けられた前記下位のメトリック時系列に相関させ、前記下位のメトリック時系列の各々は、所与の下位のメトリックに対し、前記時間期間中に前記関連したサブコンポーネントに対する前記下位のメトリックの1つまたは複数の値を指定することと、
    前記性能メトリックの前記劣化と前記下位のメトリック時系列との間の前記相関に基づいて、前記第1のサブコンポーネントを前記性能メトリックの前記劣化の根本原因として選択することをさらに備える、請求項5に記載の方法。
  7. コンポーネントの前記階層は、各々が前記第1のコンポーネントに接続されている前記アプリケーションスタックの第2の層の第3のコンポーネントと第4のコンポーネントを含む、請求項1に記載の方法。
  8. 前記性能メトリックの前記劣化を、前記第3のコンポーネントと前記第4のコンポーネントのそれぞれに関連付けられた前記メトリック時系列に相関させ、前記メトリック時系列の各々は、所与のメトリックに対し、前記時間期間中に前記関連したコンポーネントの前記メトリックの1つまたは複数の値を指定し、前記性能メトリックの前記劣化と、前記第3のコンポーネントと前記第4のコンポーネントのそれぞれに関連付けられた前記メトリック時系列との間の前記相関に基づいて、前記第3のコンポーネントを前記性能メトリックの前記劣化の下位の原因として選択することをさらに備える、請求項7に記載の方法。
  9. 前記アプリケーションスタックの前記第1の層は、前記アプリケーションスタックのユーザインタフェース層であり、前記アプリケーションスタックの前記第2の層は、アプリケーションプログラミングインタフェースである、請求項7に記載の方法。
  10. 前記第1のコンポーネントを報告することは、前記性能メトリックの前記劣化を表すグラフと、前記第1のコンポーネントに関連付けられた前記メトリック時系列を示す第2のグラフを備えることを特徴とする請求項1に記載の方法。
  11. プロセッサによって実行されると、
    ソフトウェアアプリケーションの実行中に所与の時間期間の性能メトリックの劣化を特定し、アプリケーションスタックに関連付けられた前記ソフトウェアアプリケーションは、各々が1つまたは複数のコンポーネントを含む複数の階層的に組織化された層を有することと、
    前記ソフトウェアアプリケーションに対応するコンポーネント間グラフをトラバースして、前記実行中にインスタンス化されたコンポーネントの階層を特定し、前記コンポーネント間グラフは、前記ソフトウェアアプリケーションの異なるコンポーネント間の接続を表し、コンポーネントの前記階層は、前記アプリケーションスタックの第1の層の第1のコンポーネントと第2のコンポーネントを含むことと、
    前記性能メトリックの前記劣化を、前記第1のコンポーネントと前記第2のコンポーネントのそれぞれに関連付けられた前記メトリック時系列に相関させ、前記メトリック時系列の各々は、所与のメトリックに対し、前記時間期間中に前記関連したコンポーネントに対する前記メトリックの1つまたは複数の値を指定することと、
    前記性能メトリックの前記劣化と前記メトリック時系列との間の前記相関に基づいて、前記第1のコンポーネントを前記性能メトリックの前記劣化の原因として選択することと、
    前記第1のコンポーネントを前記性能メトリックの前記劣化の前記原因として報告すること
    を前記プロセッサにさせるソフトウェアアプリケーションに関係する実行問題の根本原因を特定する命令を格納するためのコンピュータプログラム製品。
  12. 前記劣化は、前記ソフトウェアアプリケーションのランタイム中に発生する実行問題を示す、請求項11に記載のコンピュータプログラム製品。
  13. 前記ソフトウェアアプリケーションの前記異なるコンポーネントから生じる要求を監視して、前記コンポーネント間グラフを構築することをさらに備えた、請求項11に記載のコンピュータプログラム製品。
  14. 前記性能メトリックの前記劣化は実行時系列として表され、前記性能メトリックの前記劣化を前記メトリック時系列に相関させることは、前記実行時系列の値と前記メトリック時系列の値を比較することを備えた、請求項11に記載のコンピュータプログラム製品。
  15. 前記第1のコンポーネントに対応するコンポーネント内グラフをトラバースして、前記実行中にインスタンス化されたサブコンポーネントの階層を特定し、前記コンポーネント内グラフは、前記第1のコンポーネントの異なるサブコンポーネント間の接続を表し、コンポーネントの前記階層は、前記第1のコンポーネントの第1のサブコンポーネントと第2のサブコンポーネントを含むことをさらに備えた、請求項11に記載のコンピュータプログラム製品。
  16. 前記性能メトリックの前記劣化を、前記第1のサブコンポーネントと前記第2のサブコンポーネントのそれぞれに関連付けられた前記下位のメトリック時系列に相関させ、前記下位のメトリック時系列の各々は、所与の下位のメトリックに対し、前記時間期間中に前記関連付けられたサブコンポーネントに対する前記下位のメトリックの1つまたは複数の値を指定することと、
    前記性能メトリックの前記劣化と前記下位のメトリック時系列との間の前記相関に基づいて、前記第1のサブコンポーネントを前記性能メトリックの前記劣化の根本原因として選択することをさらに備えた、請求項15に記載のコンピュータプログラム製品。
  17. コンポーネントの前記階層は、各々が前記第1のコンポーネントに接続されている前記アプリケーションスタックの第2の層の第3のコンポーネントと第4のコンポーネントを含む、請求項11に記載のコンピュータプログラム製品。
  18. 前記性能メトリックの前記劣化を、前記第3のコンポーネントと前記第4のコンポーネントのそれぞれに関連付けられた前記メトリック時系列に相関させ、前記メトリック時系列の各々は、所与のメトリックに対し、前記時間期間中に前記関連付けられたコンポーネントの前記メトリックの1つまたは複数の値を指定し、前記性能メトリックの前記劣化と、前記第3のコンポーネントと前記第4のコンポーネントのそれぞれに関連付けられた前記メトリック時系列との間の前記相関に基づいて、前記第3のコンポーネントを前記性能メトリックの前記劣化の下位の原因として選択することをさらに備えた、請求項17に記載のコンピュータプログラム製品。
  19. 前記アプリケーションスタックの前記第1の層は、前記アプリケーションスタックのユーザインタフェース層であり、前記アプリケーションスタックの前記第2の層は、アプリケーションプログラミングインタフェースである、請求項17に記載のコンピュータプログラム製品。
  20. 命令を格納するメモリと、
    ソフトウェアアプリケーションの実行中に所与の時間期間の性能メトリックの劣化を特定し、アプリケーションスタックに関連付けられた前記ソフトウェアアプリケーションは、各々が1つまたは複数のコンポーネントを含む複数の階層的に組織化された層を有することと、
    前記ソフトウェアアプリケーションに対応するコンポーネント間グラフをトラバースして、前記実行中にインスタンス化されたコンポーネントの階層を特定し、前記コンポーネント間グラフは、前記ソフトウェアアプリケーションの異なるコンポーネント間の接続を表し、コンポーネントの前記階層は、前記アプリケーションスタックの第1の層の第1のコンポーネントと第2のコンポーネントを含むことと、
    前記性能メトリックの前記劣化を、前記第1のコンポーネントと前記第2のコンポーネントのそれぞれに関連付けられた前記メトリック時系列に相関させ、前記メトリック時系列の各々は、所与のメトリックに対し、前記時間期間中に前記関連付けられたコンポーネントに対する前記メトリックの1つまたは複数の値を指定することと、
    前記性能メトリックの前記劣化と前記メトリック時系列との間の前記相関に基づいて、前記第1のコンポーネントを前記性能メトリックの前記劣化の原因として選択することと、
    前記第1のコンポーネントを前記性能メトリックの前記劣化の前記原因として報告すること
    を行う前記命令を実行するように構成されたプロセッサを備えた、コンピュータシステム。
JP2018562730A 2016-02-18 2017-02-15 アプリケーションの実行中に観察される問題の根本原因を特定する方法 Pending JP2019507454A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662297031P 2016-02-18 2016-02-18
US62/297,031 2016-02-18
PCT/IB2017/050851 WO2017141176A1 (en) 2016-02-18 2017-02-15 Identifying the root cause of an issue observed during application execution

Publications (2)

Publication Number Publication Date
JP2019507454A true JP2019507454A (ja) 2019-03-14
JP2019507454A5 JP2019507454A5 (ja) 2020-04-02

Family

ID=59624846

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018562730A Pending JP2019507454A (ja) 2016-02-18 2017-02-15 アプリケーションの実行中に観察される問題の根本原因を特定する方法

Country Status (5)

Country Link
US (2) US10459818B2 (ja)
JP (1) JP2019507454A (ja)
AU (1) AU2017220066A1 (ja)
DE (1) DE112017000881T5 (ja)
WO (1) WO2017141176A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020201638A (ja) * 2019-06-07 2020-12-17 京セラドキュメントソリューションズ株式会社 監視システムおよび監視プログラム

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017141176A1 (en) * 2016-02-18 2017-08-24 New Relic, Inc. Identifying the root cause of an issue observed during application execution
US10255128B2 (en) * 2016-08-17 2019-04-09 Red Hat, Inc. Root cause candidate determination in multiple process systems
US10445196B2 (en) * 2017-01-06 2019-10-15 Microsoft Technology Licensing, Llc Integrated application issue detection and correction control
US10565045B2 (en) * 2017-06-28 2020-02-18 Microsoft Technology Licensing, Llc Modularized collaborative performance issue diagnostic system
US11010223B2 (en) * 2017-09-01 2021-05-18 Infosys Limited Method and system of automatic event and error correlation from log data
US11250125B2 (en) 2018-12-03 2022-02-15 Ebay Inc. Highly scalable permissioned block chains
US11263315B2 (en) * 2018-12-03 2022-03-01 Ebay Inc. System level function based access control for smart contract execution on a blockchain
US11405182B2 (en) 2018-12-03 2022-08-02 Ebay Inc. Adaptive security for smart contracts using high granularity metrics
WO2020177854A1 (en) 2019-03-04 2020-09-10 Huawei Technologies Co., Ltd. Automated root-cause analysis for distributed systems using tracing-data
US11163633B2 (en) * 2019-04-24 2021-11-02 Bank Of America Corporation Application fault detection and forecasting
US11669386B1 (en) * 2019-10-08 2023-06-06 Pure Storage, Inc. Managing an application's resource stack
US11640329B2 (en) * 2021-04-01 2023-05-02 Bmc Software, Inc. Using an event graph schema for root cause identification and event classification in system monitoring

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140165064A1 (en) * 2012-12-10 2014-06-12 Fujitsu Limited Processing method, processing apparatus, and recording medium
US20150172148A1 (en) * 2013-12-16 2015-06-18 Hitachi, Ltd. Management server and control method of management server

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7437611B2 (en) * 2004-10-21 2008-10-14 International Business Machines Corporation System and method for problem determination using dependency graphs and run-time behavior models
JP4172807B2 (ja) * 2006-09-08 2008-10-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 障害発生の原因箇所の発見を支援する技術
US8225291B2 (en) 2008-01-04 2012-07-17 International Business Machines Corporation Automated detection of application performance bottlenecks
US7979747B2 (en) * 2009-02-20 2011-07-12 International Business Machines Corporation Interactive problem resolution presented within the context of major observable application behaviors
US9396157B2 (en) 2011-08-26 2016-07-19 International Business Machines Corporation Stream application performance monitoring metrics
US9507682B2 (en) * 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
US10198340B2 (en) 2014-01-16 2019-02-05 Appnomic Systems Private Limited Application performance monitoring
US9798644B2 (en) * 2014-05-15 2017-10-24 Ca, Inc. Monitoring system performance with pattern event detection
US10031815B2 (en) * 2015-06-29 2018-07-24 Ca, Inc. Tracking health status in software components
WO2017141176A1 (en) * 2016-02-18 2017-08-24 New Relic, Inc. Identifying the root cause of an issue observed during application execution
US20170242663A1 (en) 2016-02-24 2017-08-24 King Fahd University Of Petroleum And Minerals Software model stability metrics

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140165064A1 (en) * 2012-12-10 2014-06-12 Fujitsu Limited Processing method, processing apparatus, and recording medium
JP2014115826A (ja) * 2012-12-10 2014-06-26 Fujitsu Ltd 処理プログラム、処理方法および処理装置
US20150172148A1 (en) * 2013-12-16 2015-06-18 Hitachi, Ltd. Management server and control method of management server
JP2015115018A (ja) * 2013-12-16 2015-06-22 株式会社日立製作所 管理サーバおよび管理サーバの制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020201638A (ja) * 2019-06-07 2020-12-17 京セラドキュメントソリューションズ株式会社 監視システムおよび監視プログラム

Also Published As

Publication number Publication date
US20200050526A1 (en) 2020-02-13
US11169897B2 (en) 2021-11-09
DE112017000881T5 (de) 2018-10-31
WO2017141176A1 (en) 2017-08-24
US20170242773A1 (en) 2017-08-24
US10459818B2 (en) 2019-10-29
AU2017220066A1 (en) 2018-08-30

Similar Documents

Publication Publication Date Title
US11169897B2 (en) Identifying the root cause of an issue observed during application execution
US10911517B2 (en) Determining end times for single page applications
US10459780B2 (en) Automatic application repair by network device agent
EP2871574B1 (en) Analytics for application programming interfaces
US20170075749A1 (en) Method And System For Real-Time Causality And Root Cause Determination Of Transaction And Infrastructure Related Events Provided By Multiple, Heterogeneous Agents
US9798644B2 (en) Monitoring system performance with pattern event detection
US20180032387A1 (en) Predictive Analytics on Database Wait Events
US20180123922A1 (en) Correlating performance outliers and network performance impacting event metric
US10462031B1 (en) Network visibility for cotenant processes
US10536505B2 (en) Intelligent data transmission by network device agent
US20210184937A1 (en) Auto discovery of network proxies
EP4196896A1 (en) Opentelemetry security extensions
US11526422B2 (en) System and method for troubleshooting abnormal behavior of an application
US10650079B2 (en) Resource cache classification using machine learning
Natu et al. Holistic performance monitoring of hybrid clouds: Complexities and future directions
US10931513B2 (en) Event-triggered distributed data collection in a distributed transaction monitoring system
US20100306593A1 (en) Automatic bug reporting tool
WO2020167570A1 (en) Cause-based event correlation to virtual page transitions in single page applications
US10805144B1 (en) Monitoring interactions between entities in a network by an agent for particular types of interactions and indexing and establishing relationships of the components of each interaction
US20200394329A1 (en) Automatic application data collection for potentially insightful business values
US11327817B2 (en) Automatic scope configuration of monitoring agents for tracking missing events at runtime
US20210227351A1 (en) Out of box user performance journey monitoring
WO2020190564A1 (en) Accurately determining web page visually complete time
US11700192B2 (en) Apparatuses, methods, and computer program products for improved structured event-based data observability
US11516234B1 (en) In-process correlation through class field injection

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200217

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200217

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200217

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200717

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200728

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20201028

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20201228

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210323