ブラウザ RUM を使用するには、JavaScript エージェントを Web ページに挿入する必要があります。使用例によっては、いくつかのインジェクションタイプが使用できます。このページでは、さまざまなインジェクションタイプ、それらの機能、および各タイプを使用するタイミングについて説明します。

インジェクション方式の選択

エージェントを Web ページに挿入するために使用する手順が不明な場合は、次のガイドラインをこの順序で実行してください。

  • ブラウザ RUM を使用し、サーバ側にアプリケーション エージェントがない場合は、手動インジェクションを使用します。詳細については、JavaScriptエージェントの手動組み込みを参照してください。
  • 自動インジェクションが使用可能で、フレームワークで動作する場合は、自動インジェクションを使用します。自動インジェクションには、すべてのページを手動でインストゥルメント化する必要がないため、最小限の労力しか必要ありません。「ブラウザRUM対応環境」のマトリックスを確認して、ご使用の環境で自動インジェクションがテスト済みかどうかを確認します。「Automatic Injection of the JavaScript Agent」も参照してください。
  • 自動インジェクションを使用できず、Web ページのソースコードを編集できる場合は、手動インジェクションを使用します。詳細については、JavaScriptエージェントの手動組み込みを参照してください。
  • 自動インジェクションを使用できず、Web アプリケーションのソースコードを編集できる場合は、いずれかの種類の補助インジェクションを使用します。「属性インジェクションを使用した補助インジェクション」を参照してください。

手動インジェクション

手動インジェクションは、すべてのプラットフォームとフレームワークでサポートされています。手動で挿入されるページを設定するには、次のようにします。

  • JavaScript エージェント ホスティング オプションを選択します。ユースケースに最も適したホスティングオプションについては、「JavaScript エージェント ホスティング オプション」を参照してください。
  • 各ページが JavaScript エージェントの場所を検出するように手動で構成すると、エージェントはページがブラウザによって生成されるときに実行されます。

アプリケーションでの手動インジェクションの使用方法の詳細については、「JavaScriptエージェントの手動組み込み」を参照してください。

自動インジェクション

サーバ側で Java または .NET アプリケーション エージェントを使用しており、アプリケーションが次のいずれかをサポートする環境で実行されている場合、自動インジェクションが使用できます。

  • Apache Jasper JSP コンパイラ(Java 用)または
  • ASP.NET または ASPX(.NET 用)または
  • ASP.NET Core(.NET 用、Windows サポートのみ)

サーバ側のアプリケーション エージェントが実行時にコードの挿入を完全に管理する場合、自動インジェクションを使用できる場合があります。アプリケーションでの自動インジェクションの使用方法については、「JavaScript エージェントの自動インジェクション」を参照してください。

補助インジェクション

補助インジェクションは 2 つの種類があります。いずれの場合も、作業の一部は手動で実行され、一部の作業はサーバ側の Java または .NET アプリケーション エージェントによって実行されます。

補助インジェクションは、現在 .NET Core ではサポートされていません。

インジェクションルールを使用した補助インジェクション(Java のみ)

このタイプの補助インジェクションでは、アプリケーションの出力ストリームに書き込むアプリケーションサーバ Java クラスとメソッド、およびその書き込みを実行するために使用するライターオブジェクトを定義するルールを構成します。AppDynamics はメソッドをインターセプトし、JavaScript エージェントを出力ストリームに挿入します。また、この方法で、インストゥルメント化するサーバ側ビジネストランザクションの指定も行います。

この形式の補助インジェクションの使用方法の詳細については、「補助インジェクション」を参照してください。

属性インジェクションを使用した補助インジェクション

このタイプの補助インジェクションでは、フレームワークに適した小さなコードスニペットをページテンプレートまたはページを作成するその他のコードにコピーします。このスニペットには 2 つの変数 JS_HEADERJS_FOOTER が含まれていて、アプリケーション エージェントは実行時の応答オブジェクト内の適切な情報に置き換えます。

この形式の補助インジェクションの使用方法の詳細については、「属性インジェクションの使用」を参照してください。

コンテナベースのインジェクション

Web コンテナとして、または Web コンテナの前でリバースプロキシとして、Nginx または Apache を使用する場合は、ディレクティブを使用してエージェントを応答オブジェクトに挿入できます。「Nginx を使用したインジェクション」または「Apache を使用したインジェクション」を参照してください。