収集されたデータを分析するための AI エンジンの実行

AI エンジンを使用して、収集されたデータを分析し、アプリケーションをパーティション化する方法に関する推奨情報を取得します。 パーティションは、マイクロサービスの出発点となるモノリス Java® クラスのグループ化です。

このタスクについて

AI エンジンを実行して、収集されたデータを分析し、パーティション推奨を生成します。 AI エンジンが実行されると、以下のようになります。
  1. ランタイム・トレースの一部を、ユース・ケース・レコーダーによって生成される JSON 出力に取り込まれるユース・ケース・コンテキスト情報と関連付けます。 詳しくは、 モノリシックに関するデータの収集 を参照してください。
    • ランタイム・トレースは、インスツルメントされた Java モノリシック・アプリケーションのビジネス・ケース実行から発生します。
    • JSON 形式のユース・ケース・レコーダー出力では、テスト・ケースに関連付けられたタイム・スタンプが使用されます。
  2. を実行する。 IBM® Mono2Micro™ AIエンジンを実行し、ランタイムログを分析する。
  3. 分析を実行して、推奨パーティションの詳細な呼び出し分析レポートを作成します。 詳しくは、 グラフ・ビューのエレメント を参照してください。
  4. 必要なファイルを含むディレクトリー構造を作成します。これらのファイルは、 IBM Mono2Micro コード生成コンポーネントによって使用されます。

開始前に

システム要件 および以下の AI エンジン要件を満たしていることを確認してください。

  • AI エンジンでは、収集されたデータを分析するために、最上位ディレクトリーに config.ini ファイルが必要です。 config.ini ファイルが指定されていない場合は、デフォルト設定でファイルが作成されます。 AI エンジンは、この最上位ディレクトリーに mono2micro-outputmono2micro-workspaceの 2 つのサブフォルダーを自動的に作成します。
  • config.ini ファイルでは、データ収集フェーズ中に収集されるデータのさまざまなカテゴリーの相対的な場所を指定できます。 以下の構造は、 config.ini ファイルの [LogProcessor] 段落にある、収集されたデータの 3 つのカテゴリーすべてのデフォルト相対ロケーションを示しています。
    [LogProcessor]
    RunlogDir = ログ
    ContextDir = コンテキスト
    TableDir = テーブル
  • config.ini ファイルでは、 RunlogDirContextDir、および TableDir 属性の値を、以下の項目を含むログ・ファイルの場所に設定する必要があります。
    • ランタイム・テンポラル・フロー・トレース。
    • ユース・ケース・レコーダーが生成した JSON ファイル。
    • Java モノリシック・アプリケーションの分析中にコード・アナライザーによって作成されたすべてのファイル。
    デイトレーダー・トレース
      ├────── config.ini
      ├────────────────────────────────
      │  └── daytrader.json
      過去ログ
      │  └── console.log
      テーブル
         ├── instrumenter-config.json
         ├── recommender-config.properties
    refTable ├─00.json
    symTable └─00.json

    例えば、前の図はデフォルトのディレクトリー構造を示しています。 この構造は、Daytrader アプリケーション用に収集されます。であるデータ全体がdaytrader-traceディレクトリーの下にある場合に、3 つのすべてのコンテンツ・カテゴリーを表示します。 logs ディレクトリーには、 WebSphere® Application Server Libertyでホストされるサンプル・テスト・アプリケーションである Daytrader に対応するログ・ファイルが含まれています。 実稼働アプリケーションの場合は、複数のログ・ファイルを持つことができます。 config.ini ファイルのロケーションは、デフォルトの config.ini ファイルが作成されるロケーションと同じ場所になることに注意してください。

手順

  1. AI エンジンを実行します。 mono2micro recommend コマンドを実行するための構文を例に示します。
    mono2micro recommend -d <collected-data-dir-path>

    このコマンドで、 <collected-data-dir-path> は、対象となっている Java モノリシック・アプリケーションについて指定された形式で収集されたすべてのデータが含まれているディレクトリーのパス名です。

    コマンドとそのオプションに関する詳細情報を取得するには、 mono2micro recommend --help コマンドを実行します。

    注: AI エンジンを実行するユーザーには、 <collected-data-dir-path> ディレクトリーに対する読み取り権限と書き込み権限が必要です。 この読み取り権限と書き込み権限により、AI エンジンが <collected-data-dir-path> ディレクトリーに新しいファイルとディレクトリーを作成できるようになります。
  2. AI エンジンが実行されると、さまざまなステップの進行状況に関するいくつかの通知メッセージが発行されます。 より詳細な情報を得るには、 config.ini ファイルの [Global] 段落で、 LoggingLevel パラメーターを WARN から INFO に変更します。 --verbose フラグを指定して mono2micro recommend コマンドを実行して、詳細情報を表示することもできます。
    注: AI エンジンの実行はステートフルであり、チェックポイント・メカニズムが組み込まれています。 実行中に障害が発生した場合、または構成パラメーターを変更したい場合は、実行中の任意のポイントからチェックポイント・メカニズムを再始動することができます。 AI エンジンを構成変更なしで再実行すると、ノーオペレーションになります。 また、 config.ini ファイル内のさまざまなパラメーターを変更して、追加のレポートを生成することもできます。 いくつかの AI チューニング・パラメーターを試すこともできます。これにより、一部の Java モノリシック・アプリケーションのパーティション推奨が変更される可能性があります。

結果

  • 正常に実行されると、AI エンジンは、2 つのサブディレクトリー mono2micro-output および mono2micro-workspaceを持つ mono2micro 出力ディレクトリーを作成します。

    mono2micro-output ディレクトリーには、AI 分析の最終出力と、コード生成に必要なすべての情報が含まれています。

    mono2micro-workspace ディレクトリーには、AI 分析の中間結果が含まれています。通常、このディレクトリーの内容を調べる必要はありません。 パーティション推奨機能を試してみたい場合は、選択した AI パラメーター (例えば、 MaxNumPartitions パラメーター) をチューニングしてから、AI エンジンを再実行することができます。 AI エンジンは mono2micro-workspace ディレクトリーの内容を使用するため、その内容を削除したり変更したりしないでください。

  • AI エンジンを実行すると、デフォルトの config.ini ファイルとディレクトリー構造が作成されます。

    推奨コマンド実行前のディレクトリー構造
    デイトレーダー・トレース
    文脈
    ログ
    テーブル
    推奨コマンド実行後のディレクトリー構造
    デイトレーダー・トレース
        ├── config.ini
    文脈
    ログ
        ├── mono2micro
        │   ├── mono2micro-output
        │   └── mono2micro-workspace
    テーブル
  • 次の図は、mono2micro-outputディレクトリーの構造と内容を詳細に示しています。 mono2micro-outputディレクトリーには、以下の 3 つの HTML レポートが含まれます。
    • Cardinal-Report.htmlJava 呼び出し分析の詳細が含まれます。
    • Inheritance-Report.htmlJava モノリシック・アプリケーション・クラスの分析で検出された継承階層に関する情報が含まれます。
    • Oriole-Report.html。これには、パーティションの推奨事項の詳細が含まれます。

    これらのレポートについて詳しくは、 Oriole 、 Cardinal 、および Inheritance レポートを参照してください。

  • cardinal ディレクトリー内のファイルは、 Mono2Micro コード・ジェネレーターに必要です。 詳細については、 マイクロサービス用のスターターコードを生成するを参照してください。
    注: コード生成に必要な refTable.json ファイルと symTable.json ファイルは、 daytrader-trace/mono2micro/mono2micro-output/cardinal ディレクトリーの daytrader-trace/tables ディレクトリーにコピーされます。

    oriole ディレクトリーには、 final_graph.json ファイルが含まれています。このファイルには、パーティション推奨が含まれています。 このファイルは、 IBM Mono2Micro ワークベンチ UI に表示されます。 詳しくは、 パーティションに関する推奨事項をご覧ください。

    mono2micro
           ├── mono2micro-output
           │   ├── Cardinal-Report.html
           │   ├── Inheritance-Report.html
           │   ├── Oriole-Report.html
           カーディナル
           │   │   ├── app_config.txt
           │   │   ├── cardinal_graph.json
           │   │   ├── class_run.json
           │   │   ├── partition.txt
           refTable │ ├─00.json
           symTable │ └─00.json
           │   ├── coverage.txt
           │   ├── graph_view.txt
           オリオール
           │       └── final_graph.json
           └── mono2micro-workspace