すべてのプロダクト
Search
ドキュメントセンター

:SDK リファレンス

最終更新日:Dec 30, 2024

Application Real-Time Monitoring Service (ARMS) ブラウザモニタリングは、幅広い要件に対応するためにさまざまな SDK 構成項目を提供しています。たとえば、これらの構成項目を使用して、URL、API 操作、または JavaScript (JS) エラーを無視したり、URL から重要でない文字を削除してページを集計したり、ランダムサンプリングを使用して報告されるデータまたはワークロードを削減したりできます。

このトピックのメソッド

pid | uid | tag | page | setUsername | enableSPA | parseHash | disableHook | ignoreUrlCase | urlHelper | apiHelper | parseResponse | ignore | disabled | sample | pvSample | sendResource | useFmp | enableLinkTrace | release | environment | behavior | c1\c2\c3 | autoSendPerf

SDK 構成項目の使用

次のいずれかの方法で SDK 構成項目を使用できます。

  • ブラウザモニタリングエージェントをページにインストールするときに、要件に基づいて config にパラメータを追加します。

    たとえば、次のサンプルコードでは、デフォルトの pid パラメータに加えて、シングルページアプリケーション (SPA) の enableSPA パラメータが config に追加されています。

    <script>
    !(function(c,b,d,a){c[a]||(c[a]={});c[a].config={pid:"xxxxxx",enableSPA:true};
    with(b)with(body)with(insertBefore(createElement("script"),firstChild))setAttribute("crossorigin","",src=d)
    })(window,document,"https://retcode.alicdn.com/retcode/bl.js","__bl");
    </script>                    
  • ページが初期化された後、JavaScript コードで setConfig メソッドを呼び出して、構成項目を変更します。

    次の表は、__bl.setConfig(next) メソッドのパラメータを示しています。

    パラメータ

    タイプ

    説明

    必須

    デフォルト値

    next

    オブジェクト

    変更する構成項目とその値。

    はい

    なし

pid

pid

文字列

プロジェクトの一意の ID。ARMS がサイトを作成するときに自動的に生成されます。

はい

なし

[先頭に戻る]

uid

uid

文字列

ユーザーの ID。値はユーザーの識別子であり、ユーザーの検索に使用できます。カスタム値を指定できます。このパラメータを指定しない場合、SDK は自動的に生成され、6 か月ごとに更新されます。

  • Weex シナリオ:必須

  • その他のシナリオ:必須ではない

  • Weex シナリオ:なし

  • その他のシナリオ:SDK によって自動的に生成される

次のコードは、setConfig メソッドを呼び出して SDK 構成項目を変更する方法の例を示しています。

__bl.setConfig({
    uid: 12345
});        
説明

ミニプログラムを監視する場合、setConfig メソッドを呼び出して uid パラメータを変更することはできません。代わりに、setUsername メソッドを呼び出してユーザーを識別できます。

[先頭に戻る]

tag

tag

文字列

入力タグ。各ログにはタグが付いています。

いいえ

なし

[先頭に戻る]

page

page

文字列

ページ名。

いいえ

デフォルトでは、現在のページ URL の主要部分が取得されます:host + pathname

説明

ignoreErrors プロパティを使用して、報告するエラーをクエリできます。詳細については、ignore を参照してください。

[先頭に戻る]

setUsername

setUsername

関数

文字列型のユーザー名を返す必要があるメソッドを設定するために使用されます。

いいえ

なし

この構成項目は、関数の作成に使用されます。この関数は、文字列としてユーザー名を取得するために使用されます。ユーザー名を取得した後、エンドツーエンドのセッショントレーシングを実装し、ユーザー名に基づいてセッションをクエリして問題をトラブルシューティングできます。

説明
  • ページの初期化時にユーザー名を取得できない場合は、一時的なユーザー名ではなく、戻り値を null に設定できます。戻り値を null に設定すると、SDK がログを送信するために使用されるときに、setUsername メソッドが再度呼び出されてユーザー名を取得します。ただし、戻り値を一時的なユーザー名に設定すると、一時的なユーザー名が使用され、setUsername は再度呼び出されて実際のユーザー名を取得しません。

  • setUsername メソッドは、実行時に一度だけ設定できます。メソッドを変更するには、アプリケーションを再起動します。

次のコードは、setConfig メソッドを呼び出して SDK 構成項目を変更する方法の例を示しています。

__bl.setConfig({
    setUsername: function () {
        return "username_xxx";
    }
});            

[先頭に戻る]

enableSPA

enableSPA

ブール値

ページの hashchange イベントをリッスンし、PV を再度報告します。これは、シングルページアプリケーションのシナリオに適用されます。

いいえ(Web シナリオでのみサポート)

false

[先頭に戻る]

parseHash

parseHash

関数

enableSPA と一緒に使用されます。

いいえ

以下を参照

SPA では、enableSPA パラメータが true に設定され、ページが hashchange イベントをトリガーすると、parseHash パラメータを使用して、URL ハッシュを [ページ] フィールドで示される ページ名 に解析します。SPA の詳細については、SPA のページデータレポート を参照してください。

デフォルト値

デフォルト値は、次の文字列処理メソッドを使用して取得されます。

function (hash) {
    var page = hash ? hash.replace(/^#/, '').replace(/\?.*$/, '') : '';
    return page || '[index]';
}           

通常、このパラメータを変更する必要はありません。ただし、カスタムページ名を使用してページ固有のデータを報告する場合、または URL ハッシュが複雑な場合は、この構成項目を変更できます。例:

// URL ハッシュとページ名のマッピングを定義します。
var PAGE_MAP = {
    '/': 'ホームページ',
    '/contact': 'お問い合わせ',
    '/list': 'データリスト',
    // ...
};
// ページの読み込み後に SDK メソッドを呼び出します。
window.addEventListener('load', function (e) {
    // setConfig メソッドを呼び出して parseHash 構成項目を変更します。
    __bl.setConfig({
        parseHash: function (hash) {
            key = hash.replace(/\?.*$/, '');
            return PAGE_MAP[key] || '不明なページ';
        }
    });
});

[先頭に戻る]

disableHook

重要

disableHook パラメータは、構成が初期化された場合にのみ有効になります。

disableHook

ブール値

AJAX リクエストリスナーを無効にします。

いいえ

false:デフォルトでは、リッスンし、API 呼び出しの成功率を報告するために使用されます。

[先頭に戻る]

ignoreUrlCase

ignoreUrlCase

ブール値

ページ URL の大文字と小文字を区別しません。

いいえ

true:デフォルトでは大文字と小文字を区別しません。

[先頭に戻る]

urlHelper

urlHelper

*

古いパラメータ ignoreUrlPath の代わりに、URL フィルタリングルールを構成するために使用されます。

いいえ

以下を参照

ページ URL が http://example.com/projects/123456 の形式(projects の後に続く値はプロジェクト ID)の場合、ページ固有のデータはページ名 example.com/projects/123456 として報告されます。この場合、プロジェクトに関する類似ページのデータを集計することはできません。類似ページのデータを集計する場合は、urlHelper パラメータを設定して、この例のプロジェクト ID など、ページ URL から重要でない文字を削除します。

重要
  • urlHelper パラメータは、ignoreUrlPath パラメータに置き換わり、ページ URL の重要でない文字を無視します。ignoreUrlPath パラメータを指定した場合でも、構成は有効です。ignoreUrlPath パラメータと urlHelper パラメータの両方が指定されている場合、urlHelper パラメータで指定された構成が有効になります。

  • この構成項目は、ページ URL が自動的に取得され、データレポートのページ名として使用される場合にのみ有効です。setPage メソッドまたは setConfig メソッドを呼び出してページ名を手動で変更する場合、または enableSPA パラメータが true に設定されている場合、このパラメータは無効です。setConfig メソッドの詳細については、SDK メソッド を参照してください。

デフォルト値

この構成項目のデフォルト値は、次のサンプルコードの配列です。ほとんどの場合、値を変更する必要はありません。

[
    // URL のすべての数字をアスタリスク (*) に置き換えます。
    {rule: /\/([a-z\-_]+)?\d{2,20}/g, target: '/$1**'},
    // URL の末尾のスラッシュ (/) を削除します。
    /\/$/
]                    

このパラメータのデフォルト値は、xxxx/123456 などの文字列の数字をアスタリスク (*) に置き換えるために使用されます。たとえば、xxxx/00001xxxx/00002xxxx/** に変更されます。

値のタイプ

urlHelper パラメータの値は、次のタイプのいずれかになります。

  • String または RegExp (正規表現):一致する文字列が削除されます。

  • Object<rule, target>:オブジェクトには、JavaScript 文字列の replace メソッドの入力パラメータである ruletarget の 2 つのキーが含まれています。詳細については、関連する JavaScript チュートリアルで説明されている String::replace メソッドを参照してください。

  • Function:元の文字列は、関数の作成のための入力パラメータとして使用されます。関数の戻り値はページ名として使用されます

  • Array:この値のタイプは、ページ URL の重要でない文字を削除するための複数のルールを設定するために使用されます。各ルールの値は、上記のタイプのいずれかになります。

[先頭に戻る]

apiHelper

apiHelper

*

古いパラメータ ignoreApiPath の代わりに、API フィルタリングルールを構成するために使用されます。

いいえ

以下を参照

このパラメータは、API 操作に関するページ固有のデータが自動的に報告されるときに、ページ URL の重要でない文字を削除するために使用されます。このパラメータの使用方法と機能は、urlHelper と同じです。

重要

apiHelper パラメータは、ignoreApiPath パラメータに置き換わり、API 操作の URL の重要でない文字を無視します。ignoreApiPath パラメータを指定した場合でも、構成は有効です。ignoreApiPath パラメータと apiHelper パラメータの両方が指定されている場合、apiHelper パラメータで指定された構成が有効になります。

デフォルト値

このパラメータのデフォルト値はオブジェクトであり、変更する必要はありません。

{rule: /(\w+)\/\d{2,}/g, target: '$1'}                    

このパラメータのデフォルト値は、xxxx/123456 などの URL 文字列の数字を削除するために使用されます。

API 操作のページ固有データ(例: https://arms.console.aliyun.com/apm?pid=fr6fbgbeotpid パラメーター)で ? の後にパラメーターを報告する場合は、次の手順を実行して手動でデータを報告します。

  • ignore メソッドを呼び出して、自動データレポートを無効にします。詳細については、ignore を参照してください。

  • api() メソッドを呼び出して、API 操作に関するページ固有のデータを手動で報告します。詳細については、api() を参照してください。

[先頭に戻る]

parseResponse

parseResponse

関数

自動レポート API 中に返されたデータを解析するために使用されます。

いいえ

以下を参照

この構成項目は、API 操作のページ固有のデータが自動的に報告されるときに返されたデータを解析するために使用されます。

デフォルト値

次のサンプルコードは、デフォルトの構成を示しています。

function (res) {
    if (!res || typeof res !== 'object') return {};
    var code = res.code;
    var msg = res.msg || res.message || res.subMsg || res.errorMsg || res.ret || res.errorResponse || '';
    if (typeof msg === 'object') {
        code = code || msg.code;
        msg = msg.msg || msg.message || msg.info || msg.ret || JSON.stringify(msg);
    }
    return {msg: msg, code: code, success: true};
}                    

上記のコードは、返されたデータを解析し、msg パラメータと code パラメータを抽出するために使用されます。通常、デフォルトの構成を変更する必要はありません。ビジネス要件に基づいて構成を変更することもできます。

[先頭に戻る]

ignore

ignore

オブジェクト

指定された URL/API/JS エラーを無視します。ルールに一致するログは無視され、報告されません。これらには、サブ構成項目 ignoreUrlsignoreApisignoreErrors、および ignoreResErrors が含まれます。

いいえ

以下を参照

ignore パラメータの値は、4 つのプロパティ(ignoreUrlsignoreApisignoreErrorsignoreResErrors)を含むオブジェクトです。パラメータ値の 1 つ以上のプロパティを設定できます。

デフォルト値

次のサンプルコードは、デフォルトの構成を示しています。

ignore: {
        ignoreUrls: [],
        ignoreApis: [],
        ignoreErrors: [],
        ignoreResErrors: []
    },                    

ignoreUrls

ignoreUrls プロパティは、指定したルールに準拠する URL を無視するために使用されます。これらの URL からのログは報告されません。このプロパティの値は、文字列(String 型で示されます)、正規表現(RegExp 型で示されます)、メソッド(Function 型で示されます)、または上記の型のデータを含む配列です。例:

__bl.setConfig({
                ignore: {
                    ignoreUrls: [
                    'http://host1/',  // 文字列を指定します。
                    /.+?host2.+/,     // 正規表現を指定します。
                    function(str) {   // メソッドを指定します。
                        if (str && str.indexOf('host3') >= 0) {
                            return true; // データは報告されません。
                        }
                        return false; // データは報告されます。
                    }]
                }
            });                    

ignoreApis

ignoreApis プロパティは、指定したルールに準拠する API を無視するために使用されます。このプロパティの値は、文字列(String 型で示されます)、正規表現(RegExp 型で示されます)、メソッド(Function 型で示されます)、または上記の型のデータを含む配列です。例:

__bl.setConfig({
                ignore: {
                    ignoreApis: [
                    'api1','api2','api3', // 文字列を指定します。
                    /^random/,  // 正規表現を指定します。
                    function(str) { // メソッドを指定します。
                        if (str && str.indexOf('api3') >= 0) return true; // データは報告されません。
                        return false; // データは報告されます。
                    }]
                }
            });                    

ignoreErrors

ignoreErrors プロパティは、指定したルールに準拠する JS エラーを無視するために使用されます。このプロパティの値は、文字列(String 型で示されます)、正規表現(RegExp 型で示されます)、メソッド(Function 型で示されます)、または上記の型のデータを含む配列です。例:

__bl.setConfig({
                ignore: {
                    ignoreErrors: [
                    'test error', // 文字列を指定します。
                    /^Script error\.?$/, // 正規表現を指定します。
                    function(str) { // メソッドを指定します。
                        if (str && str.indexOf('Unknown error') >= 0) return true;   // データは報告されません。
                        return false; // データは報告されます。
                    }]
                }
            });            

ignoreResErrors

ignoreResErrors プロパティは、指定したルールに準拠するリソースエラーを無視するために使用されます。このプロパティの値は、文字列(String 型で示されます)、正規表現(RegExp 型で示されます)、メソッド(Function 型で示されます)、または上記の型のデータを含む配列です。例:

__bl.setConfig({
                ignore: {
                    ignoreResErrors: [
                    'http://xx/picture.jpg', // 文字列を指定します。
                    /jpg$/, // 正規表現を指定します。
                    function(str) { // メソッドを指定します。
                        if (str && str.indexOf('xx.jpg') >= 0) return true;   // データは報告されません。
                        return false; // データは報告されます。
                    }]
                }
            });

[先頭に戻る]

disabled

disabled

ブール値

ログレポート機能を無効にするかどうかを指定します。

いいえ

false

[先頭に戻る]

sample

sample

整数

パフォーマンスログと成功した API 操作に関するログのサンプリングレートを指定します。値は 1 から 100 の整数です。サンプリングレートは、次の式を使用して計算できます:1/sample の値。パフォーマンスログと成功した API ログのメトリックの詳細については、統計メトリック を参照してください。

いいえ

1

メリット:

  • サンプリングされた API データのみを報告することでコストを削減します。 ignore パラメーターを設定して、監視が不要なデータを特定することをお勧めします。詳細については、ignore を参照してください。

  • データ収集のパフォーマンスオーバーヘッドを削減します。

説明:

  • この構成項目を設定すると、パフォーマンスログとAPI操作の成功に関するログをランダムに選択して報告できます。これにより、報告されるデータ量とワークロードが削減されます。ARMSは、バックグラウンドで報告されたログを処理する際に、サンプリング設定に基づいてデータを復元します。このように、JSエラー率やAPI失敗率などのメトリクスはサンプリングの影響を受けず、正確なままです。ただし、このパラメータを設定すると、APIの詳細などの詳細データを取得できない場合があります。

  • sample パラメーターの既定値は 1 です。このパラメーターの有効な値は、1 から 100 までの整数です。サンプリングレートは、1/Value of sample という式を使用して計算できます。たとえば、パラメーター値 110100 は、それぞれ 100%、10%、1% のサンプリングレートを示します。

警告

データ量が少なく、ランダムサンプリングが実行される場合、統計結果に大きな偏差が生じる可能性があります。1日の平均ページビュー(PV)が100万を超えるWebサイトでこの設定項目を使用することをお勧めします。

[先頭に戻る]

pvSample

パラメーター

タイプ

説明

必須

デフォルト値

pvSample

整数

PV ログのサンプリングレートを指定します。値は 1 から 100 までの整数です。サンプリングレートは、次の式を使用して計算できます。1/Value of pvSample

いいえ

1

メリット:

  • サンプリングされた PV データのみを報告することでコストを削減します。

  • データ収集のパフォーマンスオーバーヘッドを削減します。

説明:

  • この構成項目を設定して、PV ログをランダムに選択して報告することができます。これにより、報告されるデータの量とワークロードが削減されます。ARMS がバックグラウンドで報告されたログを処理するときに、ARMS はサンプリング構成に基づいてデータを復元します。このように、JS エラー率などのメトリックはサンプリングの影響を受けず、正確なままです。

  • pvSample パラメーターのデフォルト値は 1 です。このパラメーターの有効な値は 1 から 100 までの整数です。サンプリングレートは、次の式を使用して計算できます。1/Value of pvSample。たとえば、パラメーター値 110100 は、それぞれ 100%、10%、1% のサンプリングレートを示します。

[先頭に戻る]

sendResource

sendResource

ブール値

ページ上の静的リソースを報告します。

いいえ

false

sendResource パラメーターが true に設定されている場合、ページの load イベントがトリガーされると、現在のページに読み込まれた静的リソースが報告されます。ページの読み込みが遅い場合は、[セッショントレース] ページで静的リソースのウォーターフォールチャートを表示して、原因を特定できます。

次のコードは、sendResource パラメーターを設定する方法の例を示しています。

<script>
!(function(c,b,d,a){c[a]||(c[a]={});c[a].config={pid:"xxxxxx",sendResource:true}; // pid を設定し、sendResource を true に設定します。
with(b)with(body)with(insertBefore(createElement("script"),firstChild))setAttribute("crossorigin","",src=d)
})(window,document,"https://retcode.alicdn.com/retcode/bl.js","__bl");
</script>            
説明

ページの読み込みが遅い問題をトラブルシューティングする場合、上記のサンプルコードに示すように、sendResource パラメーターを config 内に設定する必要があります。このようにすると、load イベントがトリガーされたときに静的リソースが報告されます。setConfig メソッドを呼び出すと、load イベントの完了後に静的リソースが報告される場合があります。この場合、sendResource パラメーターは、ページの読み込みが遅い原因を特定するのに役立ちません。

[先頭に戻る]

useFmp

useFmp

ブール値

First Meaningful Paint (FMP、最初の有効なレンダリング) データを収集します。

いいえ

false

[先頭に戻る]

enableLinkTrace

enableLinkTrace

ブール値

バックツーバックトレース分析の詳細については、フロントツーバックトレース機能を使用して API エラーを診断するを参照してください。

いいえ (Web シナリオ、Alipay アプレット、WeChat アプレット、DingTalk アプレットでのみサポートされています)

false

[先頭に戻る]

リリース

重要

release は、ページの初期化中に config で構成する必要があります。 setConfig メソッドを呼び出さないでください。

release

String

アプリケーションのバージョン。異なるバージョンのレポート情報を表示するために、このパラメーターを構成することをお勧めします。

いいえ

undefined

[先頭に戻る]

環境

環境

文字列

環境フィールド。有効な値: prod、gray、pre、daily、および local。

  • 値 prod はオンライン環境を示します。

  • 値 gray は段階的リリース環境を示します。

  • 値 pre はステージング環境を示します。

  • 値 daily は日次環境を示します。

  • 値 local はローカル環境を示します。

いいえ

prod

[先頭に戻る]

動作

動作

ブール値

トラブルシューティングを容易にするために、エラーを報告するユーザーの動作を記録するかどうかを指定します。

いいえ (Web およびミニプログラムのシナリオでのみサポートされています)

ブラウザーの既定値は true で、ミニプログラムの既定値は false です。

[先頭に戻る]

autoSendPerf

autoSendPerf

ブール値

パフォーマンスログの自動送信を許可するかどうかを指定します。

いいえ

true

[先頭に戻る]

c1\c2\c3

上記の構成項目に加えて、ARMS SDK は、ビジネス要件に合わせてフィールドを設定できる 3 つのカスタム構成項目を提供します。フィールドを設定すると、フィールド値は報告されるすべてのログに含まれます。

c1

文字列

カスタムサービスフィールド。各ログにはこのフィールドが含まれます。

いいえ

なし

c2

文字列

カスタムサービスフィールド。各ログにはこのフィールドが含まれます。

いいえ

なし

c3

文字列

カスタムサービスフィールド。各ログにはこのフィールドが含まれます。

いいえ

なし

説明

c1\c2\c3 は、現在のカスタムページのすべてのレポートに含まれるデータです。一般的に、c1\c2\c3 はサービスに関連しています。JavaScript 用のブラウザ監視 SDK を初期化するときに、ユーザーの VIP レベルなどのデータを照会するための SDK パラメーターを指定できます。

[先頭に戻る]