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 |
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. |
|
|
Kode berikut memberikan contoh cara memanggil metode setConfig untuk mengubah item konfigurasi SDK:
__bl.setConfig({
uid: 12345
});
Anda tidak dapat memanggil metode setConfig untuk mengubah parameter uid saat memantau mini program. Sebagai gantinya, Anda dapat memanggil metode setUsername untuk mengidentifikasi pengguna.
tag
|
|
|
|
|
|
tag |
String |
Tag input. Setiap log membawa tag ini. |
Tidak |
Tidak ada |
page
|
|
|
|
|
|
page |
String |
Nama halaman. |
Tidak |
Secara default, bagian kunci dari URL halaman saat ini diambil: |
Anda dapat menggunakan properti ignoreErrors untuk mengkueri error yang ingin dilaporkan. Untuk informasi lebih lanjut, lihat ignore.
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.
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";
}
});
enableSPA
|
|
|
|
|
|
enableSPA |
Boolean |
Memantau event hashchange pada halaman dan melaporkan PV lagi. Berlaku untuk skenario aplikasi halaman tunggal. |
Tidak (hanya didukung dalam skenario Web) |
|
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';
}
});
});
disableHook
Parameter disableHook hanya berlaku saat konfigurasi diinisialisasi.
|
|
|
|
|
|
disableHook |
Boolean |
Menonaktifkan pendengar permintaan AJAX. |
Tidak |
|
ignoreUrlCase
|
|
|
|
|
|
ignoreUrlCase |
Boolean |
Mengabaikan besar/kecil huruf URL halaman. |
Tidak |
|
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.
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:
-
StringatauRegExp(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.
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.
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:
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.
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
}]
}
});
disabled
|
|
|
|
|
|
disabled |
Boolean |
Menentukan apakah fungsi pelaporan log dinonaktifkan. |
Tidak |
|
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 |
Tidak |
|
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
sampleadalah1. Nilai yang valid adalah bilangan bulat dari 1 hingga 100. Laju pengambilan sampel adalah1/sample. Misalnya,1berarti pengambilan sampel 100%,10berarti pengambilan sampel 10%, dan100berarti pengambilan sampel 1%.
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.
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 |
Tidak |
|
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
pvSampleadalah1. Laju pengambilan sampel adalah1/pvSample. Misalnya, nilai1berarti pengambilan sampel 100%,10berarti pengambilan sampel 10%, dan100berarti pengambilan sampel 1%.
sendResource
|
|
|
|
|
|
sendResource |
Boolean |
Memberikan laporan resource statis pada halaman. |
Tidak |
|
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>
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.
useFmp
|
|
|
|
|
|
useFmp |
Boolean |
Mengumpulkan data FMP layar pertama (First Meaningful Paint, rendering valid pertama). |
Tidak |
|
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) |
|
release
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 |
|
environment
|
|
|
|
|
|
environment |
String |
Bidang lingkungan. Nilai yang valid: prod, gray, pre, daily, dan local.
|
Tidak |
|
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 |
autoSendPerf
|
|
|
|
|
|
autoSendPerf |
Boolean |
Menentukan apakah mengizinkan pengiriman otomatis log performa. |
Tidak |
|
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 |
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.