JP2023537769A - クラウドネイティブなアプリケーション向けの障害場所特定 - Google Patents

クラウドネイティブなアプリケーション向けの障害場所特定 Download PDF

Info

Publication number
JP2023537769A
JP2023537769A JP2023511540A JP2023511540A JP2023537769A JP 2023537769 A JP2023537769 A JP 2023537769A JP 2023511540 A JP2023511540 A JP 2023511540A JP 2023511540 A JP2023511540 A JP 2023511540A JP 2023537769 A JP2023537769 A JP 2023537769A
Authority
JP
Japan
Prior art keywords
error
ordering
computer
logs
processing
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
JP2023511540A
Other languages
English (en)
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2023537769A publication Critical patent/JP2023537769A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • 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/06Management of faults, events, alarms or notifications
    • H04L41/0677Localisation of faults
    • 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/06Management of faults, events, alarms or notifications
    • H04L41/069Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
    • 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/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0659Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities
    • H04L41/0661Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities by reconfiguring faulty entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Figure 2023537769000001
本明細書では、クラウドネイティブなアプリケーション向けの障害場所特定のための方法、システム、およびコンピュータ・プログラム製品が、提供される。コンピュータ実装方法は、少なくとも1つのシステムに向けられるイベント関連のアラートの1つまたは複数の特性を処理することによって、イベント関連のアラートを分類することと、イベント関連のアラートの分類に少なくとも部分的に基づいて、複数のアプリケーション・ログを取得することおよび処理することと、複数のアプリケーション・ログを処理することに少なくとも部分的に基づいて、複数のアプリケーション・ログの中からエラー・ログを識別することと、1つまたは複数の優先順位付け技術を使用してエラー・ログを順序付けすることと、エラー・ログを順序付けすることに少なくとも部分的に基づいて、少なくとも1つの自動化されたアクションを実施することとを含む。

Description

本出願は、一般的には情報技術に関し、より詳細には問題管理技術に関する。より具体的には、異常検出は、潜在的な問題またはイベントのセット中の異常なイベントあるいはその両方を識別することに関係し、障害場所特定は、既に検出済みの問題の潜在的な原因のセットを絞り込むことに関係する。
本発明の一実施形態では、クラウドネイティブなアプリケーション向けの障害場所特定のための技術が提供される。例示的なコンピュータ実装方法は、少なくとも1つのシステムに向けられるイベント関連のアラートを、イベント関連のアラートの1つまたは複数の特性を処理することによって、分類することと、イベント関連のアラートの分類に少なくとも部分的に基づいて、複数のアプリケーション・ログを取得することおよび処理することとを含むことが可能である。方法はまた、複数のアプリケーション・ログを処理することに少なくとも部分的に基づいて、複数のアプリケーション・ログの中からエラー・ログを識別することと、1つまたは複数の優先順位付け技術を使用してエラー・ログを順序付けることと、エラー・ログを順序付けすることに少なくとも部分的に基づいて、少なくとも1つの自動化されたアクションを実施することとを含む。
本発明の別の実施形態またはその要素は、コンピュータ可読命令を有形に具体化するコンピュータ・プログラム製品の形態で実装することが可能であり、コンピュータ可読命令は、実装されると、本明細書で説明されるように、コンピュータに複数の方法ステップを実行させる。さらには、本発明の別の実施形態またはその要素は、メモリと、そのメモリに結合され、上記の方法ステップを実行するように構成された少なくとも1つのプロセッサとを含むシステムの形態で実装することができる。なお、さらには、本発明の別の実施形態またはその要素は、本明細書で説明される方法ステップを実行するための手段またはその要素の形態で実装することが可能である。手段は、ハードウェア・モジュール、またはハードウェア・モジュールとソフトウェア・モジュールとの組合せを含むことが可能であり、ソフトウェア・モジュールは、有形のコンピュータ可読記憶媒体(または複数のそのような媒体)に記憶される。
本発明のこれらおよび他の目的、特徴および利点は、添付の図面と合わせて読まれる、以下の例示的な実施形態の詳細な説明から明らかとなろう。
本発明の例示的な実施形態による、システム・アーキテクチャの図である。 本発明の例示的な実施形態による、システム・アーキテクチャの図である。 本発明の例示的な実施形態による、対象のフィールドとしてイングレス・ログを開始するための例示的なコードのスニペットである。 本発明の例示的な実施形態による、対象のフィールドとしてアプリケーション・ログを開始するための例示的なコードのスニペットである。 本発明の例示的な実施形態による、ログ・データから実行挙動モデルを推論する図である。 本発明の例示的な実施形態による、所与のインシデントについて識別可能なエラー・ログのテンプレートを識別するためのワークフロー図である。 本発明の実施形態による、技術を描いたフロー図である。 本発明の少なくとも1つの実施形態を実装することが可能な例示的なコンピュータ・システムのシステム図である。 本発明の実施形態による、クラウド・コンピューティング環境の図である。 本発明の実施形態による、抽象的なモデル・レイヤの図である。
本明細書において説明されるように、本発明の実施形態は、クラウドネイティブなアプリケーション向けの障害場所特定を含む。少なくとも1つの実施形態は、潜在的な障害を特定するために、ランタイム・サービス呼び出し関係グラフの少なくとも1つのトポロジー的なソートを使用することによって、クラウドネイティブでハイブリッドなアプリケーション向けの障害場所特定を提供することを含む。そのような実施形態はまた、所与の時間ウインドウでログを監視すること、および呼び出し関係チェーン全体へのエラー分布を使用することによってエラー・メッセージを絞り込むことで、同一の時間間隔内でエラー関連挙動と正常挙動とを見分けるためにログ分析を実施することによって、少なくとも1つの既に検出済みの問題の潜在的な原因を絞り込むことを含む。
1つまたは複数の実施形態はまた、少なくとも1つのログ・メッセージで言及されたエンティティを抽出することによって、少なくとも1つのマイクロサービス内の1つまたは複数のコンポーネントを推論すること、およびエラーを発生させている少なくとも1つのマイクロサービス内のコンポーネントを識別することを含む。追加的にまたは代替的に、少なくとも1つの実施形態は、様々な通信を分析して、要求がコンポーネントに到達する順序を判定すること、ならびにグラフ同型を使用して要求フローを推論するために所与の期間に渡ってログを処理することを含む。さらには、1つまたは複数の実施形態は、少なくとも1つの障害の影響を識別すること、または分析することあるいはその両方によって、少なくとも1つの障害コンポーネントによって影響を受けるサービスまたはユーザあるいはその両方を識別することを含むことが可能である。
図1は、本発明の実施形態による、システム・アーキテクチャの図である。図1に描かれるように、生ログ102は、例えばlogDNA、Elasticsearchなどのコネクタから受信される。次いで、ログ102は、コンポーネント104を介して(例えば、その後の分析において一貫したやり方でデータを使用することができるように、Logstashコンポーネントを介して、または対応するJava(R)Script Object Notation(JSON)中の様々なフィールドが何を指しているか(どのフィールドが時間を示しているか、どのフィールドがアプリケーション名またはサーバ名あるいはその両方を指しているか、など)を識別し、フォーマット化および/もしくはスケーリングに関して、そのようなフィールド中のデータを変更することによって、あるいはその両方で)正規化され、ストリーム処理プラットフォーム106に送られる。例えば入力108によりアラートが生じる都度、アラートの持続時間およびアラートの正確な時間が抽出され、ステップ110では、これらの詳細情報を使用して、特定のログがストリーム処理プラットフォーム106からフェッチされる。1つまたは複数の実施形態では、アラートは、システムの状態を監視するために、アプリケーション開発者またはサイト・リライアビリティ・エンジニア(SRE)によってセットされる。エラーまたは問題あるいはその両方が生じると、システムによってアラームが発せられる。加えて、アラートが発せられるのと同時にログが生成され、アラートに対応するエラーまたは問題あるいはその両方に関する情報または関連情報あるいはその両方を記述する。
加えて、やはり図1に描かれるように、ログ設定情報112が、障害場所特定および影響範囲システム118によって使用され、タイムスタンプを表すフィールドならびにゴールデン・シグナルのエラーおよびステータス・コードを表現する1つまたは複数のサービスを決定する。アプリケーション・トポロジー情報114(要求がフローする順を含むことが可能である)はまた、入力として障害場所特定および影響範囲システム118に送られる。少なくとも1つの実施形態では、そのような入力はまた、ログを使用して推論することが可能である。アラートの記述から抽出される関連エンティティ116に関する情報もまた、障害場所特定および影響範囲システム118への入力として機能する。入力112、114、および116に少なくとも部分的に基づいて、障害場所特定および影響範囲システム118は、少なくとも1つの障害コンポーネント120、1つまたは複数の影響を受けるサービス122、および1つまたは複数の影響を受ける顧客124を判定し、このような判定は、例えば入力データ全体に対して1つまたは複数の関係性を推論することによって行うことが可能である。例として、少なくとも1つの実施形態では、そのような推論された関係性は、エラーまたは問題あるいはその両方に対応する処理されたログ・データ中で言及されたエンティティを抽出すること、関連アプリケーション・トポロジー情報を分析し、エラーまたは問題あるいはその両方によって影響を受けた、または影響を受ける可能性がある、あるいはその両方の、アプリケーション内またはサービス内あるいはその両方で要求が1つまたは複数のコンポーネントに到達する順を決定すること、および抽出されたまたは分析されたあるいはその両方のデータを上記のソース全体で相関付けることによって、判定することが可能である。
図2は、本発明の例示的な実施形態による、システム・アーキテクチャの図である。例として、図2はアプリケーション・ログ204の監視を描いている(例えば、入力202に関連してログが生成されて直ぐ)。コンポーネント206を使用して、これらのアプリケーション・ログ204は、コンポーネント210を介して正規化され(図1に関連して詳細に上述した正規化技術と同様)、エラー・ログ212は、アプリケーション・ログ設定情報208(例えば、アプリケーション・ログをキャプチャするまたは記述する、あるいはその両方の情報)を使用して抽出され、ログ・テンプレート214に変換される。少なくとも1つの実施形態では、イングレス・ログまたはゴールデン・シグナルあるいはその両方220(例えば、ゲートウェイ・ログ)およびイングレス・ゲートウェイ・ログ設定情報218(例えば、イングレス・ゲートウェイ・ログをキャプチャするまたは記述する、あるいはその両方の情報)は、コンポーネント216を介して抽出される。
やはり図2に描かれるように、(ランク付けされたテンプレート224の集合のうち)第1のランカ226は、アプリケーション・トポロジー情報222ならびに追跡情報を使用して、少なくとも1つの障害コンポーネント、障害ポッド、またはエラー・ログ・テンプレート228あるいはその組合せを決定する。少なくとも1つの実施形態では、追跡情報は、1つまたは複数のログに存在する可能性があり、そのような実施形態は、そのような情報を抽出して、上記の決定を行うよう1つまたは複数の分析(例えば、履歴的データとの比較的な分析)で使用するために、1つまたは複数のログ・パーサを開発および実装することを含むことが可能である。第2のランカ230に関しては、追跡情報は使用されないが、少なくとも1つの障害コンポーネント、障害ポッド、またはエラー・ログ・テンプレート232あるいはその組合せを決定することに関連して、様々なサービス間のエラー分布が相関付けられる。第3のランカ234に関しては、ゴールデン・シグナルのエラーは使用されないが、ランタイムのアプリケーション・ログと履歴的な(例えば、健全なログ)ログとの偏差を見つけることによって、障害コンポーネント、障害ポッド、またはエラー・ログ・テンプレート236あるいはその組合せのリストが推論される。
したがって、少なくとも1つの実施形態は、共通して潜在的な障害があるが1つまたは複数の違いがあることを特定するために、ランタイム・サービス呼び出し関係グラフのトポロジー的なソートを使用することを含む。そのような違いとしては、例えば主要エラー・シグナルが、ユーザがアプリケーション内で直面しているサービスからのゴールデン・シグナルに基づいたアラートであることが挙げられる。本明細書で使用される場合、ゴールデン・シグナルのエラーとは、アラートが発せられる元となる主要エラー・シグナルを指す。また、ゴールデン・シグナルのエラーは、システム内で要求が失敗した回数を記録する。一定の時間ウインドウ内で所与の回数を越える要求の失敗があった場合、アラートが発せられる。システム内でいくつのエラー・シグナルが観察されるかのしきい値は、設定することが可能である。加えて、そのような違いとしては、例えば、それぞれのエラー・シグナルが、複数の失敗したサービス要求応答の複合体であること、アラートを発しているサービスは同一時間期間内に少なくとも一部のユーザ要求に対して成功応答を返す場合があること、上流のサービスは、必ずしもアラートを発していない場合があることを挙げることができる。
さらに本明細書で詳細に説明されるように、1つまたは複数の実施形態は、上流のマイクロサービスからのエラー・ログのイベントを活用して障害コンポーネントを明らかにすること、および非トランザクション関連のエラー・シグナルを除外することを含む。そのような実施形態では、障害は、失敗サービス要求と成功サービス要求との間のログ・デルタに存在することがあり、障害コンポーネントを識別するための重み付けされたトポロジー的なソートは、例えば<Microservice,Pod,Error Message>を含むことができる。上流サービスからのエラー・ログのイベントをグループ化する手法としては、例えばトランザクション・トレーサビリティに基づく手法、および失敗サービス要求に対する時間的近接性に基づく手法を挙げることができる。本明細書において説明されるように、障害コンポーネントとは、所与の数(例えば、所与のしきい値を越える数)のトランザクション・エラーを有するコンポーネントを指す。
図3は、本発明の例示的な実施形態による、対象のフィールドとしてイングレス・ログを開始するための例示的なコード・スニペットである。この例示的な実施形態では、コード・スニペット300は、少なくとも1つの処理システムまたはデバイスあるいはその両方の制御により、またはそのような制御の下、実行される。また、例示のコード・スニペット300は、イングレス・ログまたはゲートウェイ・ログあるいはその両方のサンプルを示している。上記のタイムスタンプから、障害を場所特定するために、request_idおよび_status情報が抽出される。
この特定の例示的なコード・スニペットは、対象のフィールドとしてイングレス・ログを開始するための単なる一例示的な実装形態を示していること、および他の実施形態では、このような技術の1つまたは複数の代替的な実装形態が使用可能であることを理解されたい。
図4は、本発明の例示的な実施形態による、対象のフィールドとしてアプリケーション・ログを開始するための例示的なコード・スニペットである。この例示的な実施形態では、コードスニペット・400は、少なくとも1つの処理システムまたはデバイスあるいはその両方の制御により、またはそのような制御の下、実行される。また、例示的なコード・スニペット400は、アプリケーション・ログのサンプルを示しており、フィールド・コンテナは、どのサービスから時間「@timestamp」において、エラー・シグナルが発せられたかを示している。
この特定の例示的なコード・スニペットは、対象のフィールドとしてアプリケーション・ログを開始するための単なる一例示的な実装形態を示していること、および他の実施形態では、このような技術の1つまたは複数の代替的な実装形態が使用可能であることを理解されたい。
少なくとも1つの実施形態は、例えば頻度ベースの手法を使用して実行することが可能な、エラー寄与によるテンプレートのランク付けを含む。そのような手法は、テンプレートのランタイム寄与および履歴的寄与を考慮することを含み、ランタイムとオフラインとの寄与の差異が大きいテンプレートは、高くランク付けされる。例えば、テンプレートT1は時間履歴的に5%、ランタイム時に20%で生じている(つまり、その差異は15%である)が、テンプレートT2は時間履歴的に10%、ランタイム時に12%で生じている(つまり、その差異は2%である)事例を検討する。したがって、このような例示の事例では、テンプレートT1が、T2よりも高くランク付けされる。
図5は、本発明の例示的な実施形態による、ログ・データから実行挙動モデルを推論する図である。例として、図5は、ノード502、504、506、508、510、512、514、516、および518を描いており、各ノードはテンプレートを表し(例えば、コード中のprintステートメントに対応するログ・メッセージのタイプ)、各エッジはフロー経路中の隣接するテンプレートをつないでいる。より具体的には、図5は、健全な状態におけるサービスの実行挙動を描いている。各テンプレート(502、504、506、508、510、512、514、516、および518)は、ログ中のprintステートメントを表しており、T3およびT4など、2つのテンプレート間のエッジは、例えばまずT3が実行され、次いでT4が実行されることを示している。この情報は、ログから生成され、障害を場所特定するために、1つまたは複数の実施形態によって、アプリケーション・トポロジーとして使用される。
本明細書においてさらに説明されるように、少なくとも1つの実施形態は、サービス・トポロジーを推論することを含み、ソフトウェア・スタックを持つサービス・トポロジーは、1つまたは複数のアプリケーション・パフォーマンス管理(APM)ツールから取得することが可能である。追加的にまたは代替的に、少なくとも1つの実施形態は、障害場所特定による、ログまたはテンプレートのランク付けあるいはその両方を含む。そのような実施形態は、おおよそのサービス障害アラートのタイムスパン情報を利用すること(例えば、エラー・ログと正常ログとのメッセージを比較するため)、ならびに利用可能なサービス・ナレッジを活用すること(例えば、正常挙動に対するエラー関連挙動を識別するためにサービス障害条件を使用すること、ログ・トランザクション識別子(ID)を使用すること、コンポーネント・レベルのエラー・ログ・メッセージの条件を使用すること(あるインシデントについて、すべてのエラー・テンプレートを取得することを含む)、または少なくとも1つの動的なサービス・コンポーネント・ワークフローを使用すること、あるいはその組合せを)を含むことが可能である。
アラートが到着する、例示的な事例を検討する。少なくとも1つの実施形態は、時間ウインドウおよびアラートの持続時間を抽出すること、ならびに所与の時間ウインドウについて、アプリケーション・ログを取得することを含むことが可能である。そのような実施形態の出力は、障害および影響を受けるコンポーネントのリスト、各コンポーネントにおけるエラー・テンプレート、ならびにポッドのリストを含む。本明細書で使用される場合、ポッドとは、サービスがホストされるエンティティを指す。少なくとも1つの実施形態では、同一のサービスが複数のポッドでホストされることが可能であり、1つまたは複数の実施形態は、どのポッドで障害が生じているかを識別することを含む。
アラートが到着する、別の例示的な事例を検討する。少なくとも1つの実施形態は、時間ウインドウおよびアラートの持続時間を抽出すること、ならびに所与の時間ウインドウについて、アプリケーション・ログおよびイングレス・ログを取得することを含むことが可能である。そのような実施形態の出力は、少なくとも1つの障害コンポーネント、エラー・テンプレート、およびポッドのリストの識別情報を含む、障害場所特定情報を含む。そのような出力はまた、影響を受けるコンポーネント、影響を受けるコンポーネントのそれぞれについてのエラー・テンプレート、およびコンポーネントが実行されているポッドのリストの、識別情報を含むことが可能である。
アラートが到着する、さらに別の例示的な事例を検討する。少なくとも1つの実施形態は、時間ウインドウおよびアラートの持続時間、ならびにアラートの記述中に存在するエンティティの身元情報(例えば、スロット情報など)を抽出すること、ならびに所与の時間ウインドウについて、アプリケーション・ログおよびイングレス・ログを取得することを含むことが可能である。そのような実施形態の出力は、少なくとも1つの障害コンポーネント、エラー・テンプレート、およびポッドのリストの識別情報を含む、障害場所特定情報を含む。そのような出力はまた、影響を受けるコンポーネント、影響を受けるコンポーネントのそれぞれについてのエラー・テンプレート、およびコンポーネントが実行されているポッドのリストの、識別情報を含むことが可能である。
本明細書でさらに説明されるように、1つまたは複数の実施形態は、正常挙動に対するエラー関連挙動を識別するために、サービス障害条件情報を利用することを含む。イングレス・ログを使用して、そのような実施形態は、2つのrequest_IDのリストを作成することを含むことが可能である。例えば、一方のrequest_IDでは、ステータスは200であり、もう一方のrequest_IDでは、500以上のステータスである。また、アプリケーション・ログを使用して、そのような実施形態は、あるインシデントについてのエラー・テンプレートを取得することを含む。
また、1つまたは複数の実施形態は、ログ相関関係を含み、イングレス・ログ中のrequest_idは、アプリケーション・ログ中のtransaction_idと同一である。そのような実施形態は、エラー・テンプレートを複数の部分に分類するために、上述の情報を使用することをさらに含むことが可能である。例えば、ある部分は500以上のステータスのみに関連付けられるエラー・テンプレートを対象とし、別の部分は、200および500以上のステータスに関連付けられるエラー・テンプレートを対象とし、さらに別の部分は、200のステータスに関連付けられるエラー・テンプレートを対象とする。そのような例示的な実施形態では、500(および、それより大きな数の)ステータスのみに関連付けられるテンプレートは、所与のインシデントについて識別可能なテンプレートであり、したがって、より高いランカである。
1つまたは複数のそのような実施形態は、各部分でテンプレートをランク付けするために、コンポーネントのコール・フローを使用することを含むことが可能であり、最終的にヒットするコンポーネントが、最初にそのエラー・ログを発し、鍵となるエラーである。1つのマイクロサービスが複数のエラー・メッセージを発している可能性があり、そのようなシナリオでは、少なくとも1つの実施形態は、障害の根本原因である正確なエラー・メッセージ(本明細書では、鍵となるエラー・メッセージとも称される)を絞り込むことを含むことが可能である。また、そのような実施形態は、ランタイム時にエラーをランク付けするために、コンポーネントのランクとテンプレートのランタイム頻度との組合せ(例えば、ログ行が発生する回数)を使用することを含むことが可能である。
図6は、本発明の例示的な実施形態による、所与のインシデントについて識別可能なエラー・ログのテンプレートを識別するためのワークフロー図である。図6は、図1および図2に類似しているが、ログ・テンプレート608がどのように生成されたかに関する追加的な詳細を伴う。例えば、アプリケーション・ログまたはインシデント・サービス・ログ610あるいはその両方は、コンポーネント612を介して(例えば、類似のログ行をクラスタ化することを容易にする、1つまたは複数のテンプレート化ベース技術を使用することによって)、エラー・メッセージ分類器情報602を使用して、および履歴ログ614を分析し、オフライン・テンプレート・マイニング616を実施することによって、あるモデルを学習して実装することにより、テンプレート608に縮小される。テンプレート608およびコンポーネント・フロー604に基づいて、少なくとも1つのエラー・メッセージに絞り込むために、呼び出し関係チェーン606全体へのエラー分布が決定される(例えば、関連するマイクロサービスごとにエラー・ログ頻度を判定すること、およびほぼ同じ分布を持つエラー同士を関連付けることによって)。この判定に少なくとも部分的に基づいて、識別可能なエラー・テンプレート618のランク付けされたリストが生成され、少なくとも1つの障害コンポーネント620、1つまたは複数の影響を受けるサービス622、および1つまたは複数の影響を受ける顧客624を判定するために使用される。
図7は、本発明の実施形態による、技術を描いたフロー図である。ステップ702は、少なくとも1つのシステムに向けられたイベント関連のアラートの1つまたは複数の特性を処理することによって、イベント関連のアラートを分類することを含む。少なくとも1つの実施形態では、イベント関連のアラートの1つまたは複数の特性を処理することは、イベント関連のアラートの少なくとも持続時間に関する時間的な情報を処理することを含む。
ステップ704は、イベント関連のアラートの分類に少なくとも部分的に基づいて、複数のアプリケーション・ログを取得することおよび処理することを含む。少なくとも1つの実施形態では、複数のアプリケーション・ログを取得することは、1つもしくは複数のエラー・ログを取得すること、または1つもしくは複数のイングレス・ログを取得すること、あるいはその両方を含む。そのような実施形態では、複数のアプリケーション・ログを処理することは、1つまたは複数のエラー・ログの少なくとも一部を、1つまたは複数のテンプレートに変換することを含む。
ステップ706は、複数のアプリケーション・ログを処理することに少なくとも部分的に基づいて、複数のアプリケーション・ログの中からエラー・ログを識別することを含む。少なくとも1つの実施形態では、エラー・ログを識別することは、1つもしくは複数の追跡技術を実施すること、または1つもしくは複数のエラー頻度に基づいて複数のアプリケーション・ログの中からエラー・メッセージを抽出すること、あるいはその両方を含む。
ステップ708は、1つまたは複数の優先順位付け技術を使用してエラー・ログを順序付けることを含む。少なくとも1つの実施形態では、1つまたは複数の優先順位付け技術を使用してエラー・ログを順序付けることは、アプリケーション・トポロジーを使用してエラー・テンプレートを順序付けること、エラー分布に基づいてエラー・ログを順序付けること、またはアラートの記述および1つもしくは複数のログ・メッセージから1つもしくは複数のエンティティを抽出すること、あるいはその組合せを含む。
ステップ710は、エラー・ログを順序付けすることに少なくとも部分的に基づいて、少なくとも1つの自動化されたアクションを実施することを含む。少なくとも1つの実施形態では、少なくとも1つの自動化されたアクションを実施することは、エラー・ログを順序付けすることに少なくとも部分的に基づいて、1つまたは複数の影響を受けるサービスを判定することを含む。追加的にまたは代替的に、少なくとも1つの自動化されたアクションを実施することは、エラー・ログを順序付けすること、およびエラー・ログの少なくとも一部から導出したポッド識別情報に少なくとも部分的に基づいて、少なくとも1つのポッドが機能していないという指示があると、少なくとも1つのポッドを再開始することを含むことが可能である。
また、1つまたは複数の実施形態は、クラウド環境内のサービスとして提供される図7に描かれる技術を実装することを含むことが可能である。
図7に描かれる技術はまた、本明細書で説明されるように、システムを提供することを含むことが可能であり、システムは別個のソフトウェア・モジュールを含み、別個のソフトウェア・モジュールのそれぞれは、有形なコンピュータ可読記録可能記憶媒体に具体化される。モジュールのすべて(またはその任意のサブセット)は、例えば同一の媒体上にあってもよいし、それぞれが異なる媒体上にあってもよい。モジュールは、図面で示されるコンポーネントまたは本明細書で説明されるコンポーネントあるいはその組合せの、いずれかまたはすべてを含むことが可能である。本発明の実施形態では、モジュールは、例えばハードウェア・プロセッサで実行することが可能である。この時、方法ステップは、ハードウェア・プロセッサで実行される、上述のようなシステムの別個のソフトウェア・モジュールを使用して実行することができる。さらには、コンピュータ・プログラム製品は、別個のソフトウェア・モジュールを有するシステムの提供を含め、本明細書において説明される少なくとも1つの方法ステップを実行するために実行されるように適合されたコードを有する有形なコンピュータ可読記録可能記憶媒体を含むことができる。
加えて、図7に描かれる技術は、データ処理システム中のコンピュータ可読記憶媒体に記憶されるコンピュータ使用可能プログラム・コードを含み得るコンピュータ・プログラム製品を用いて実装することが可能であり、コンピュータ使用可能プログラム・コードは、リモートのデータ処理システムからネットワーク上でダウンロードされたものである。また、本発明の実施形態では、コンピュータ・プログラム製品は、サーバ・データ処理システム内のコンピュータ可読記憶媒体に記憶されたコンピュータ使用可能プログラム・コードを含むことが可能であり、コンピュータ使用可能プログラム・コードは、リモートのシステムのコンピュータ可読記憶媒体における使用のために、リモートのデータ処理システムにネットワーク上でダウンロードされる。
本発明の実施形態またはその要素は、メモリと、そのメモリに結合され、例示的な方法ステップを実行するように構成された少なくとも1つのプロセッサとを含む装置の形態で実装することができる。
加えて、本発明の実施形態は、コンピュータまたはワークステーションで実行中のソフトウェアを利用することが可能である。図8を参照すると、そのような実装形態は、例えばプロセッサ802、メモリ804、ならびに例えばディスプレイ806およびキーボード808から形成される入出力インターフェースを利用することがある。本明細書で使用される際、用語「プロセッサ」は、例えばCPU(中央処理装置)または他の形態の処理回路あるいはその両方を含むデバイスなどの、あらゆる処理デバイスを含むよう意図される。さらには、用語「プロセッサ」は、2つ以上の個別のプロセッサを称する場合がある。用語「メモリ」は、例えばRAM(ランダム・アクセス・メモリ)、ROM(読み取り専用メモリ)、固定メモリ・デバイス(例えば、ハード・ドライブ)、リムーバブルのメモリ・デバイス(例えば、ディスケット)、フラッシュ・メモリなどのプロセッサまたはCPUに関連付けられるメモリを含むよう意図される。加えて、本明細書において使用される場合、「入出力インターフェース」という言い回しは、例えば処理ユニットへデータを入力するためのメカニズム(例えば、マウス)、および処理ユニットに関連付けられる結果を提供するためのメカニズム(例えば、プリンタ)を含むよう意図される。プロセッサ802、メモリ804、ならびにディスプレイ806およびキーボード808などの入出力インターフェースは、例えば、データ処理ユニット812の一部としてのバス810を介して相互接続することが可能である。好適な相互接続はまた、例えばバス810を介して、コンピュータ・ネットワークとインターフェースするように提供され得るネットワーク・カードなどのネットワーク・インターフェース814に対して、およびメディア818とインターフェースするように提供され得るディスケットまたはCD-ROMドライブなどのメディア・インターフェース816に対しても設けることができる。
したがって、本発明の方法を実行するための命令またはコードを含むコンピュータ・ソフトウェアは、本明細書において説明されるように、関連するメモリ・ドライブ(例えば、ROM、固定またはリムーバブルのメモリ)に記憶することができ、利用される用意ができると、部分的または全体的に(例えば、RAMに)ロードされ、CPUによって実装することができる。そのようなソフトウェアとしては、ファームウェア、常駐ソフトウェア、マイクロコードなどが含まれる可能性あるが、それに限定されない。
プログラム・コードを記憶することまたは実行することあるいはその両方に好適なデータ処理システムは、直接的にまたは間接的にシステム・バス810を介してメモリ要素804に結合された少なくとも1つのプロセッサ802を含む。メモリ要素としては、プログラム・コードの実際の実行中に利用されるローカル・メモリ、バルク・ストレージ、および実行中にコードがバルク・ストレージから検索されなければならない回数を減らすために、少なくともいくつかのプログラム・コードの一時的な記憶を提供するキャッシュ・メモリを挙げることができる。
入出力デバイス、すなわちI/Oデバイス(キーボード808、ディスプレイ806、ポインティング・デバイスなどを含むがそれに限定されない)は、直接的に(バス810を介するなど)、または介在的なI/Oコントローラ(分かりやすくするために省略)を通じてのいずれかで、システムに結合することができる。
データ処理システムが、介在的なプライベートまたはパブリックなネットワークを通じて他のデータ処理システムまたはリモートのプリンタもしくはストレージ・デバイスに結合することができるようにするために、ネットワーク・インターフェース814などのネットワーク・アダプタはまた、システムに結合することもできる。現在利用可能なタイプのネットワーク・アダプタとしては、モデム、ケーブル・モデム、およびイーサネット(R)・カードなどが挙げられる。
特許請求の範囲を含め、本明細書において使用される場合、「サーバ」には、サーバ・プログラムを実行中の物理的なデータ処理システム(例えば、図8に示されるようなシステム812)が含まれる。そのような物理的なサーバは、ディスプレイおよびキーボードを含んでもよいし、含んでいなくてもよいことを理解されたい。
本発明は、統合のあらゆる可能な技術的詳細レベルにおける、システム、方法、またはコンピュータ・プログラム製品あるいはその組合せであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体を含むことができる。
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶することができる有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイスまたは前述のあらゆる好適な組合せであってもよいが、それに限定はしない。コンピュータ可読記憶媒体のより具体的な例の非網羅的な列挙としては、以下が挙げられる:ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピ・ディスク、命令が記録されたパンチカードまたは溝に刻まれた構造などの機械的にエンコードされたデバイス、および前述のあらゆる好適な組合せ。本明細書において使用される場合、コンピュータ可読記憶媒体は、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の送信媒体を介して伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または電線を介して伝送される電気的信号など、一過性の信号そのものであると解釈されてはならない。
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、個別のコンピューティング/処理デバイスに、あるいは、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはその組合せなどのネットワークを介して、外部のコンピュータまたは外部のストレージ・デバイスに、ダウンロードすることができる。ネットワークは、銅の送信ケーブル、光学送信ファイバ、無線送信、ルータ、ファイヤウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバあるいはその組合せを含むことができる。それぞれのコンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、個別のコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいはSmalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語などの手続き型プログラミング言語もしくは類似するプログラミング言語、を含む1つまたは複数のプログラミング言語のあらゆる組合せで記述された、ソース・コードまたはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、すべてユーザのコンピュータ上で、一部はユーザのコンピュータ上でスタンドアロンのソフトウェア・パッケージとして、一部はユーザのコンピュータ上で一部はリモートのコンピュータ上で、またはすべてリモートのコンピュータ上もしくはサーバ上で、実行することができる。後者のシナリオでは、リモートのコンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含むあらゆるタイプのネットワークを介してユーザのコンピュータに接続することができ、または接続は外部のコンピュータ(例えば、インターネット・サービス・プロバイダを使用するインターネットを介して)に対してなされてもよい。一部の実施形態において、例えば、プログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行して電子回路を個別化することができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフロー・チャート図またはブロック図あるいはその両方を参照しながら本明細書において説明される。フロー・チャート図またはブロック図あるいはその両方のそれぞれのブロック、およびフロー・チャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実装され得ることが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行する命令が、フロー・チャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/作用を実施する手段を作成すべく、コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて機械を作るものであってよい。これらのコンピュータ可読プログラム命令はまた、命令が記憶されているコンピュータ可読記憶媒体が、フロー・チャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/作用の態様を実装する命令を含む製造物品を備えるべく、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに特定のやり方で機能するように指示することができるコンピュータ可読記憶媒体に記憶されてもよい。
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイスで実行する命令が、フロー・チャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/作用を実施するように、コンピュータ実装プロセスを作るべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実施させるものであってもよい。
図面中のフロー・チャートおよびブロック図は、本発明の様々な実施形態にしたがって、システム、方法、およびコンピュータ・プログラム製品の可能な実装形態の、アーキテクチャ、機能性、および動作を図示している。この点において、フロー・チャートまたはブロック図のそれぞれのブロックは、指定される論理機能を実施するための1つまたは複数の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表現することができる。一部の代替的な実装形態において、ブロックにおいて示した機能は図面で示した順とは異なって発生してもよい。例えば、連続して示される2つのブロックは、実際には1つのステップとして遂行されてもよく、同時に、実質的に同時に、部分的もしくは全体的に時間的に重なるやり方で実行されてもよく、またはブロックは関与する機能性によっては、時に逆の順で実行されてもよい。ブロック図またはフロー・チャート図あるいはその両方のそれぞれのブロック、およびブロック図またはフロー・チャート図あるいはその両方のブロックの組合せは、指定される機能もしくは作用を実施する、または特殊目的ハードウェアとコンピュータ命令との組合せを実行する、特殊目的ハードウェア・ベースのシステムによって実装され得ることにも留意されたい。
本明細書で説明される方法のいずれも、コンピュータ可読記憶媒体に具体化される別個のソフトウェア・モジュールを含むシステムを提供する追加的なステップを含むことが可能であり、モジュールは、例えば、本明細書で詳細に説明されるコンポーネントのいずれかまたはすべてを含むことが可能であることに留意されたい。この時、方法ステップは、ハードウェア・プロセッサ802で実行される、上述のようなシステムの別個のソフトウェア・モジュールまたはサブモジュールあるいはその両方を使用して遂行することができる。さらには、コンピュータ・プログラム製品は、別個のソフトウェア・モジュールを有するシステムの提供を含め、本明細書において説明される少なくとも1つの方法ステップを実行するために実装されるように適合されたコードを有するコンピュータ可読記憶媒体を含むことができる。
いずれにせよ、本明細書で例示されるコンポーネントは、様々な形態のハードウェア、ソフトウェア、またはそれらの組合せ、例えば特定用途向け集積回路(ASIC)、機能的な回路網、関連メモリを有する適当にプログラムされたデジタル・コンピュータなどに実装することが可能であることを理解されたい。本明細書で提供される本発明の教示が与えられれば、当業者は本発明のコンポーネントの他の実装形態を検討することができるであろう。
加えて、本明細書で述べられる教示の実装形態は、特定のコンピューティング環境に限定されないことを、まず理解されたい。むしろ、本発明の実施形態は、現在既知の、または後に開発されるあらゆるタイプのコンピューティング環境と併せて実装することができる。
例えば、クラウド・コンピューティングは、構成可能なコンピューティング・リソースの共有プール(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想機械、およびサービス)への便利でオンデマンドのネットワーク・アクセスを可能とするためのサービス提供のモデルであり、最小限の管理努力で、またはサービスのプロバイダとの対話で迅速にプロビジョニングおよびリリースすることができる。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含むことができる。
特徴は以下のとおりである:
オン・デマンドなセルフサービス:クラウド消費者は、サービスのプロバイダとの人間対話を要求することなく必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能を一方的にプロビジョニングすることができる。
幅広いネットワーク・アクセス:機能はネットワーク上で利用可能であり、異質なシン・クライアントまたはシック・クライアントのプラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準的なメカニズムを通じてアクセスされる。
リソース・プール:プロバイダのコンピューティング・リソースは、マルチテナントのモデルを使用して複数の消費者にサービス提供するためにプールされ、異なる物理的および仮想的なリソースが需要に応じて動的に割り当ておよび再割り当てされる。消費者が、提供されるリソースの正確な場所についての制御または情報を一般的に持たない点で、場所独立性の意味があるが、高い抽象レベル(例えば、国、州、またはデータセンタ)で場所を特定できることもある。
迅速な拡張性:機能は迅速かつ拡張可能にプロビジョニングすることができ、いくつかの場合において、自動的に、素早くスケール・アウトされ、迅速にリリースされて素早くスケール・インされる。消費者にとって、プロビジョニングのために利用可能な機能は、しばしば無制限に見え、いつでもいくらでも購入することができる。
サービスの計測:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザ・アカウント)に適当な抽象化のいくつかのレベルにおいて計測機能を活用することによりリソースの使用を自動的に制御し、最適化する。リソースの使用量は監視され、制御され、および報告され得、利用されるサービスのプロバイダおよび消費者の両方にとって透明性を与えている。
サービス・モデルは以下のとおりである:
サービスとしてのソフトウェア(Software as a Service(SaaS)):消費者に提供される機能は、クラウド・インフラストラクチャで実行するプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザなどのシン・クライアント・インターフェース(例えば、ウェブ・ベースの電子メール)を通じて様々なクライアント・デバイスからアクセス可能である。消費者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、またはさらには個々のアプリケーション機能を含む基礎となるクラウド・インフラストラクチャを管理または制御することはなく、例外として限定されたユーザ固有アプリケーションの構成設定が可能である。
サービスとしてのプラットフォーム(Platform as a Service(PaaS)):消費者に提供される機能は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者作成の、または取得されたアプリケーションをクラウド・インフラストラクチャに展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎となるクラウド・インフラストラクチャの管理または制御をしないが、展開されたアプリケーション、および場合によっては環境構成をホストするアプリケーションについての制御を有する。
サービスとしてのインフラストラクチャ(Infrastructure as a Service(IaaS)):消費者に提供される機能は、任意のソフトウェアを消費者が展開および実行することができる処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングすることであり、これにはオペレーティング・システムおよびアプリケーションが含まれ得る。消費者は、基礎となるクラウド・インフラストラクチャの管理または制御をしないが、オペレーティング・システム、ストレージ、展開されたアプリケーションの制御、および場合によっては選択ネットワーキング・コンポーネント(例えば、ホスト・ファイヤウォール)の限定された制御を有する。
展開モデルは以下のとおりである:
プライベート・クラウド:クラウド・インフラストラクチャは、ある組織のためだけに運用される。その組織またはサード・パーティによって管理され得、オンプレミスまたはオフプレミスで存在することができる。
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織によって共有され、共有される事案(例えば、ミッション、セキュリティ要件、ポリシ、およびコンプライアンス懸案事項)を有する特定のコミュニティをサポートする。その組織またはサード・パーティによって管理され得、オンプレミスまたはオフプレミスで存在することができる。
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆または大規模な業界団体に対して利用可能とされ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、一意なエンティティのままである2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)を組み合わせたものであるが、データおよびアプリケーションのポータビリティを可能にする標準化された、または専有的な技術(例えば、クラウド間でロード・バランシングを行うためのクラウド・バースト)によって結合される。
クラウド・コンピューティング環境は、ステートレス性、低い結合性、モジュール性、および意味論的な相互運用性に焦点をあてたサービス指向である。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
次に図9を参照すると、例示的なクラウド・コンピューティング環境50が描写されている。示されるように、クラウド・コンピューティング環境50は、例えば、携帯情報端末(PDA)または携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54Nあるいはその組合せなど、クラウドの消費者によって使用されるローカルのコンピューティング・デバイスと通信することができる1つまたは複数のクラウド・コンピューティング・ノード10を含む。ノード10は互いに通信することができる。これらは、本明細書において上述したようなプライベート、コミュニティ、パブリック、もしくはハイブリッドのクラウド、またはそれらの組合せなど、1つまたは複数のネットワークにおいて、物理的または仮想的にグループ化することができる(図示せず)。これにより、クラウド・コンピューティング環境50は、クラウドの消費者がローカルのコンピューティング・デバイスでリソースを維持する必要のない、インフラストラクチャ、プラットフォーム、またはソフトウェアあるいはその組合せをサービスとして提供することができる。図9に示されるコンピューティング・デバイス54A~Nのタイプは、単に例示的であることを意図されており、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、あらゆるタイプのネットワーク上またはネットワーク・アドレス可能接続で(例えば、ウェブ・ブラウザを使用して)あるいはその両方で、あらゆるタイプのコンピュータ化されたデバイスと通信することができることが理解されよう。
次に図10を参照すると、クラウド・コンピューティング環境50(図9)によって提供される機能的な抽象化レイヤのセットが示されている。図10に示されるコンポーネント、レイヤ、および機能は、単に例示的であることを意図されており、本発明の実施形態はそれに限定されないことが、予め理解されるべきである。描写されるように、以下のレイヤおよび対応する機能が提供される。
ハードウェアおよびソフトウェア・レイヤ60は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例として、以下が挙げられる:メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーキング・コンポーネント66。いくつかの実施形態において、ソフトウェア・コンポーネントとしては、ネットワーク・アプリケーション・サーバ・ソフトウェア67、およびデータベース・ソフトウェア68が挙げられる。
仮想化レイヤ70は、仮想エンティティの以下の例が提供され得る抽象化レイヤを提供する:仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75。一例において、管理レイヤ80は以下で説明される機能を提供することができる。リソース・プロビジョニング81は、コンピューティング・リソースおよびクラウド・コンピューティング環境内でタスクを実施するために利用される他のリソースの動的な調達を提供する。計測および課金82は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費についての課金または請求書発行を提供する。
一例において、これらのリソースはアプリケーション・ソフトウェア・ライセンスを含む場合がある。セキュリティは、クラウド消費者およびタスクについての識別情報の検証、ならびにデータおよび他のリソースについての保護を与える。ユーザ・ポータル83は、クラウド・コンピューティング環境へのアクセスを消費者およびシステム管理者に提供する。サービス水準管理84は、要求されるサービス水準が満たされるように、クラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス水準合意(SLA)計画および遂行85は、SLAにしたがって将来的な要求が予期されるクラウド・コンピューティング・リソースについての事前申し合わせ、およびクラウド・コンピューティング・リソースの調達を提供する。
ワークロード・レイヤ90はクラウド・コンピューティング環境が利用され得る機能性の例を提供する。このレイヤからもたらされ得るワークロードおよび機能の例として以下が挙げられる:マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想授業教育配信93、データ分析処理94、取引処理95、ならびに本発明の1つまたは複数の実施形態による、障害場所特定96。
本明細書で使用される用語法は、特定の実施形態を説明するためだけのものであり、本発明を限定することを意図されていない。本明細書で使用される場合、コンテキストが明確にそうではないと指示しない限り、単数形「1つの(a)」、「1つの(an)」および「その(the)」は複数形を同様に含むように意図されている。用語「を含む(comprise)」または「を含む(comprising)」あるいはその両方は、本明細書で使用される場合、述べられた特徴、ステップ、動作、要素、またはコンポーネントあるいはその組合せの存在を特定するが、別の特徴、ステップ、動作、要素、コンポーネントまたはそのグループあるいはその組合せの、存在または追加を排除しないことが、さらに理解されよう。
本発明の少なくとも1つの実施形態は、例えば潜在的な障害を特定するために、ランタイム・サービス呼び出し関係グラフのトポロジー的なソートを使用して、クラウドネイティブでハイブリッドなアプリケーション向けの障害場所特定を提供するなどの、有益な効果を提供することができる。
例示を目的として本発明の様々な実施形態の説明を提示してきたが、網羅的であること、または開示された実施形態に限定することは意図されていない。説明された実施形態の範囲から逸脱することなく、多くの修正形態および変形形態が当業者にとって明らかとなろう。本明細書において使用される用語法は、実施形態の原理、実践的な用途もしくは市場で見られる技術より優れた技術的な改善を最良に説明するため、または当業者の他の者が本明細書において開示される実施形態を理解できるように選ばれたものである。

Claims (20)

  1. コンピュータ実装方法であって、
    少なくとも1つのシステムに向けられたイベント関連のアラートの1つまたは複数の特性を処理することによって、前記イベント関連のアラートを分類することと、
    前記イベント関連のアラートの前記分類に少なくとも部分的に基づいて、複数のアプリケーション・ログを取得することおよび処理することと、
    前記複数のアプリケーション・ログを前記処理することに少なくとも部分的に基づいて、前記複数のアプリケーション・ログの中からエラー・ログを識別することと、
    1つまたは複数の優先順位付け技術を使用して前記エラー・ログを順序付けすることと、
    前記エラー・ログを前記順序付けすることに少なくとも部分的に基づいて、少なくとも1つの自動化されたアクションを実施することと
    を含み、前記方法が、少なくとも1つのコンピューティング・デバイスによって実行される、コンピュータ実装方法。
  2. 前記イベント関連のアラートの1つまたは複数の特性を前記処理することが、前記イベント関連のアラートの少なくとも持続時間に関する時間的な情報を処理することを含む、請求項1に記載のコンピュータ実装方法。
  3. 前記複数のアプリケーション・ログを前記取得することが、1つまたは複数のエラー・ログを取得することを含む、請求項1に記載のコンピュータ実装方法。
  4. 前記複数のアプリケーション・ログを前記処理することが、前記1つまたは複数のエラー・ログの少なくとも一部を、1つまたは複数のテンプレートに変換することを含む、請求項3に記載のコンピュータ実装方法。
  5. 前記複数のアプリケーション・ログを前記取得することが、1つまたは複数のイングレス・ログを取得することを含む、請求項1に記載のコンピュータ実装方法。
  6. 前記1つまたは複数の優先順位付け技術を使用して前記エラー・ログを順序付けすることが、アプリケーション・トポロジーを使用してエラー・テンプレートを順序付けすることを含む、請求項1に記載のコンピュータ実装方法。
  7. 前記1つまたは複数の優先順位付け技術を使用して前記エラー・ログを順序付けすることが、エラー分布に基づいて前記エラー・ログを順序付けすることを含む、請求項1に記載のコンピュータ実装方法。
  8. 前記1つまたは複数の優先順位付け技術を使用して前記エラー・ログを順序付けすることが、前記アラートの記述および1つまたは複数のログ・メッセージから1つまたは複数のエンティティを抽出することを含む、請求項1に記載のコンピュータ実装方法。
  9. 前記エラー・ログを前記識別することが、1つまたは複数の追跡技術を実施することを含む、請求項1に記載のコンピュータ実装方法。
  10. 前記エラー・ログを前記識別することが、1つまたは複数のエラー頻度に基づいて前記複数のアプリケーション・ログの中からエラー・メッセージを抽出することを含む、請求項1に記載のコンピュータ実装方法。
  11. 前記少なくとも1つの自動化されたアクションを前記実施することが、前記エラー・ログを前記順序付けすることに少なくとも部分的に基づいて、1つまたは複数の影響を受けるサービスを判定することを含む、請求項1に記載のコンピュータ実装方法。
  12. 前記少なくとも1つの自動化されたアクションを実施することが、前記エラー・ログを前記順序付けすることおよび前記エラー・ログの少なくとも一部から導出したポッド識別情報に少なくとも部分的に基づいて、少なくとも1つのポッドが機能していないという指示があると、前記少なくとも1つのポッドを再開始することを含む、請求項1に記載のコンピュータ実装方法。
  13. 前記方法を実装するソフトウェアが、クラウド環境内のサービスとして提供される、請求項1に記載のコンピュータ実装方法。
  14. プログラム命令が具体化されたコンピュータ可読記憶媒体を含む、コンピュータ・プログラム製品であって、コンピューティング・デバイスによって実行可能な前記プログラム命令が、前記コンピューティング・デバイスに、
    少なくとも1つのシステムに向けられたイベント関連のアラートの1つまたは複数の特性を処理することによって、前記イベント関連のアラートを分類することと、
    前記イベント関連のアラートの前記分類に少なくとも部分的に基づいて、複数のアプリケーション・ログを取得することおよび処理することと、
    前記複数のアプリケーション・ログを前記処理することに少なくとも部分的に基づいて、前記複数のアプリケーション・ログの中からエラー・ログを識別することと、
    1つまたは複数の優先順位付け技術を使用して前記エラー・ログを順序付けすることと、
    前記エラー・ログを前記順序付けすることに少なくとも部分的に基づいて、少なくとも1つの自動化されたアクションを実施することと
    を行わせる、コンピュータ・プログラム製品。
  15. 前記イベント関連のアラートの1つまたは複数の特性を前記処理することが、前記イベント関連のアラートの少なくとも持続時間に関する時間的な情報を処理することを含む、請求項14に記載のコンピュータ・プログラム製品。
  16. 前記1つまたは複数の優先順位付け技術を使用して前記エラー・ログを順序付けすることが、アプリケーション・トポロジーを使用してエラー・テンプレートを順序付けすることを含む、請求項14に記載のコンピュータ・プログラム製品。
  17. 前記1つまたは複数の優先順位付け技術を使用して前記エラー・ログを順序付けすることが、エラー分布に基づいて前記エラー・ログを順序付けすることを含む、請求項14に記載のコンピュータ・プログラム製品。
  18. システムであって、
    メモリと、
    前記メモリに動作可能に結合された少なくとも1つのプロセッサであり、
    少なくとも1つのシステムに向けられたイベント関連のアラートの1つまたは複数の特性を処理することによって、前記イベント関連のアラートを分類することと、
    前記イベント関連のアラートの前記分類に少なくとも部分的に基づいて、複数のアプリケーション・ログを取得することおよび処理することと、
    前記複数のアプリケーション・ログを前記処理することに少なくとも部分的に基づいて、前記複数のアプリケーション・ログの中からエラー・ログを識別することと、
    1つまたは複数の優先順位付け技術を使用して前記エラー・ログを順序付けすることと、
    前記エラー・ログを前記順序付けすることに少なくとも部分的に基づいて、少なくとも1つの自動化されたアクションを実施することと
    を行うように構成された、前記少なくとも1つのプロセッサと
    を備える、システム。
  19. 前記イベント関連のアラートの1つまたは複数の特性を前記処理することが、前記イベント関連のアラートの少なくとも持続時間に関する時間的な情報を処理することを含む、請求項18に記載のシステム。
  20. 前記1つまたは複数の優先順位付け技術を使用して前記エラー・ログを順序付けすることが、アプリケーション・トポロジーを使用してエラー・テンプレートを順序付けすること、およびエラー分布に基づいて前記エラー・ログを順序付けすることのうちの少なくとも1つを含む、請求項18に記載のシステム。
JP2023511540A 2020-08-24 2021-07-16 クラウドネイティブなアプリケーション向けの障害場所特定 Pending JP2023537769A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/000,593 US11411811B2 (en) 2020-08-24 2020-08-24 Fault localization for cloud-native applications
US17/000,593 2020-08-24
PCT/CN2021/106717 WO2022042126A1 (en) 2020-08-24 2021-07-16 Fault localization for cloud-native applications

Publications (1)

Publication Number Publication Date
JP2023537769A true JP2023537769A (ja) 2023-09-05

Family

ID=80269030

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023511540A Pending JP2023537769A (ja) 2020-08-24 2021-07-16 クラウドネイティブなアプリケーション向けの障害場所特定

Country Status (6)

Country Link
US (1) US11411811B2 (ja)
JP (1) JP2023537769A (ja)
CN (1) CN116194894A (ja)
DE (1) DE112021003657T5 (ja)
GB (1) GB2612749A (ja)
WO (1) WO2022042126A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11803438B2 (en) * 2021-07-13 2023-10-31 Adp, Inc. Message call request data having error frequency metrics
US11748219B1 (en) 2022-09-14 2023-09-05 International Business Machines Corporation Application event logging augmentation

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6708137B2 (en) * 2001-07-16 2004-03-16 Cable & Wireless Internet Services, Inc. System and method for providing composite variance analysis for network operation
GB0311808D0 (en) 2003-05-22 2003-06-25 Tektronix Inc User interface for an event monitor
US7266726B1 (en) * 2003-11-24 2007-09-04 Time Warner Cable Inc. Methods and apparatus for event logging in an information network
US7664249B2 (en) * 2004-06-30 2010-02-16 Microsoft Corporation Methods and interfaces for probing and understanding behaviors of alerting and filtering systems based on models and simulation from logs
US7788536B1 (en) * 2004-12-21 2010-08-31 Zenprise, Inc. Automated detection of problems in software application deployments
US20110314148A1 (en) * 2005-11-12 2011-12-22 LogRhythm Inc. Log collection, structuring and processing
US7251584B1 (en) * 2006-03-14 2007-07-31 International Business Machines Corporation Incremental detection and visualization of problem patterns and symptoms based monitored events
US20080126878A1 (en) * 2006-11-28 2008-05-29 International Business Machines Corporation Highlighting anomalies when displaying trace results
US8589727B1 (en) * 2008-02-04 2013-11-19 Neverfail Group Limited Methods and apparatus for providing continuous availability of applications
US9384112B2 (en) * 2010-07-01 2016-07-05 Logrhythm, Inc. Log collection, structuring and processing
US20140317459A1 (en) 2013-04-18 2014-10-23 Intronis, Inc. Backup system defect detection
CN103617109B (zh) 2013-10-23 2016-04-27 上海华力微电子有限公司 探针机台日志文件的警告处理***和方法
US10452992B2 (en) * 2014-06-30 2019-10-22 Amazon Technologies, Inc. Interactive interfaces for machine learning model evaluations
US10296443B2 (en) 2015-10-09 2019-05-21 The Board Of Trustees Of The University Of Illinois Automatically predicting faults that caused software failures using a Markov logic network
CN107133240B (zh) 2016-02-29 2020-09-11 阿里巴巴集团控股有限公司 页面监控方法、装置及***
US11281518B2 (en) 2017-02-24 2022-03-22 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for fault localization in a cloud environment
CN107608860B (zh) 2017-09-29 2021-04-23 郑州云海信息技术有限公司 一种错误日志分类存储的方法、装置、设备
US10425437B1 (en) * 2017-11-27 2019-09-24 Lacework Inc. Extended user session tracking
US10810074B2 (en) * 2018-12-19 2020-10-20 Microsoft Technology Licensing, Llc Unified error monitoring, alerting, and debugging of distributed systems

Also Published As

Publication number Publication date
US11411811B2 (en) 2022-08-09
GB2612749A (en) 2023-05-10
CN116194894A (zh) 2023-05-30
US20220060371A1 (en) 2022-02-24
DE112021003657T5 (de) 2023-06-29
WO2022042126A1 (en) 2022-03-03
GB202302662D0 (en) 2023-04-12

Similar Documents

Publication Publication Date Title
US10642725B2 (en) Automated test generation for multi-interface enterprise virtualization management environment
US11062231B2 (en) Supervised learning system training using chatbot interaction
US9921952B2 (en) Early risk identification in DevOps environments
US11023325B2 (en) Resolving and preventing computer system failures caused by changes to the installed software
US20200117529A1 (en) Diagnosis of data center incidents with augmented reality and cognitive analytics
US11474905B2 (en) Identifying harmful containers
US10552306B2 (en) Automated test generation for multi-interface and multi-platform enterprise virtualization management environment
US10216617B2 (en) Automatically complete a specific software task using hidden tags
JP2023537769A (ja) クラウドネイティブなアプリケーション向けの障害場所特定
JP2023502910A (ja) 運用管理におけるイベント・ストームの構成要素イベントの識別
US20180276096A1 (en) On demand monitoring mechanism to identify root cause of operation problems
US11775654B2 (en) Anomaly detection with impact assessment
US20220215286A1 (en) Active learning improving similar task recommendations
US11178025B1 (en) Automated incident prioritization in network monitoring systems
JP2023535959A (ja) 開発プロセス中の開発者の時間の計算
US20200133826A1 (en) Testing an online system for service oriented architecture (soa) services
US11151121B2 (en) Selective diagnostics for computing systems
US11782764B2 (en) Differentiated workload telemetry
US11381496B1 (en) Testing a two-phase commit protocol conformance of a cloud based online transaction processing platform
US20220291953A1 (en) Dynamically validating hosts using ai before scheduling a workload in a hybrid cloud environment
US20220253522A1 (en) Continues integration and continues deployment pipeline security
US20220368586A1 (en) Scoring events as likely cause events in a resource network
US20210294682A1 (en) Predicting cost reduction of event correlation in fault event management
EP4158482A1 (en) Application topology discovery

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230309

RD16 Notification of change of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7436

Effective date: 20230307

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231212