Javaエージェントのコンテキスト ベース監視

アプリケーション サーバーでJavaアプリケーションが3つ稼働しているものとします。

デフォルトでは、同じサーバーからの全アプリのトランザクション情報が、まとめてAPMインサイトのWebトランザクション タブに表示されます。

下記の画像のとおり、「TomcatApplications」がアプリケーション監視の名前で、jpetstore、sample、SampleWebAppが同じアプリケーション サーバーで実行中の3つのコンテキストです。

Java単一アプリ監視の例

これら3つのアプリケーションのトランザクションは、Webトランザクション タブに表示されます。

Javaトランザクション ビュー

コンテキスト ベース監視を利用すれば、同じアプリケーション サーバーで実行中の全個別アプリのパフォーマンスを分けて監視でき、アプリケーションのパフォーマンスをより細かく分析できます。

すなわち、コンテキスト ベース監視を有効にすると、jpetstore、SampleWebApp、sampleは別々に表示されるようになります。

コンテキスト ベース監視

コンテキスト ベース監視の設定方法は、以下のセクションで解説します。

コンテキスト ベース監視の有効化

  1. Applications Managerにログインしてください。
  2. APMインサイトJavaエージェントをダウンロード・インストールします。
  3. apminsight.confファイルに次のキーを追加します。

    context.monitoring.enabled=true

  4. サーバーを再起動してください。
  5. エージェントに対応するコンテキストで何らかのトランザクションを発生させ、それぞれの監視を特定できるか確認ください。

コンテキスト名はそれぞれ、設定ファイルで指定したアプリケーション名にプレフィックスがついたものとなります。たとえば、アプリケーション名を設定ファイルでTomcatApplicationsとし、それぞれのコンテキストの名前はSampleWebApp、sample、jpetstoreである場合、APMインサイトのクライアントにはコンテキスト名は次のように表示されます。

  • TomcatApplications/SampleWebApp
  • TomcatApplications/sample
  • TomcatApplications/jpetstore

メモ:コンテキスト ベース監視を有効にすると、個別コンテキストをそれぞれ別のAPMインサイト監視と見なし、監視ライセンスを消費します。

コンテキストのリネームとグループ化

コンテキストをリネームするには

  1. APMインサイト エージェント ディレクトリへ移動してください。
  2. context_naming_patterns_conf」ファイルを作成します。
  3. キー・バリュー ペアをkey=value形式で記載してください。内容は次のとおりです。
    • キーはコンテキスト名自体か、コンテキスト名にマッチする正規表現です。
    • バリューはコンテキストのリネーム後の名前を指定します。

例:

  1. コンテキスト名をsampleappからjpetstoreに変更する場合、key-valueペアはsampleapp=jpetstoreとしてください。
  2. /api/1と/api/2というコンテキストが存在し、これらを1アプリケーションで監視する場合は、/api/\d+=/apiと記載できます。

重要

  • バックグラウンド トランザクションは個別のコンテキストでは表示しません。どのコンテキストからバックグラウンド トランザクションが起動するかは特定不能であり、バックグラウンド トランザクションはJVMレベルで取得し、アプリケーション レベルで表示します。
  • スレッド プロファイリングはJVM全体を対象とするもので、コンテキスト固有ではありません。どのコンテキスト プロファイルから起動したかにかかわらず、JVM全体で実行のうえ、メインのアプリケーションへと送出されます(送出先は、設定ファイルで名前を指定したアプリとなります)。

メモ:この機能は、APMインサイトJavaエージェント バージョン4.4以降で利用できます。

コンテキスト ベース監視の無効化

コンテキスト ベース監視を無効にするには

  1. apminsight.confファイルに次のパラメーターを追加してください。

    context.monitoring.enabled=false

  2. エージェントのディレクトリを確認し、apminsight_monitorsディレクトリが残っていたら削除してください。
  3. 最後にアプリケーション サーバーを再起動してください。