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
configsaat 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.
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| next | Object | Ya | Pasangan kunci-nilai dari item konfigurasi yang akan diperbarui |
__bl.setConfig({
uid: "user-12345",
tag: "checkout-flow"
});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
| Parameter | Tipe | Bawaan | Deskripsi |
|---|---|---|---|
| pid | String | Tidak ada | ID Proyek (wajib) |
| uid | String | Dihasilkan otomatis | Identifier pengguna |
| setUsername | Function | Tidak ada | Panggilan balik yang mengembalikan username untuk pelacakan sesi |
Halaman dan URL
| Parameter | Tipe | Bawaan | Deskripsi | ||||
|---|---|---|---|---|---|---|---|
| page | String | host + pathname | Nama halaman kustom | ||||
| tag | String | Tidak ada | Tag kustom yang dilampirkan pada setiap entri log | ||||
| ignoreUrlCase | Boolean | true | Pencocokan URL halaman tanpa membedakan huruf besar/kecil | ||||
| urlHelper | String \ | RegExp \ | Object \ | Function \ | Array | Lihat di bawah | Menormalisasi URL halaman untuk agregasi |
| apiHelper | String \ | RegExp \ | Object \ | Function \ | Array | Lihat di bawah | Menormalisasi URL API untuk agregasi |
Dukungan SPA
| Parameter | Tipe | Bawaan | Deskripsi |
|---|---|---|---|
| enableSPA | Boolean | false | Melaporkan PV pada setiap perubahan rute |
| parseHash | Function | Lihat di bawah | Mengonversi hash URL menjadi nama halaman |
Filtering data
| Parameter | Tipe | Bawaan | Deskripsi |
|---|---|---|---|
| ignore | Object | Lihat di bawah | Menekan pelaporan log untuk URL, API, atau error yang cocok |
| parseResponse | Function | Lihat di bawah | Mengekstrak msg dan code dari respons API |
Pengambilan sampel
| Parameter | Tipe | Bawaan | Deskripsi |
|---|---|---|---|
| sample | Integer (1–100) | 1 | Laju pengambilan sampel untuk log performa dan API sukses |
| pvSample | Integer (1–100) | 1 | Laju pengambil sampel untuk log PV |
Pelacakan performa dan resource
| Parameter | Tipe | Bawaan | Deskripsi |
|---|---|---|---|
| sendResource | Boolean | false | Melaporkan resource statis yang dimuat pada halaman |
| useFmp | Boolean | false | Mengumpulkan data First Meaningful Paint (FMP) |
| autoSendPerf | Boolean | true | Mengirim log performa secara otomatis |
| disableHook | Boolean | false | Menonaktifkan pendengar permintaan AJAX |
Pelacakan dan diagnostik
| Parameter | Tipe | Bawaan | Deskripsi |
|---|---|---|---|
| enableLinkTrace | Boolean | false | Mengaktifkan pelacakan front-to-back |
| behavior | Boolean | Browser: true; Mini program: false | Merekam aksi pengguna sebelum terjadi error |
Metadata aplikasi
| Parameter | Tipe | Bawaan | Deskripsi |
|---|---|---|---|
| release | String | undefined | String versi aplikasi |
| environment | String | prod | Label lingkungan penyebaran |
| disabled | Boolean | false | Menonaktifkan semua pelaporan log |
Bidang kustom
| Parameter | Tipe | Bawaan | Deskripsi |
|---|---|---|---|
| c1, c2, c3 | String | Tidak ada | Bidang kustom yang dilampirkan pada setiap entri log |
Identitas
pid
| Properti | Nilai |
|---|---|
| Tipe | String |
| Wajib | Ya |
| Bawaan | Tidak ada |
ID proyek unik, dihasilkan secara otomatis saat ARMS membuat situs.
uid
| Properti | Nilai |
|---|---|
| Tipe | String |
| Wajib | Ya (Weex); Tidak (skenario lain) |
| Bawaan | Weex: 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"
});Pada pemantauan mini program, setConfig tidak dapat mengubah uid. Gunakan setUsername sebagai gantinya.
setUsername
| Properti | Nilai |
|---|---|
| Tipe | Function |
| Wajib | Tidak |
| Bawaan | Tidak 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 memanggilsetUsernamelagi saat mengirim log. Mengembalikan placeholder berarti nilai tersebut digunakan dansetUsernametidak dipanggil lagi.setUsernamehanya menerima satu penugasan per waktu proses. Mulai ulang aplikasi untuk menetapkannya kembali.
Konfigurasi halaman dan URL
page
| Properti | Nilai |
|---|---|
| Tipe | String |
| Wajib | Tidak |
| Bawaan | host + pathname dari URL saat ini |
Mengganti nama halaman yang terdeteksi otomatis dengan nilai kustom.
Anda dapat menggunakan properti ignoreErrors untuk memfilter error yang ingin dilaporkan. Untuk informasi lebih lanjut, lihat ignore.
tag
| Properti | Nilai |
|---|---|
| Type | String |
| Wajib | Tidak |
| Bawaan | Tidak ada |
Tag kustom yang dilampirkan pada setiap entri log. Gunakan tag untuk mengkategorikan atau memfilter log di Konsol ARMS.
ignoreUrlCase
| Properti | Nilai |
|---|---|
| Tipe | Boolean |
| Wajib | Tidak |
| Bawaan | true |
Jika diatur ke true, pencocokan URL halaman tidak membedakan huruf besar/kecil.
urlHelper
| Properti | Nilai | ||||
|---|---|---|---|---|---|
| Tipe | String \ | RegExp \ | Object\ | Function \ | Array |
| Wajib | Tidak | ||||
| Bawaan | Lihat 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:
| Jenis | Perilaku |
|---|---|
| String atau RegExp | Substring yang cocok dihapus |
Object {rule, target} | Bekerja seperti String.replace(rule, target) |
| Function | Menerima URL asli, mengembalikan nama halaman |
| Array | Menerapkan beberapa aturan secara berurutan; setiap elemen bisa berupa tipe apa pun di atas |
Jika
ignoreUrlPathdanurlHelperkeduanya diatur,urlHelpermemiliki prioritas lebih tinggi.urlHelperhanya berlaku saat URL halaman terdeteksi otomatis. Tidak berpengaruh jikasetPage,setConfig, atauenableSPA: truemengganti nama halaman. Untuk informasi lebih lanjut, lihat Metode SDK.
apiHelper
| Properti | Nilai | ||||
|---|---|---|---|---|---|
| Tipe | String \ | RegExp \ | Object\ | Function \ | Array |
| Wajib | Tidak | ||||
| 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.
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
| Properti | Nilai |
|---|---|
| Tipe | Boolean |
| Wajib | Tidak (Web saja) |
| Bawaan | false |
Mendengarkan event hashchange dan melaporkan tampilan halaman baru (PV) pada setiap perubahan rute. Aktifkan ini untuk aplikasi halaman tunggal (SPAs).
parseHash
| Properti | Nilai |
|---|---|
| Tipe | Function |
| Wajib | Tidak |
| Bawaan | Lihat 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
| Properti | Nilai |
|---|---|
| Jenis | Object |
| Wajib | Tidak |
| 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
| Properti | Nilai |
|---|---|
| Type | Function |
| Wajib | Tidak |
| Bawaan | Lihat 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
| Properti | Nilai |
|---|---|
| Jenis | Integer |
| Wajib | Tidak |
| Bawaan | 1 |
| Rentang | 1–100 |
Mengontrol laju pengambilan sampel untuk log performa dan log API sukses. Laju pengambilan sampel = 1 / sample:
| Nilai | Laju pengambilan sampel |
|---|---|
1 | 100% (semua data) |
10 | 10% |
100 | 1% |
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.
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
| Properti | Nilai |
|---|---|
| Jenis | Integer |
| Wajib | Tidak |
| Bawaan | 1 |
| Rentang | 1–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
| Properti | Nilai |
|---|---|
| Tipe | Boolean |
| Wajib | Tidak |
| Bawaan | false |
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>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
| Properti | Nilai |
|---|---|
| Tipe | Boolean |
| Wajib | Tidak |
| Bawaan | false |
Mengaktifkan pengumpulan data First Meaningful Paint (FMP) untuk analisis rendering layar pertama.
autoSendPerf
| Properti | Nilai |
|---|---|
| Tipe | Boolean |
| Wajib | Tidak |
| Bawaan | true |
Mengontrol apakah log performa dikirim secara otomatis.
disableHook
| Properti | Nilai |
|---|---|
| Tipe | Boolean |
| Wajib | Tidak |
| Bawaan | false |
Menonaktifkan pendengar permintaan AJAX. Secara default, SDK mencegat panggilan AJAX untuk melaporkan laju keberhasilan API.
Parameter ini hanya berlaku saat inisialisasi.
Pelacakan dan diagnostik
enableLinkTrace
| Properti | Nilai |
|---|---|
| Type | Boolean |
| Wajib | Tidak (Web, mini program Alipay, mini program WeChat, dan mini program DingTalk saja) |
| Bawaan | false |
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
| Properti | Nilai |
|---|---|
| Tipe | Boolean |
| Wajib | Tidak (Web dan mini program saja) |
| Bawaan | Browser: true; Mini program: false |
Merekam urutan aksi pengguna menjelang terjadinya error, membantu troubleshooting.
Metadata aplikasi
release
| Properti | Nilai |
|---|---|
| Tipe | String |
| Wajib | Tidak |
| Bawaan | undefined |
String versi aplikasi. Atur ini untuk membandingkan data pemantauan antar rilis berbeda.
Atur release dalam config saat inisialisasi. Jangan gunakan setConfig.
environment
| Properti | Nilai |
|---|---|
| Tipe | String |
| Wajib | Tidak |
| Bawaan | prod |
Label lingkungan penyebaran. Nilai yang valid:
| Nilai | Lingkungan |
|---|---|
prod | Produksi |
gray | Rilis bertahap |
pre | Staging |
daily | Harian / Pengembangan |
local | Lokal |
disabled
| Properti | Nilai |
|---|---|
| Tipe | Boolean |
| Wajib | Tidak |
| Bawaan | false |
Jika diatur ke true, menonaktifkan semua pelaporan log.
Bidang kustom
c1, c2, c3
| Properti | Nilai |
|---|---|
| Tipe | String |
| Wajib | Tidak |
| Bawaan | Tidak 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"
});Nilai yang ditetapkan untuk c1, c2, dan c3 disertakan dalam semua log yang dilaporkan dari halaman saat ini.