補助インジェクション
Related pages:
このページでは、JavaScript エージェントの補助インジェクションによってブラウザアプリケーションをインストゥルメント化する方法について説明します。補助インジェクションは、サーバ側アプリケーションがブラウザアプリケーションに JavaScript エージェントを挿入するときに使用されます。ブラウザアプリケーションに JavaScript エージェントを挿入するようにビジネスアプリケーションを設定できます。
補助インジェクションのタイプ
ルールまたは属性を使用して、補助インジェクションを実行できます。次の表に、補助インジェクションの各タイプに対応しているプラットフォームと補助インジェクションを実行するためのプロセスの概要を示します。
| 補助インジェクションのタイプ | サポートされるプラットフォーム | 説明 |
|---|---|---|
| インジェクションルール | Java |
このタイプの補助インジェクションは、ルールを使用して、インターセプトする必要がある Java クラスを構成します。 JavaScript エージェントを挿入するビジネスアプリケーションのコントローラ UI の [User Experience App Integration Panel] でインジェクションルールを作成します。 |
| 属性インジェクション | Java、ASP.NET |
このタイプの補助インジェクションは、アプリケーション エージェントに情報を挿入する場所を示すテンプレートを参照します。 JavaScript エージェントを挿入するビジネスアプリケーションのコントローラ UI の [User Experience App Integration Panel] で属性インジェクションを有効にします。 また、JavaScript エージェントを挿入する場所を決定するページテンプレートにコードスニペットを追加します。 |
インジェクションルール(Java のみ)
サーバー側アプリケーションでインジェクションルールを使用して JavaScript エージェントの補助インジェクションを使用するには、以下を構成するルールを定義します。
- インターセプトする必要がある Java クラスとメソッド
- エージェントを応答オブジェクトに追加するために使用する Java ライターオブジェクトとメソッド
[ユーザー体験アプリケーションの統合(User Experience App Integration)] パネルへのアクセス
- [Applications] ページから、ブラウザアプリケーションに JavaScript エージェントを自動的に挿入するビジネスアプリケーションを開きます。
- 左のナビゲーションバーから [Configuration] を選択します。
- User Experience App Integration をクリックします。
JavaScript インジェクションルールの作成
- [JavaScriptエージェントのインジェクション(JavaScript Agent Injection)] タブで、[Inject the JavaScript Agent configured for this Browser App] ドロップダウンからブラウザアプリケーションを選択します。
- [JavaScriptインジェクションの設定(Configure JavaScript Injection)] タブで、[Create Injection Rules.] を展開します
- [+] アイコンをクリックし、[Create Manual Injection Rule] ダイアログを開きます。
- [JavaScriptを挿入する場所(Where to Inject JavaScript)] タブで、次の手順を実行します。
- Create Injection Rule をクリックします。
属性インジェクション
サーバ側アプリケーションで属性インジェクションを使用して JavaScript エージェントの補助インジェクションを使用するには、以下を実行します。
- 属性インジェクションの有効化
- ページテンプレートへのコードスニペットのコピー
[ユーザー体験アプリケーションの統合(User Experience App Integration)] パネルへのアクセス
- [Applications] ページから、ブラウザアプリケーションに JavaScript エージェントを自動的に挿入するビジネスアプリケーションを開きます。
- 左のナビゲーションバーから [Configuration] を選択します。
- User Experience App Integration をクリックします。
[JavaScript Injection Configuration] パネルへのアクセス
- [User Experience App Integration] ページで、[JavaScriptエージェントのインジェクション(JavaScript Agent Injection)] タブをクリックします。
- [JavaScriptエージェントのインジェクション(JavaScript Agent Injection)] タブで、[Inject the JavaScript Agent configured for this Browser App] ドロップダウンからブラウザアプリケーションを選択します。
ページテンプレートへのコードスニペットのコピー
次の例は、ページテンプレートまたは他のページに直接コピーできるコードスニペットを示しています。これらのコードスニペットは、情報を挿入する場所をアプリケーション エージェントに示します。ヘッダー値は <head> セクションの一番上に挿入する必要があります。また、フッター値は、ページを作成するコードの最後に追加する必要があります。
手動インジェクションを使用してエージェントのヘッダー部分をすでに挿入している場合は、これらのコードスニペットを使用して、フッターデータ部分のみを自動的に挿入できます。この場合は、次のセクションに示す JS_FOOTER 値のみを追加します。
JSF
<h:outputText rendered="#{AppDynamics_JS_HEADER != null}" value='#{request.getAttribute("AppDynamics_JS_HEADER")}' escape="false"/>
<h:outputText rendered="#{AppDynamics_JS_FOOTER != null}" value='#{request.getAttribute("AppDynamics_JS_FOOTER")}' escape="false"/>
JSP
<% if (request.getAttribute("AppDynamics_JS_HEADER") != null) { %> <%=request.getAttribute("AppDynamics_JS_HEADER")%> <% } %>
<% if (request.getAttribute("AppDynamics_JS_FOOTER") != null) { %> <%=request.getAttribute("AppDynamics_JS_FOOTER")%> <% } %>
servlet
if (request.getAttribute("AppDynamics_JS_HEADER") != null)
{
out.write(request.getAttribute("AppDynamics_JS_HEADER".toString());
}
if (request.getAttribute("AppDynamics_JS_FOOTER") != null)
{
out.write(request.getAttribute("AppDynamics_JS_FOOTER").toString());
}
Groovy
<g:if test="${AppDynamics_JS_HEADER}">
${AppDynamics_JS_HEADER}
</g:if>
<g:if test="${AppDynamics_JS_FOOTER}">
${AppDynamics_JS_FOOTER}
</g:if>
Velocity テンプレート
#if ($AppDynamics_JS_HEADER)
$AppDynamics_JS_HEADER
#end
#if ($AppDynamics_JS_FOOTER)
$AppDynamics_JS_FOOTER
#end
ASP.NET C#
<% if (Context.Items.Contains("AppDynamics_JS_HEADER"))
Response.Write(Context.Items["AppDynamics_JS_HEADER"]); %>
<% if (Context.Items.Contains("AppDynamics_JS_FOOTER"))
Response.Write(Context.Items["AppDynamics_JS_FOOTER"]); %>
MVC Razor
@if(HttpContext.Current.Items.Contains("AppDynamics_JS_HEADER"))
{ @Html.Raw((string)HttpContext.Current.Items["AppDynamics_JS_HEADER"]) }
@if(HttpContext.Current.Items.Contains("AppDynamics_JS_FOOTER") )
{ @Html.Raw(HttpContext.Current.Items["AppDynamics_JS_FOOTER"].ToString()) }