All Products
Search
Document Center

Application Real-Time Monitoring Service:Konfigurasi SDK Pemantauan Browser

Last Updated:Mar 12, 2026

SDK ARMS Browser Monitoring menyediakan item konfigurasi untuk mengontrol pengumpulan dan pelaporan data. Gunakan item-item ini untuk memfilter URL, API, dan error JavaScript, mengagregasi halaman dengan menormalisasi URL, serta mengurangi volume data melalui pengambilan sampel.

Cara mengatur item konfigurasi

Tersedia dua metode:

  • Saat inisialisasi — Tambahkan parameter ke config saat menginstal agen Browser Monitoring pada halaman.

  • Setelah inisialisasi — Panggil __bl.setConfig(next) untuk memperbarui konfigurasi pada waktu proses.

Contoh inisialisasi

Skrip berikut menginstal agen dengan pid wajib ditambah tiga parameter opsional — enableSPA, sendResource, dan release:

<script>
!(function(c,b,d,a){c[a]||(c[a]={});c[a].config={
  pid: "<your-pid>",
  enableSPA: true,
  sendResource: true,
  release: "1.0.0"
};
with(b)with(body)with(insertBefore(createElement("script"),firstChild))setAttribute("crossorigin","",src=d)
})(window,document,"https://retcode.alicdn.com/retcode/bl.js","__bl");
</script>

Pembaruan runtime dengan setConfig

Panggil __bl.setConfig(next) untuk mengubah konfigurasi setelah halaman dimuat.

ParameterTipeWajibDeskripsi
nextObjectYaPasangan kunci-nilai dari item konfigurasi yang akan diperbarui
__bl.setConfig({
    uid: "user-12345",
    tag: "checkout-flow"
});
Penting

Parameter berikut hanya berlaku saat inisialisasi dan tidak dapat diubah melalui setConfig: disableHook dan release.


Referensi konfigurasi

Tabel berikut mencantumkan semua item konfigurasi yang dikelompokkan berdasarkan fungsinya. Setiap item dijelaskan secara rinci pada bagian selanjutnya.

Identitas

ParameterTipeBawaanDeskripsi
pidStringTidak adaID Proyek (wajib)
uidStringDihasilkan otomatisIdentifier pengguna
setUsernameFunctionTidak adaPanggilan balik yang mengembalikan username untuk pelacakan sesi

Halaman dan URL

ParameterTipeBawaanDeskripsi
pageStringhost + pathnameNama halaman kustom
tagStringTidak adaTag kustom yang dilampirkan pada setiap entri log
ignoreUrlCaseBooleantruePencocokan URL halaman tanpa membedakan huruf besar/kecil
urlHelperString \RegExp \Object \Function \ArrayLihat di bawahMenormalisasi URL halaman untuk agregasi
apiHelperString \RegExp \Object \Function \ArrayLihat di bawahMenormalisasi URL API untuk agregasi

Dukungan SPA

ParameterTipeBawaanDeskripsi
enableSPABooleanfalseMelaporkan PV pada setiap perubahan rute
parseHashFunctionLihat di bawahMengonversi hash URL menjadi nama halaman

Filtering data

ParameterTipeBawaanDeskripsi
ignoreObjectLihat di bawahMenekan pelaporan log untuk URL, API, atau error yang cocok
parseResponseFunctionLihat di bawahMengekstrak msg dan code dari respons API

Pengambilan sampel

ParameterTipeBawaanDeskripsi
sampleInteger (1–100)1Laju pengambilan sampel untuk log performa dan API sukses
pvSampleInteger (1–100)1Laju pengambil sampel untuk log PV

Pelacakan performa dan resource

ParameterTipeBawaanDeskripsi
sendResourceBooleanfalseMelaporkan resource statis yang dimuat pada halaman
useFmpBooleanfalseMengumpulkan data First Meaningful Paint (FMP)
autoSendPerfBooleantrueMengirim log performa secara otomatis
disableHookBooleanfalseMenonaktifkan pendengar permintaan AJAX

Pelacakan dan diagnostik

ParameterTipeBawaanDeskripsi
enableLinkTraceBooleanfalseMengaktifkan pelacakan front-to-back
behaviorBooleanBrowser: true; Mini program: falseMerekam aksi pengguna sebelum terjadi error

Metadata aplikasi

ParameterTipeBawaanDeskripsi
releaseStringundefinedString versi aplikasi
environmentStringprodLabel lingkungan penyebaran
disabledBooleanfalseMenonaktifkan semua pelaporan log

Bidang kustom

ParameterTipeBawaanDeskripsi
c1, c2, c3StringTidak adaBidang kustom yang dilampirkan pada setiap entri log

Identitas

pid

PropertiNilai
TipeString
WajibYa
BawaanTidak ada

ID proyek unik, dihasilkan secara otomatis saat ARMS membuat situs.

uid

PropertiNilai
TipeString
WajibYa (Weex); Tidak (skenario lain)
BawaanWeex: Tidak ada; Lainnya: dihasilkan otomatis oleh SDK, diperbarui setiap enam bulan

Identifier pengguna untuk pencarian dan pelacakan pengguna individu. Tentukan nilai kustom, atau biarkan SDK menghasilkannya secara otomatis.

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

Pada pemantauan mini program, setConfig tidak dapat mengubah uid. Gunakan setUsername sebagai gantinya.

setUsername

PropertiNilai
TipeFunction
WajibTidak
BawaanTidak ada

Panggilan balik yang mengembalikan string username. Setelah diatur, mengaktifkan pelacakan sesi end-to-end dan pencarian sesi berdasarkan username untuk troubleshooting.

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

Perilaku:

  • Jika username tidak tersedia saat pemuatan halaman, kembalikan null — bukan placeholder. SDK akan memanggil setUsername lagi saat mengirim log. Mengembalikan placeholder berarti nilai tersebut digunakan dan setUsername tidak dipanggil lagi.

  • setUsername hanya menerima satu penugasan per waktu proses. Mulai ulang aplikasi untuk menetapkannya kembali.


Konfigurasi halaman dan URL

page

PropertiNilai
TipeString
WajibTidak
Bawaanhost + pathname dari URL saat ini

Mengganti nama halaman yang terdeteksi otomatis dengan nilai kustom.

Catatan

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

tag

PropertiNilai
TypeString
WajibTidak
BawaanTidak ada

Tag kustom yang dilampirkan pada setiap entri log. Gunakan tag untuk mengkategorikan atau memfilter log di Konsol ARMS.

ignoreUrlCase

PropertiNilai
TipeBoolean
WajibTidak
Bawaantrue

Jika diatur ke true, pencocokan URL halaman tidak membedakan huruf besar/kecil.

urlHelper

PropertiNilai
TipeString \RegExp \Object\ \Function \Array
WajibTidak
BawaanLihat di bawah

Menormalisasi URL halaman dengan menghapus segmen dinamis agar halaman serupa teragregasi dalam satu entri. Menggantikan parameter lama ignoreUrlPath.

Mengapa menormalisasi URL: URL seperti example.com/projects/123456 menghasilkan nama halaman unik per ID proyek. urlHelper menghapus segmen dinamis sehingga semua halaman proyek teragregasi sebagai example.com/projects/**.

Default value:

[
    // Ganti rangkaian digit (2–20 karakter) dengan **
    {rule: /\/([a-z\-_]+)?\d{2,20}/g, target: '/$1**'},
    // Hapus slash akhir
    /\/$/
]

Tipe nilai yang didukung:

JenisPerilaku
String atau RegExpSubstring yang cocok dihapus
Object {rule, target}Bekerja seperti String.replace(rule, target)
FunctionMenerima URL asli, mengembalikan nama halaman
ArrayMenerapkan beberapa aturan secara berurutan; setiap elemen bisa berupa tipe apa pun di atas
Penting
  • Jika ignoreUrlPath dan urlHelper keduanya diatur, urlHelper memiliki prioritas lebih tinggi.

  • urlHelper hanya berlaku saat URL halaman terdeteksi otomatis. Tidak berpengaruh jika setPage, setConfig, atau enableSPA: true mengganti nama halaman. Untuk informasi lebih lanjut, lihat Metode SDK.

apiHelper

PropertiNilai
TipeString \RegExp \Object\ \Function \Array
WajibTidak
Bawaan{rule: /(\w+)\/\d{2,}/g, target: '$1'}

Menormalisasi URL API dengan menghapus segmen dinamis, sama seperti cara urlHelper menormalisasi URL halaman. Menggantikan parameter lama ignoreApiPath.

Penting

Jika ignoreApiPath dan apiHelper keduanya diatur, apiHelper memiliki prioritas lebih tinggi.

Melaporkan parameter kueri dalam data API: Untuk menyertakan parameter kueri (misalnya, pid dalam https://arms.console.aliyun.com/apm?pid=fr6fbgbeot), nonaktifkan pelaporan otomatis dengan parameter ignore dan panggil api() secara manual. Untuk detailnya, lihat api().


Dukungan SPA

enableSPA

PropertiNilai
TipeBoolean
WajibTidak (Web saja)
Bawaanfalse

Mendengarkan event hashchange dan melaporkan tampilan halaman baru (PV) pada setiap perubahan rute. Aktifkan ini untuk aplikasi halaman tunggal (SPAs).

parseHash

PropertiNilai
TipeFunction
WajibTidak
BawaanLihat di bawah

Digunakan bersama enableSPA. Saat enableSPA bernilai true dan event hashchange terpicu, parseHash mengonversi hash URL menjadi nama halaman untuk bidang Page. Untuk detailnya, lihat Pelaporan data halaman SPAs.

Default value:

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

Umumnya, nilai bawaan sudah cukup. Untuk memetakan hash ke nama halaman kustom, timpa fungsi ini:

var PAGE_MAP = {
    '/': 'Homepage',
    '/contact': 'Contact us',
    '/list': 'Data list'
};

window.addEventListener('load', function (e) {
    __bl.setConfig({
        parseHash: function (hash) {
            var key = hash.replace(/\?.*$/, '');
            return PAGE_MAP[key] || 'Unknown page';
        }
    });
});

Filtering data

ignore

PropertiNilai
JenisObject
WajibTidak
Bawaan{ignoreUrls: [], ignoreApis: [], ignoreErrors: [], ignoreResErrors: []}

Menekan pelaporan log untuk URL, API, error JavaScript, atau error pemuatan resource yang cocok dengan aturan tertentu. Berisi empat sub-properti.

Setiap sub-properti menerima String, RegExp, Function, atau Array dari tipe-tipe tersebut.

ignoreUrls

Menekan log dari URL halaman yang cocok.

__bl.setConfig({
    ignore: {
        ignoreUrls: [
            'http://host1/',                     // Pencocokan string eksak
            /.+?host2.+/,                        // Pencocokan regex
            function(str) {                      // Fungsi kustom
                if (str && str.indexOf('host3') >= 0) {
                    return true;   // Tekan
                }
                return false;      // Laporkan
            }
        ]
    }
});

ignoreApis

Menekan log dari URL API yang cocok.

__bl.setConfig({
    ignore: {
        ignoreApis: [
            'api1', 'api2', 'api3',              // Pencocokan string
            /^random/,                            // Pencocokan regex
            function(str) {                       // Fungsi kustom
                if (str && str.indexOf('api3') >= 0) return true;
                return false;
            }
        ]
    }
});

ignoreErrors

Menekan pesan error JavaScript yang cocok.

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

ignoreResErrors

Menekan error pemuatan resource yang cocok.

__bl.setConfig({
    ignore: {
        ignoreResErrors: [
            'http://xx/picture.jpg',              // Pencocokan string
            /jpg$/,                               // Pencocokan regex
            function(str) {                       // Fungsi kustom
                if (str && str.indexOf('xx.jpg') >= 0) return true;
                return false;
            }
        ]
    }
});

parseResponse

PropertiNilai
TypeFunction
WajibTidak
BawaanLihat di bawah

Mengurai data respons API selama pelaporan otomatis. Mengekstrak msg dan code dari objek respons.

Default value:

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

Timpa fungsi ini jika struktur respons API Anda berbeda.


Pengambilan sampel

sample

PropertiNilai
JenisInteger
WajibTidak
Bawaan1
Rentang1–100

Mengontrol laju pengambilan sampel untuk log performa dan log API sukses. Laju pengambilan sampel = 1 / sample:

NilaiLaju pengambilan sampel
1100% (semua data)
1010%
1001%

Pengambilan sampel mengurangi volume data dan overhead pengumpulan. Untuk mengurangi biaya, Anda juga dapat menggunakan parameter ignore untuk menghentikan pelaporan data yang tidak perlu dipantau. Untuk informasi lebih lanjut, lihat ignore.

ARMS melakukan kompensasi terhadap pengambilan sampel selama pemrosesan, sehingga metrik agregat seperti laju error JS dan laju kegagalan API tetap akurat. Namun, detail log individual mungkin hilang.

Untuk informasi lebih lanjut tentang metrik yang terpengaruh, lihat Metrik statistik.

Peringatan

Pengambilan sampel acak pada situs dengan trafik rendah menyebabkan penyimpangan statistik signifikan. Gunakan parameter ini hanya untuk situs dengan lebih dari 1 juta tampilan halaman harian.

pvSample

PropertiNilai
JenisInteger
WajibTidak
Bawaan1
Rentang1–100

Mengontrol laju pengambilan sampel untuk log tampilan halaman (PV). Rumusnya sama seperti sample: laju pengambilan sampel = 1 / pvSample.

ARMS melakukan kompensasi terhadap pengambilan sampel selama pemrosesan, sehingga metrik agregat seperti laju error JS tetap akurat.


Pelacakan performa dan resource

sendResource

PropertiNilai
TipeBoolean
WajibTidak
Bawaanfalse

Jika diatur ke true, melaporkan semua resource statis yang dimuat pada halaman saat event load. Gunakan grafik air terjun Pelacakan Sesi untuk mengidentifikasi resource yang menyebabkan pemuatan halaman lambat.

<script>
!(function(c,b,d,a){c[a]||(c[a]={});c[a].config={pid:"<your-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>
Catatan

Atur sendResource dalam config saat inisialisasi, bukan melalui setConfig. Memanggil setConfig mungkin dieksekusi setelah event load selesai, sehingga data resource statis tidak lagi tersedia.

useFmp

PropertiNilai
TipeBoolean
WajibTidak
Bawaanfalse

Mengaktifkan pengumpulan data First Meaningful Paint (FMP) untuk analisis rendering layar pertama.

autoSendPerf

PropertiNilai
TipeBoolean
WajibTidak
Bawaantrue

Mengontrol apakah log performa dikirim secara otomatis.

disableHook

PropertiNilai
TipeBoolean
WajibTidak
Bawaanfalse

Menonaktifkan pendengar permintaan AJAX. Secara default, SDK mencegat panggilan AJAX untuk melaporkan laju keberhasilan API.

Penting

Parameter ini hanya berlaku saat inisialisasi.


Pelacakan dan diagnostik

enableLinkTrace

PropertiNilai
TypeBoolean
WajibTidak (Web, mini program Alipay, mini program WeChat, dan mini program DingTalk saja)
Bawaanfalse

Mengaktifkan pelacakan front-to-back, menghubungkan permintaan browser dengan jejak sisi server. Untuk detailnya, lihat Gunakan fitur pelacakan front-to-back untuk mendiagnosis error API.

behavior

PropertiNilai
TipeBoolean
WajibTidak (Web dan mini program saja)
BawaanBrowser: true; Mini program: false

Merekam urutan aksi pengguna menjelang terjadinya error, membantu troubleshooting.


Metadata aplikasi

release

PropertiNilai
TipeString
WajibTidak
Bawaanundefined

String versi aplikasi. Atur ini untuk membandingkan data pemantauan antar rilis berbeda.

Penting

Atur release dalam config saat inisialisasi. Jangan gunakan setConfig.

environment

PropertiNilai
TipeString
WajibTidak
Bawaanprod

Label lingkungan penyebaran. Nilai yang valid:

NilaiLingkungan
prodProduksi
grayRilis bertahap
preStaging
dailyHarian / Pengembangan
localLokal

disabled

PropertiNilai
TipeBoolean
WajibTidak
Bawaanfalse

Jika diatur ke true, menonaktifkan semua pelaporan log.


Bidang kustom

c1, c2, c3

PropertiNilai
TipeString
WajibTidak
BawaanTidak ada

Tiga bidang kustom yang dilampirkan pada setiap entri log. Membawa data spesifik bisnis seperti level VIP pengguna, grup uji A/B, atau flag fitur.

__bl.setConfig({
    c1: "premium",
    c2: "experiment-group-B",
    c3: "feature-darkmode"
});
Catatan

Nilai yang ditetapkan untuk c1, c2, dan c3 disertakan dalam semua log yang dilaporkan dari halaman saat ini.