追加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を決定します。
<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ではないタイプであると判断した場合、ストリームには何も挿入しません。