Versions Compared

    Key

    • This line was added.
    • This line was removed.
    • Formatting was changed.
    Comment: Published by Scroll Versions from this space and version 20.7
    Sv translation
    languageen
    Appd tocbox

    Related pages:

    This page describes how JavaScript Agent injection works, including the different injection types. 

    To instrument your application for Browser RUM, you must configure your JavaScript Agent and insert it into the page that is returned to the end user as part of the normal process it follows. The act of inserting the agent is called injection. There are several ways to inject the JavaScript Agent for Browser RUM into your web pages. You also have several JavaScript hosting options to choose from that offer differing degrees of control, simplicity, and reliability.

    To configure the JavaScript Agent, see Configure the JavaScript Agent.

    Anchor
    EUEMvideo
    EUEMvideo
    How the JavaScript Agent Works

    The JavaScript Agent consists of two files: adrum.js and adrum-ext.js.

    1. The file adrum.js is injected into each instrumented page, as close to the top as possible, as the page is served. The file loads synchronously at around 90 KB (30 KB with compression).
    2. This first JavaScript file starts a timer and does some quick configuration and setup.
    3. At the onload event, adrum-ext.js is fetched asynchronously to prevent blocking the page load. This is the code that does most of the heavy lifting. Once it has been fetched, it is cached for 24 hours on the browser. 
    4. When cross-domain session correlation is enabled, the first time a user visits a domain, the browser additionally loads the file adrum-xd.html to generate or load a piece of common information that enables cross-domain sessions. Future visits will not load adrum-xd.html again.
    5. When the page has completed loading, the collected data is bundled into a beacon and sent to the EUM Server by adrum-ext.js
    6. The data is processed by the EUM Server and then made available for pickup by the Controller.
    Info

    Not all types of injection are supported on all frameworks and platforms. See the Script Injection columns in the Supported Platform Matrix for Browser Monitoring matrices to find out what types are supported for your application.

    Injection Methods

    There are three methods for injecting the JavaScript Agent. See the following for each injection method:

    Anchor
    host
    host
    JavaScript Agent Hosting Options

    The adrum.js file is inserted into the page when it is downloaded from your web application. The adrum-ext.js (and adrum-xd.html when cross-domain session correlation is enabled) file is loaded asynchronously by the adrum.js file. By default, adrum-ext.js and adrum-xd.html are fetched by the highly available Amazon CloudFront CDN infrastructure.

    There are three hosting options for the JavaScript Agent:

    • AppDynamics CDN - All the JavaScript Agent files are from the host cdn.appdynamics.com. This is the simplest hosting option and ideal for testing.
    • Self-Hosting - You host all of the JavaScript Agent files. This option gives you the most control and is recommended for production. 

    • Shared Hosting - You host the main file adrum.js, but the other files that are loaded asynchronously are from the AppDynamics CDN. This choice offers control of the most important file of the JavaScript Agent and is ideal for small to medium-sized businesses that don't have the resources or prefer not to host the entire JavaScript Agent.

    See Manual Injection of the JavaScript Agent for step-by-step instructions. 

    Anchor
    cross-domain-session-correlation
    cross-domain-session-correlation
    Cross-domain session correlation

    By default, Browser RUM sessions are restricted to one domain. Thus, when an end user navigates to a page in another domain or even subdomain, the session for that user is ended. You can, however, configure Browser RUM to enable sessions to continue across subdomains. Thus, when an end user navigates from http://example1.com to http://example2.com, the session will continue as long as the configured session inactivity time has not expired.

    How Sessions Are Correlated Across Multiple Domains

    For sessions to be correlated across domains, each page is required to use HTTPS to load the file adrum-xd.html from the same URL. If your pages are fetching the files adrum-ext.js and adrum-xd.html files from the AppDynamics CDN (this includes the shared hosting use case), sessions will automatically be correlated across domains because the pages will be fetching the file adrum-xd.html from the AppDynamics CDN.

    For those self-hosting the JavaScript Agent files, you will need to configure the JavaScript Agent to use HTTPS to load the adrum-ext.js file from the same URL. The  adrum-xd.html file is served from the location of the adrum-ext.js file. See the sections below for configuration instructions for the two use cases.

    Configuration for Session Correlation Across Multiple Domains

    AppDynamics CDN / Shared Hosting

    When using the AppDynamics CDN or shared hosting, your JavaScript Agent configurations must enable cross-domain session correlation and use HTTPS to call the adrum-ext.js file. Thus, in your JavaScript Agent configuration make sure you have the following lines:

    Code Block
    languagejs
    ...
    config.adrumExtUrlHttps = 'https://cdn.appdynamics.com';;
    config.xd = {enable : true};
    ...

    Self-Hosting

    When using self-hosting, your JavaScript Agent configurations must enable cross-domain session correlation and use HTTPS to call the adrum-ext.js file from the same URL. Thus, in your JavaScript Agent configuration make sure you have the following lines and that the value for adrumExtUrlHttps is the same for all pages requiring cross-domain session correlation.

    Code Block
    languagejs
    ...
    // HTTPS is needed to fetch adrum-xd.html.
    config.adrumExtUrlHttps = 'https://<your-adrum.ext-host>';
    // This config enables cross-domain session correlation.
     config.xd = {enable : true};
    ...

    Anchor
    alternate-geo-server-location
    alternate-geo-server-location
    Set the Geo Server URL

    By default, end-users' locations are resolved using public geographic databases. You can host an alternate geo server for your countries, regions, and cities instead of using the default geo server hosted by AppDynamics. See Install and Host a Custom Geo Server for Browser RUM.

    Anchor
    custom-configuration
    custom-configuration
    Custom Configuration

    You can add configuration for adrum.js to customize and extend the functionality of the JavaScript Agent. See Configure the JavaScript Agent for instructions and examples on adding custom configuration.

    JavaScript Agent Limitations

    The JavaScript Agent cannot monitor and report the activity of service workers or web workers. For example, if you use a service worker to make an XHR request, the JavaScript Agent will not be able to report it.


    Sv translation
    languageja
    Appd tocbox

    On this page

    Table of Contents
    maxLevel2

    Related pages

    ブラウザ RUM のアプリケーションをインストゥルメント化するには、JavaScript エージェントを構成し、その後の通常のプロセスの一部としてエンドユーザに返されるページに挿入する必要があります。エージェントを挿入する操作は、次のように呼ばれます。 インジェクション。 

    ブラウザ RUM の JavaScript エージェントを Web ブラウザに挿入する方法はいくつかあります。また、これらの方法から選択する JavaScript ホスティングオプションも複数あり、これらのオプションは、コントロール、シンプルさ、および信頼性が異なります。

    このページでは、JavaScript エージェント構成の概要について説明します。JavaScript エージェントの構成方法については、次を参照してください。

    Anchor
    EUEMvideo
    EUEMvideo
    JavaScript エージェントの動作

    JavaScript エージェントは、次の 2 つのファイルで構成されます。adrum.js and adrum-ext.js.

    1. ファイル adrum.js は、インストゥルメント化された各ページに挿入されます。ページが処理されるときに、できるだけ先頭に近い位置に挿入されます。このファイルは、90 KB(圧縮時は 30 KB)あり、同期的にロードされます。
    2. この最初の JavaScript ファイルは、タイマーを開始し、簡単な構成とセットアップを行います。
    3. onload イベント時に、adrum-ext.js が非同期に取得されるので、ページのロードがブロックされることはありません。負荷が大きい処理のほとんどは、このコードが行います。取得されると、ブラウザで 24 時間キャッシュされます。 
    4. クロスドメインセッション相関が有効になっている場合、ユーザが最初にドメインにアクセスしたときに、ブラウザは追加でファイル adrum-xd.html をロードし、クロスドメインセッションを有効にする共通情報の一部を生成するか、ロードします。以降のアクセスでは、adrum-xd.html を再びロードすることはありません。
    5. ページのロードが完了すると、adrum-ext.js は収集されたデータをビーコンにバンドルし、EUM サーバに送信します。 
    6. データは、EUM サーバによって処理され、コントローラがピックアップできるようになります。
    Info

    すべてのタイプのインジェクションがすべてのフレームワークとプラットフォームでサポートされているわけではありません。アプリケーションでサポートされているタイプを確認するには、ブラウザ モニタリングでサポートされているプラットフォームのマトリックスScript Injection 列を参照してください。

    Anchor
    js-agent-hosting-options
    js-agent-hosting-options
    JavaScript エージェント ホスティング オプション

    adrum.js ファイルが Web アプリケーションからダウンロードされると、ページに挿入されます。adrum.js ファイルが adrum-ext.js(クロスドメインセッション相関のときは adrum-xd.html も)非同期でファイルをロードします。デフォルトでは、adrum-ext.jsadrum-xd.html は Amazon CloudFront CDN 高可用性インフラストラクチャによって取得されます。

    JavaScript エージェントには、次の 3 つのホスティングオプションがあります。

    • AppDynamics CDN:すべての JavaScript エージェントファイルはホスト cdn.appdynamics.com から取得されます。これは最も単純なホスティングオプションであり、テストに最適です。
    • Self-Hosting:すべての JavaScript エージェントファイルを自分でホストします。このオプションを使用すると、ほとんどの制御が可能になり、実稼働環境で推奨されています。 

    • Shared Hosting:メインファイル adrum.js ファイルは自分でホストしますが、他のファイルは AppDynamics CDN からロードされます。この選択は、JavaScript エージェントの最も重要なファイルの制御は可能で、JavaScript エージェント全体をホストするリソースがない、またはそうしないことが推奨される、小規模から中規模ビジネス用に最適です。

    詳しい手順については、「Manual Injection of the JavaScript Agent」を参照してください。 

    Anchor
    cross-domain-session-correlation
    cross-domain-session-correlation
    クロスドメインセッション相関

    デフォルトでは、ブラウザ RUM セッションは 1 つのドメインに制限されます。したがって、エンドユーザが別のドメインやサブドメイン内のページに移動すると、そのユーザのセッションは終了します。ただし、ブラウザ RUM を構成すると、サブドメイン間でセッションを続行できるようになります。したがって、エンドユーザが http://example1.com から http://example2.com に移動すると、構成されているセッションの非アクティブ時間が期限切れになっていない限り、セッションは続行されます。

    複数ドメイン間でのセッションの相関方法

    ドメイン間でセッションを相互に関連付けするには、各ページで HTTPS を使用して同じ URL からファイル adrum-xd.html をロードする必要があります。ページが AppDynamics CDN からファイル adrum-ext.jsadrum-xd.html ファイルを取得する場合(共有ホスティングを使用する場合も同様)、ページは AppDynamics CDN からファイル adrum-xd.html を取得するので、セッションは自動的にドメイン間で関連付けられます。

    JavaScript エージェントファイルを自己ホスティングするには、HTTPS を使用して同じ URL から adrum-ext.js ファイルをロードするように JavaScript エージェントを構成する必要があります。adrum-xd.html ファイルは、adrum-ext.js ファイルの場所から処理されます。2 つの使用例の構成手順については、以下のセクションを参照してください。

    複数ドメインでのセッション相関の構成

    AppDynamics CDN/共有ホスティング

    AppDynamics CDN または共有ホスティングを使用する場合は、JavaScript エージェント構成でクロスドメインセッション相関を有効にし、HTTPS を使用して adrum-ext.js ファイルを呼び出す必要があります。したがって、JavaScript エージェント構成で、次の行があることを確認してください。

    Code Block
    languagejs
    ...
    config.adrumExtUrlHttps = 'https://cdn.appdynamics.com';;
    config.xd = {enable : true};
    ...

    自己ホスティング

    自己ホスティングを使用する場合は、JavaScript エージェント構成でクロスドメインセッション相関を有効にし、HTTPS を使用して同じ URL から adrum-ext.js ファイルを呼び出す必要があります。したがって、JavaScript エージェント構成に、次の行があり、adrumExtUrlHttps の値がクロスドメインセッション相関が必要なすべてのページで同じになっていることを確認します。

    Code Block
    languagejs
    ...
    // HTTPS is needed to fetch adrum-xd.html.
    config.adrumExtUrlHttps = 'https://<your-adrum.ext-host>';
    // This config enables cross-domain session correlation.
     config.xd = {enable : true};
    ...

    Anchor
    alternate-geo-server-location
    alternate-geo-server-location
    Geo サーバ URL の設定

    デフォルトでは、エンドユーザの位置はパブリック地理データベースを使用して解決されます。AppDynamicsがホストしているデフォルトのGeoサーバーの代わりに、ユーザーの国、地域、都市用の別のGeoサーバーをホストすることもできます。「Install and Host a Custom Geo Server for Browser RUM」を参照してください。

    Anchor
    custom-configuration
    custom-configuration
    カスタム構成

    adrum.js の構成を追加して、JavaScript エージェントの機能のカスタマイズと拡張ができます。カスタム構成を追加する手順と例については、「Configure the JavaScript Agent」を参照してください。

    JavaScript エージェントの制限事項

    JavaScript エージェントは、サービスワーカーまたは Web ワーカーのアクティビティをモニタして報告することはできません。たとえば、サービスワーカーを使用して XHR リクエストを行う場合、JavaScript エージェントはそれを報告できません。