追加APMブラウザ・エージェント・インジェクション設定の構成

このAPMブラウザ・エージェント機能を有効にすると、要件に応じてデフォルト設定をカスタマイズして追加できます。

ProbeConfig.acmlファイルの更新

ProbeConfig.acmlファイルには、INJECTIONというセクションがあり、必要に応じてブラウザ・エージェント・インジェクションの実行方法を調整するために使用できる追加設定があります。各設定には、その動作を説明するコメントがあります。

INJECTION:
  ### Exclusion Settings ###
  # URLs that end in these extensions will be skipped for browser agent injection.
  excluded_extensions:
...
これらの設定を使用すると、次のことができます。
  • ブラウザ・エージェントをインジェクトする必要があるページとできないページを判断します。

  • ブラウザ・エージェントをインジェクトする必要があるページ内の場所。

  • アプリケーション・サーバーがブラウザ・エージェント・インジェクションに必要な情報を提供していないケースに応答する方法について理解します。例: ページの文字セットとMIMEタイプ。

これらの設定はすべて、アプリケーションサーバーを再起動しなくても更新できます。

デフォルトの動作は次のとおりです。
  • ブラウザ・エージェントは、HTMLページの<head>タグの後に挿入されます。

    これは、inject_location_tagおよび inject_before設定によって制御されます。

    タグがない場合は、ファイルの末尾に追加されます。これは、inject_mode設定によって制御されます。

  • "text/html"および"application/xhtml+xml" MIMEタイプのみが注入対象として考慮されます。

    これは、valid_mime_types設定によって制御されます。

  • 特定のファイル拡張子(json, txt, gifなど)で終わるURLは、ブラウザ・エージェント・インジェクションをスキップします。

    これは、excluded_extensions設定によって制御されます。

  • 特定のコンテキスト・ルートを持つアプリケーションは、ブラウザ・エージェント・インジェクションをスキップします。

    これは、excluded_context_roots設定によって制御されます。

BrowserAgentTemplate.txtの更新

このファイルは、ページに注入されるHTMLを決定します。

APM Agent 1.3以上のバージョンのデフォルトの動作は次のとおりです。
<script type="application/javascript">
window.apmrum = (window.apmrum || {});
window.apmrum.serviceName='@@SERVICE_NAME@@';
window.apmrum.webApplication='@@WEB_APPLICATION@@';
window.apmrum.ociDataUploadEndpoint='@@UPLOAD_ENDPOINT@@';
window.apmrum.OracleAPMPublicDataKey='@@PUBLIC_KEY@@';
</script>
<script type="application/javascript"async crossorigin="anonymous"src="@@UPLOAD_ENDPOINT@@/static/jslib/apmrum.min.js"></script>

@@で囲まれた値は、インジェクションが発生する前に置換され、AgentConfig.propertiesファイルから取得された値です。

このテンプレートは、window.apmrum.rewriteRulesなど、このドキュメントの他のセクションに記載されているブラウザ・エージェント側の構成を考慮して調整できます。詳細は、Hide Personally Identifiable Informationを参照してください。

このファイルに加えた変更は自動的に選択され、アプリケーション・サーバーの再起動は必要ありません。

MIMEタイプの更新

HTTPレスポンスの"Content- Type"ヘッダーで指定されたMIMEタイプをインジェクションで成功させるには、常に"text/html"が含まれている必要があります。このヘッダーが正しく設定されている場合、問題/問題はありません。

ただし、一部のアプリケーションは、MIMEタイプが正しくないか、MIMEタイプがないかの応答です。MIMEタイプが指定されていない場合、ブラウザ・エージェント・インジェクションはProbeConfig.acmlファイルの「default_mime_type」パラメータを使用して、何をするかを決定します。このパラメータのデフォルト値は "text/plain"に設定されているため、ヘッダーが欠落しているこのようなすべてのケースでインジェクションは発生しません。

このような場合にインジェクションを実行する場合は、"default_mime_type"パラメータを"text/html"に変更して、そのインジェクションを許可する必要があります。

逆の場合、HTTPレスポンスの「Content- Type」ヘッダーに「text/HTML」が含まれるが、実際のコンテンツがHTMLではない場合、高度な署名/ヒューリスティック・ベースのコンテンツ分析アルゴリズムを使用して、インジェクトするかどうかを決定します。コンテンツがHTMLではないタイプであると判断した場合、ストリームには何も挿入しません。