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.8
    Sv translation
    languageen
    Appd tocbox

    Related pages:

    You can configure the JavaScript Agent to capture POST parameters and then use the parameter(s) to name the Ajax request in the Pages & Ajax Requests page. This enables you to identify and sort Ajax requests from the same page based on POST parameter(s).

    For example, customers on your home page of your website can either register an account or log in. The Ajax request may pass the parameter action to reflect one of these user actions. By capturing the action parameter, you can differentiate the Ajax requests to monitor performance and debug issues.

    Configure the JavaScript Agent to Capture Parameters

    You use the xhr object to configure the JavaScript Agent to capture POST parameters. The xhr object has the property parameter that is used to match resource URLs and define a callback for parsing the request body and return the desired results.

    In the example below, the configuration sets a pattern to match the URL http://www.mystore.com, parses the request body, and returns an object containing the parameter action. As mentioned earlier, you could use a configuration like this to differentiate Ajax requests that are sending requests to register or log in users.

    Code Block
    languagejs
    <script type='text/javascript' charset='UTF-8'>
        window['adrum-start-time'] = new Date().getTime();
        window['adrum-config'] =  { 
            xhr: {
                parameter : {
                    urls : [{pattern : '^https?:\\/\\/www\\.mystore\\.com'}],
                    getFromBody: function(data) {
                        if (typeof data === 'string') {
                            var fields = data.split("&");
                            for (var i = 0; i < fields.length; i++) {
                                var keyAndValue = fields[i].split('=');
                                if (keyAndValue.length > 1) {
                                    var key = keyAndValue[0],
                                    value = keyAndValue[1];
                                if (key === 'action')
                                    return {action: value};
                                }
                            }
                        }
                    }
                }
            }
        }
    </script>
    <script charset='UTF-8'>
        (function(config){
            config.appKey = '<EUM_APP_KEY>';
            config.adrumExtUrlHttp = 'http://cdn.appdynamics.com';
            config.adrumExtUrlHttps = 'https://cdn.appdynamics.com';
            config.beaconUrlHttp = 'http://col.eum-appdynamics.com';
            config.beaconUrlHttps = 'https://col.eum-appdynamics.com';
            config.xd = {enable : true};
        })(window['adrum-config'] || (window['adrum-config'] = {}));
    
        (function (cfg) {
            if (cfg.beacon) cfg.beacon.neverSendImageBeacon = true;
            else cfg.beacon = { neverSendImageBeacon: true };
        })(window['adrum-config'] || (window['adrum-config'] = {}));
    </script> 
    <script src='//cdn.appdynamics.com/adrum/adrum-latest.js' type='text/javascript' charset='UTF-8'></script>

    Create an Ajax Include Rule

    To name an Ajax request based on a captured request parameter, you need to define an include rule that specifies the captured POST parameter. See Configure Naming for Ajax Requests to learn how to create include rules for Ajax requests.

    The example include rule below uses the full domain and the captured POST parameter to name the Ajax request in the Pages & Ajax Requests page. For example, if an Ajax request is made to www.mystore.com and the value of the action parameter is register, the Ajax request will be named www.mystore.com/register.

    View Results in Pages & Ajax Requests

    From the Pages & Ajax Requests page, you can view the Ajax requests that are named based on your include rule. 

    Using the configuration and include rule shown above, you might see the following Ajax request with the name mystore.com/register.

    Sv translation
    languageja
    Appd tocbox

    On this page

    Table of Contents
    maxLevel2

    Related pages

    POST パラメータをキャプチャし、そのパラメータを使用して [Pages & Ajax Requests] ページで Ajax リクエストに名前を付けるように、JavaScript エージェントを構成できます。これにより、POST パラメータに基づいて同じページから Ajax リクエストを識別してソートできます。

    たとえば、Web サイトのホームページ上のユーザは、アカウントを登録するか、ログインできます。Ajax リクエストは、いずれかのユーザアクションを反映する action パラメータを渡すことができます。action パラメータをキャプチャすることによって、Ajax リクエストを識別してパフォーマンスをモニタし、問題をデバッグできます。

    パラメータをキャプチャするための JavaScript エージェントの構成

    xhr オブジェクトを使用して、POST パラメータをキャプチャするように JavaScript エージェントを構成します。xhr オブジェクトには、リソース URL を照合し、リクエスト本文を解析するためのコールバックを定義して、目的の結果を返すために使用する parameter プロパティがあります。

    次の例では、この構成によって、URL http://www.mystore.com を照合するパターンが設定され、リクエスト本文が解析されて、パラメータ action を含むオブジェクトが返されます。前述のように、このような構成を使用して、リクエストを送信している Ajax リクエストを識別して、ユーザの登録やログインができます。

    Code Block
    languagejs
    <script type='text/javascript' charset='UTF-8'>
        window['adrum-start-time'] = new Date().getTime();
        window['adrum-config'] =  { 
            xhr: {
                parameter : {
                    urls : [{pattern : '^https?:\\/\\/www\\.mystore\\.com'}],
                    getFromBody: function(data) {
                        if (typeof data === 'string') {
                            var fields = data.split("&");
                            for (var i = 0; i < fields.length; i++) {
                                var keyAndValue = fields[i].split('=');
                                if (keyAndValue.length > 1) {
                                    var key = keyAndValue[0],
                                    value = keyAndValue[1];
                                if (key === 'action')
                                    return {action: value};
                                }
                            }
                        }
                    }
                }
            }
        }
    </script>
    <script charset='UTF-8'>
        (function(config){
            config.appKey = '<EUM_APP_KEY>';
            config.adrumExtUrlHttp = 'http://cdn.appdynamics.com';
            config.adrumExtUrlHttps = 'https://cdn.appdynamics.com';
            config.beaconUrlHttp = 'http://col.eum-appdynamics.com';
            config.beaconUrlHttps = 'https://col.eum-appdynamics.com';
            config.xd = {enable : true};
        })(window['adrum-config'] || (window['adrum-config'] = {}));
    
        (function (cfg) {
            if (cfg.beacon) cfg.beacon.neverSendImageBeacon = true;
            else cfg.beacon = { neverSendImageBeacon: true };
        })(window['adrum-config'] || (window['adrum-config'] = {}));
    </script> 
    <script src='//cdn.appdynamics.com/adrum/adrum-latest.js' type='text/javascript' charset='UTF-8'></script>

    Ajax 包含ルールの作成

    キャプチャされたリクエストパラメータに基づいて Ajax リクエストに名前を付けるには、キャプチャされる POST パラメータを指定する包含ルールを定義する必要があります。Ajax リクエストの包含ルールを作成する方法については、「Configure Naming for Ajax Requests」を参照してください。

    次の例に示す包含ルールは、完全なドメインとキャプチャされた POST パラメータを使用して、[Pages & Ajax Requests] ページで Ajax リクエストに名前を付けます。たとえば、www.mystore.com に対して Ajax リクエストが行われ 、action パラメータの値が register の場合、Ajax リクエストには「www.mystore.com/register」という名前が付けられます。

    [Pages & Ajax Requests] で結果を表示する

    [Pages & Ajax Requests] ページで包含ルールに基づいて名前が付けられている Ajax リクエストを表示できます。 

    上記の構成と包含ルールを使用すると、次の名前の Ajax リクエストが表示されます。mystore.com/register.