All Products
Search
Document Center

Application Real-Time Monitoring Service:Referensi SDK

Last Updated:Sep 05, 2026

Layanan Pemantauan Aplikasi Waktu Nyata (ARMS) Browser Monitoring menyediakan berbagai item konfigurasi SDK untuk memenuhi kebutuhan yang beragam. Misalnya, Anda dapat menggunakan item konfigurasi ini untuk mengabaikan URL, operasi API, atau error JavaScript (JS); mengelompokkan halaman dengan menghapus karakter non-kunci dari URL; serta mengurangi data yang dilaporkan atau beban kerja melalui pengambilan sampel acak.

Metode dalam topik ini

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

Menggunakan item konfigurasi SDK

Anda dapat menggunakan item konfigurasi SDK dengan salah satu metode berikut:

  • Saat menginstal agen Browser Monitoring ke halaman, tambahkan parameter ke config sesuai kebutuhan Anda.

    Misalnya, pada kode contoh berikut, selain parameter default pid, parameter enableSPA untuk aplikasi halaman tunggal (SPAs) ditambahkan ke 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://sdk.rum.aliyuncs.com/v1/bl.js","__bl");
    </script>                    
  • Setelah halaman diinisialisasi, panggil metode setConfig dalam kode JavaScript untuk mengubah item konfigurasi.

    Metode __bl.setConfig(next) menerima parameter berikut:

    Parameter

    Type

    Deskripsi

    Wajib

    Nilai default

    next

    Object

    Item konfigurasi dan nilainya yang ingin Anda ubah.

    Ya

    Tidak ada

pid

pid

String

ID unik proyek. Dihasilkan secara otomatis oleh ARMS saat membuat situs.

Ya

Tidak ada

[Kembali ke Atas]

uid

uid

String

ID pengguna. Nilainya merupakan identifikasi pengguna dan dapat digunakan untuk mencari pengguna tersebut. Anda dapat menentukan nilai kustom. Jika tidak ditentukan, SDK akan menghasilkan dan memperbarui ID ini secara otomatis setiap enam bulan.

  • Skenario Weex: wajib

  • Skenario lain: tidak diperlukan

  • Skenario Weex: Tidak ada

  • Skema lainnya: dihasilkan secara otomatis oleh SDK

Kode berikut memberikan contoh cara memanggil metode setConfig untuk mengubah item konfigurasi SDK:

__bl.setConfig({
    uid: 12345
});        
Catatan

Anda tidak dapat memanggil metode setConfig untuk mengubah parameter uid saat memantau mini program. Sebagai gantinya, Anda dapat memanggil metode setUsername untuk mengidentifikasi pengguna.

[Kembali ke Atas]

tag

tag

String

Tag input. Setiap log membawa tag ini.

Tidak

Tidak ada

[Kembali ke Atas]

page

page

String

Nama halaman.

Tidak

Secara default, bagian kunci dari URL halaman saat ini diambil: host + pathname.

Catatan

Anda dapat menggunakan properti ignoreErrors untuk mengkueri error yang ingin dilaporkan. Untuk informasi lebih lanjut, lihat ignore.

[Kembali ke Atas]

setUsername

setUsername

Function

Digunakan untuk menetapkan metode yang harus mengembalikan nama pengguna bertipe String.

Tidak

Tidak ada

Item konfigurasi ini digunakan untuk membuat fungsi yang mengambil username sebagai string. Setelah username diperoleh, Anda dapat melakukan pelacakan sesi end-to-end dan mengkueri sesi berdasarkan username untuk troubleshooting.

Catatan
  • Jika username tidak dapat diperoleh saat halaman diinisialisasi, Anda dapat mengatur nilai kembali menjadi null alih-alih username sementara. Jika nilai kembali diatur ke null, metode setUsername akan dipanggil lagi untuk mendapatkan username saat SDK mengirim log. Namun, jika Anda mengatur nilai kembali ke username sementara, maka username sementara tersebut akan digunakan dan setUsername tidak akan dipanggil lagi untuk mendapatkan username sebenarnya.

  • Metode setUsername hanya dapat diatur sekali selama waktu proses. Untuk mengubah metode ini, restart aplikasi.

Kode berikut memberikan contoh cara memanggil metode setConfig untuk mengubah item konfigurasi SDK:

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

[Kembali ke Atas]

enableSPA

enableSPA

Boolean

Memantau event hashchange pada halaman dan melaporkan PV lagi. Berlaku untuk skenario aplikasi halaman tunggal.

Tidak (hanya didukung dalam skenario Web)

false

[Kembali ke Atas]

parseHash

parseHash

Function

Digunakan bersama enableSPA.

Tidak

Lihat di bawah

Pada skenario aplikasi halaman tunggal (SPA) (lihat Pelaporan data halaman SPA), jika enableSPA diatur ke true, parameter parseHash mengurai hash URL ke bidang Page saat terjadi event hashchange.

Default value

Nilai default diperoleh dengan metode pemrosesan string berikut:

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

Umumnya, Anda tidak perlu mengubah parameter ini. Namun, jika Anda ingin menggunakan nama halaman kustom untuk melaporkan data spesifik halaman, atau jika hash URL kompleks, Anda dapat mengubah item konfigurasi ini. Contoh:

// Definisikan pemetaan antara hash URL dan nama halaman.
var PAGE_MAP = {
    '/': 'homepage',
    '/contact': 'contact us',
    '/list': 'data list',
    // ...
};
// Panggil metode SDK setelah halaman dimuat.
window.addEventListener('load', function (e) {
    // Panggil metode setConfig untuk mengubah item konfigurasi SDK.
    __bl.setConfig({
        parseHash: function (hash) {
            key = hash.replace(/\?.*$/, '');
            return PAGE_MAP[key] || 'unknown page';
        }
    });
});

[Kembali ke Atas]

disableHook

Penting

Parameter disableHook hanya berlaku saat konfigurasi diinisialisasi.

disableHook

Boolean

Menonaktifkan pendengar permintaan AJAX.

Tidak

false: Secara default, SDK memantau dan digunakan untuk melaporkan tingkat keberhasilan panggilan API.

[Kembali ke Atas]

ignoreUrlCase

ignoreUrlCase

Boolean

Mengabaikan besar/kecil huruf URL halaman.

Tidak

true: Secara default tidak membedakan besar/kecil huruf.

[Kembali ke Atas]

urlHelper

urlHelper

*

Menggantikan parameter lama ignoreUrlPath, digunakan untuk mengonfigurasi aturan penyaringan URL.

Tidak

Lihat di bawah

Saat URL halaman mirip dengan http://example.com/projects/123456 (di mana angka setelah projects adalah ID proyek), melaporkan example.com/projects/123456 sebagai halaman mencegah pengelompokan halaman ke dalam satu kategori saat melihat data. Dalam kasus ini, agar halaman serupa dapat dikelompokkan, Anda dapat menggunakan parameter urlHelper untuk menyaring karakter non-kritis, seperti ID proyek dalam contoh ini.

Penting
  • Parameter urlHelper menggantikan parameter ignoreUrlPath untuk mengabaikan karakter non-kunci dalam URL halaman. Jika Anda menentukan parameter ignoreUrlPath, konfigurasi tersebut tetap berlaku. Jika kedua parameter ignoreUrlPath dan urlHelper ditentukan, konfigurasi yang ditentukan oleh parameter urlHelper yang berlaku.

  • Pengaturan ini hanya berlaku saat SDK secara otomatis mengambil URL halaman sebagai nilai halaman. SDK mengabaikan pengaturan ini jika Anda menetapkan nilai halaman secara manual dengan memanggil metode setPage atau setConfig (lihat Metode SDK), atau jika enableSPA diatur ke true.

Default value

Nilai default item konfigurasi ini adalah array dalam kode contoh berikut. Dalam kebanyakan kasus, Anda tidak perlu mengubah nilainya:

[
    // Ganti semua angka dalam path dengan tanda bintang (*).
    {rule: /\/([a-z\-_]+)?\d{2,20}/g, target: '/$1**'},
    // Hapus garis miring (/) di akhir URL.
    /\/$/
]                    

Secara default, pengaturan ini mengganti identifier numerik yang mengikuti segmen path. Misalnya, baik xxxx/00001 maupun xxxx/00002 menjadi xxxx/**, sama seperti URL asli xxxx/123456.

Value types

Nilai parameter urlHelper dapat berupa tipe berikut:

  • String atau RegExp (ekspresi reguler): Menghapus bagian URL string yang cocok.

  • Object<rule, target>: Objek dengan kunci rule dan target. Keduanya diteruskan sebagai argumen ke metode JavaScript String.prototype.replace(). Untuk detailnya, lihat dokumentasi String.prototype.replace().

  • Function: Fungsi yang menerima string URL asli sebagai argumen. Nilai kembalinya digunakan sebagai nilai halaman akhir.

  • Array: Array yang berisi beberapa aturan, di mana setiap aturan dapat berupa salah satu tipe yang dijelaskan di atas.

[Kembali ke Atas]

apiHelper

apiHelper

*

Menggantikan parameter lama ignoreApiPath, digunakan untuk mengonfigurasi aturan penyaringan API.

Tidak

Lihat di bawah

Parameter ini digunakan untuk menghapus karakter non-kunci dalam URL halaman saat data spesifik halaman tentang operasi API dilaporkan secara otomatis. Penggunaan dan fungsinya sama dengan urlHelper.

Penting

Parameter apiHelper menggantikan parameter ignoreApiPath untuk mengabaikan karakter non-kunci dalam URL operasi API. Jika Anda menentukan parameter ignoreApiPath, konfigurasi tersebut tetap berlaku. Jika kedua parameter ignoreApiPath dan apiHelper ditentukan, konfigurasi yang ditentukan oleh parameter apiHelper yang berlaku.

Default value

Nilai default parameter ini adalah objek dan tidak perlu diubah:

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

Pengaturan default ini menyaring angka di akhir path URL API, seperti pada xxxx/123456.

Jika Anda perlu melaporkan parameter dari string kueri (bagian URL API setelah ?), seperti parameter pid dalam https://arms.console.alibabacloud.com/apm?pid=fr6fbgbeot, Anda harus menggunakan pelaporan manual:

  • Panggil metode ignore untuk menonaktifkan pelaporan data otomatis. Untuk informasi lebih lanjut, lihat ignore.

  • Panggil metode api() untuk melaporkan secara manual data spesifik halaman tentang operasi API. Untuk informasi lebih lanjut, lihat api().

[Kembali ke Atas]

parseResponse

parseResponse

Function

Digunakan untuk mengurai data yang dikembalikan selama pelaporan API otomatis.

Tidak

Lihat di bawah

Item konfigurasi ini digunakan untuk mengurai data yang dikembalikan saat data spesifik halaman operasi API dilaporkan secara otomatis.

Default value

Kode contoh berikut menunjukkan konfigurasi default:

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};
}                    

Fungsi default mengurai respons untuk mengekstrak properti msg dan code. Meskipun fungsi ini cocok untuk sebagian besar aplikasi, Anda dapat menggantinya jika tidak memenuhi kebutuhan bisnis Anda.

[Kembali ke Atas]

ignore

ignore

Object

Mengabaikan URL/API/error JS tertentu. Log yang memenuhi aturan akan diabaikan dan tidak dilaporkan. Termasuk sub-item konfigurasi ignoreUrls, ignoreApis, ignoreErrors, dan ignoreResErrors.

Tidak

Lihat di bawah

Nilai parameter ignore adalah objek yang berisi empat properti: ignoreUrls, ignoreApis, ignoreErrors, dan ignoreResErrors. Anda dapat mengatur satu atau beberapa properti dari nilai parameter ini.

Default value

Kode contoh berikut menunjukkan konfigurasi default:

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

ignoreUrls

Properti ignoreUrls menentukan URL yang akan diabaikan. Log dari URL yang cocok dengan pola tertentu tidak dilaporkan. Nilainya dapat berupa string, regular expression, function, atau array yang berisi tipe-tipe tersebut. Contoh:

__bl.setConfig({
                ignore: {
                    ignoreUrls: [
                    'http://host1/',  // string
                    /.+?host2.+/,     // regular expression
                    function(str) {   // function
                        if (str && str.indexOf('host3') >= 0) {
                            return true;   // Jangan laporkan
                        }
                        return false;      // Laporkan
                    }]
                }
            });                    

ignoreApis

Properti ignoreApis menentukan API yang akan diabaikan. Panggilan ke API yang cocok dengan pola tertentu tidak dipantau. Nilainya dapat berupa string, regular expression, function, atau array yang berisi tipe-tipe tersebut. Contoh:

__bl.setConfig({
                ignore: {
                    ignoreApis: [
                    'api1','api2','api3', // string
                    /^random/,  // regular expression
                    function(str) { // function
                        if (str && str.indexOf('api3') >= 0) return true;   // Jangan laporkan
                        return false;   // Laporkan
                    }]
                }
            });                    

ignoreErrors

Properti ignoreErrors menentukan error JS yang akan diabaikan. Error JS yang cocok dengan pola tertentu tidak dilaporkan. Nilainya dapat berupa string, regular expression, function, atau array yang berisi tipe-tipe tersebut. Contoh:

__bl.setConfig({
                ignore: {
                    ignoreErrors: [
                    'test error', // string
                    /^Script error\.?$/, // regular expression
                    function(str) { // function
                        if (str && str.indexOf('Unknown error') >= 0) return true;   // Jangan laporkan
                        return false;   // Laporkan
                    }]
                }
            });            

ignoreResErrors

Properti ignoreResErrors menentukan error resource yang akan diabaikan. Error resource yang cocok dengan pola tertentu tidak dilaporkan. Nilainya dapat berupa string, regular expression, function, atau array yang berisi tipe-tipe tersebut. Contoh:

__bl.setConfig({
                ignore: {
                    ignoreResErrors: [
                    'http://xx/picture.jpg', // string
                    /jpg$/, // regular expression
                    function(str) { // function
                        if (str && str.indexOf('xx.jpg') >= 0) return true;   // Jangan laporkan
                        return false;   // Laporkan
                    }]
                }
            });

[Kembali ke Atas]

disabled

disabled

Boolean

Menentukan apakah fungsi pelaporan log dinonaktifkan.

Tidak

false

[Kembali ke Atas]

sample

sample

Integer

Mengatur konfigurasi pengambilan sampel log API. Nilainya harus berupa bilangan bulat dari 1 hingga 100. Melakukan pengambilan sampel log performa dan log API sukses dengan laju 1/sample. Untuk informasi lebih lanjut tentang metrik terkait, lihat Metrik statistik.

Tidak

1

Manfaat:

  • Mengurangi biaya dengan hanya melaporkan data API yang diambil sampelnya. Kami menyarankan Anda mengidentifikasi data yang tidak perlu dipantau dengan mengatur parameter ignore. Untuk informasi lebih lanjut, lihat ignore.

  • Mengurangi overhead performa pengumpulan data.

Deskripsi:

  • Anda dapat mengatur item konfigurasi ini untuk memilih dan melaporkan log performa serta log operasi API sukses secara acak. Hal ini mengurangi volume data yang dilaporkan dan beban kerja. Saat ARMS memproses log yang dilaporkan di latar belakang, ARMS memulihkan data berdasarkan konfigurasi pengambilan sampel. Dengan cara ini, metrik seperti laju error JS atau laju kegagalan API tidak terpengaruh oleh pengambilan sampel dan tetap akurat. Namun, saat Anda mengatur parameter ini, Anda mungkin tidak dapat memperoleh data detail seperti detail API.

  • Nilai default sample adalah 1. Nilai yang valid adalah bilangan bulat dari 1 hingga 100. Laju pengambilan sampel adalah 1/sample. Misalnya, 1 berarti pengambilan sampel 100%, 10 berarti pengambilan sampel 10%, dan 100 berarti pengambilan sampel 1%.

Peringatan

Saat volume data total kecil dan pengambilan sampel acak tetap dilakukan, hasil statistik dapat mengalami deviasi besar. Kami menyarankan Anda menggunakan item konfigurasi ini untuk situs web yang memiliki rata-rata jumlah tampilan halaman (PV) harian lebih dari 1 juta.

[Kembali ke Atas]

pvSample

Parameter

Type

Deskripsi

Wajib

Nilai default

pvSample

Integer

Mengatur konfigurasi pengambilan sampel untuk log PV. Nilainya adalah bilangan bulat dari 1 hingga 100, dengan laju pengambilan sampel 1/pvSample.

Tidak

1

Manfaat:

  • Mengurangi biaya dengan hanya melaporkan data PV yang diambil sampelnya.

  • Mengurangi overhead performa pengumpulan data.

Deskripsi:

  • Anda dapat mengatur item konfigurasi ini untuk memilih dan melaporkan log PV secara acak. Hal ini mengurangi volume data yang dilaporkan dan beban kerja. Saat ARMS memproses log yang dilaporkan di latar belakang, ARMS memulihkan data berdasarkan konfigurasi pengambilan sampel. Dengan cara ini, metrik seperti laju error JS tidak terpengaruh oleh pengambilan sampel dan tetap akurat.

  • Nilai default pvSample adalah 1. Laju pengambilan sampel adalah 1/pvSample. Misalnya, nilai 1 berarti pengambilan sampel 100%, 10 berarti pengambilan sampel 10%, dan 100 berarti pengambilan sampel 1%.

[Kembali ke Atas]

sendResource

sendResource

Boolean

Memberikan laporan resource statis pada halaman.

Tidak

false

Jika parameter sendResource diatur ke true, resource statis pada halaman dilaporkan saat event load halaman dipicu. Jika halaman dimuat lambat, Anda dapat melihat grafik air terjun resource statisnya di halaman Session Traces untuk menemukan penyebabnya.

Kode berikut memberikan contoh cara mengatur parameter sendResource:

<script>
!(function(c,b,d,a){c[a]||(c[a]={});c[a].config={pid:"xxxxxx",sendResource:true};
with(b)with(body)with(insertBefore(createElement("script"),firstChild))setAttribute("crossorigin","",src=d)
})(window,document,"https://sdk.rum.aliyuncs.com/v1/bl.js","__bl");
</script>            
Catatan

Saat Anda ingin troubleshooting pemuatan halaman yang lambat, Anda harus mengonfigurasi parameter sendResource dalam config, seperti pada kode contoh di atas. Dengan cara ini, resource statis dilaporkan saat event load dipicu. Jika Anda memanggil metode setConfig, resource statis mungkin dilaporkan setelah event load selesai. Dalam kasus ini, parameter sendResource tidak dapat membantu Anda mengidentifikasi penyebab pemuatan halaman yang lambat.

[Kembali ke Atas]

useFmp

useFmp

Boolean

Mengumpulkan data FMP layar pertama (First Meaningful Paint, rendering valid pertama).

Tidak

false

[Kembali ke Atas]

enableLinkTrace

enableLinkTrace

Boolean

Untuk informasi lebih lanjut tentang Analisis Tracing back-to-back, lihat Diagnosa error API dengan tracing front-to-back.

Tidak (hanya didukung oleh skenario Web, applet Alipay, applet WeChat, dan applet DingTalk)

false

[Kembali ke Atas]

release

Penting

Anda harus mengonfigurasi release dalam config selama inisialisasi halaman. Jangan memanggil metode setConfig.

release

String

Versi aplikasi. Kami menyarankan Anda mengonfigurasi parameter ini untuk melihat informasi laporan dari versi berbeda.

Tidak

undefined

[Kembali ke Atas]

environment

environment

String

Bidang lingkungan. Nilai yang valid: prod, gray, pre, daily, dan local.

  • Nilai prod menunjukkan lingkungan online.

  • Nilai gray menunjukkan lingkungan rilis bertahap.

  • Nilai pre menunjukkan lingkungan staging.

  • Nilai daily menunjukkan lingkungan harian.

  • Nilai local menunjukkan lingkungan lokal.

Tidak

prod

[Kembali ke Atas]

behavior

behavior

Boolean

Menentukan apakah merekam perilaku pengguna yang melaporkan error untuk memudahkan troubleshooting.

Tidak (hanya didukung dalam skenario Web dan mini-program)

Nilai default untuk Browser adalah true, dan nilai default untuk mini program adalah false.

[Kembali ke Atas]

autoSendPerf

autoSendPerf

Boolean

Menentukan apakah mengizinkan pengiriman otomatis log performa.

Tidak

true

[Kembali ke Atas]

c1\c2\c3

Selain item konfigurasi di atas, SDK ARMS menyediakan tiga item konfigurasi kustom yang dapat Anda atur untuk memenuhi kebutuhan bisnis. Setelah Anda mengonfigurasi bidang-bidang tersebut, nilai bidang akan disertakan dalam semua log yang dilaporkan.

c1

String

Bidang layanan kustom. Setiap log membawa bidang ini.

Tidak

Tidak ada

c2

String

Bidang layanan kustom. Setiap log membawa bidang ini.

Tidak

Tidak ada

c3

String

Bidang layanan kustom. Setiap log membawa bidang ini.

Tidak

Tidak ada

Catatan

c1\c2\c3 adalah data yang dibawa dalam semua laporan pada halaman kustom saat ini. Umumnya, c1\c2\c3 terkait dengan layanan Anda. Saat menginisialisasi SDK Browser Monitoring untuk JavaScript, Anda dapat menentukan parameter SDK untuk mengkueri data, seperti level VIP pengguna.

[Kembali ke Atas]