Layanan Pemantauan Real-Time Aplikasi (ARMS) Browser Monitoring menyediakan berbagai item konfigurasi SDK untuk memenuhi kebutuhan yang berbeda. Anda dapat menggunakan item konfigurasi ini untuk mengabaikan URL, Operasi API, atau kesalahan JavaScript (JS), menggabungkan 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.
Sebagai contoh, dalam kode sampel berikut, selain parameter pid default, parameter enableSPA untuk aplikasi satu halaman (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://retcode.alicdn.com/retcode/bl.js","__bl"); </script>Setelah halaman diinisialisasi, panggil metode setConfig dalam kode JavaScript untuk memodifikasi item konfigurasi.
Tabel berikut menjelaskan parameter dari metode __bl.setConfig(next).Parameter
Tipe
Deskripsi
Diperlukan
Nilai default
next
Object
Item konfigurasi dan nilainya yang ingin Anda modifikasi.
Ya
Tidak ada
pid
|
|
|
|
|
pid | String | ID unik proyek. Ini dibuat secara otomatis oleh ARMS saat membuat situs. | Ya | Tidak ada |
uid
|
|
|
|
|
uid | String | ID pengguna. Nilainya adalah pengenal pengguna dan dapat digunakan untuk mencari pengguna. Anda dapat menentukan nilai kustom. Jika Anda tidak menentukan parameter ini, SDK akan menghasilkan dan memperbarui setiap enam bulan. |
|
|
Kode berikut memberikan contoh cara memanggil metode setConfig untuk memodifikasi item konfigurasi SDK:
__bl.setConfig({
uid: 12345
}); Anda tidak dapat memanggil metode setConfig untuk memodifikasi 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. | 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 menanyakan kesalahan yang ingin Anda laporkan. Untuk informasi lebih lanjut, lihat ignore.
setUsername
|
|
|
|
|
setUsername | Fungsi | Digunakan untuk menetapkan metode yang perlu mengembalikan nama pengguna bertipe String. | Tidak | Tidak ada |
Item konfigurasi ini digunakan untuk membuat fungsi yang mendapatkan nama pengguna sebagai string. Setelah nama pengguna diperoleh, Anda dapat menerapkan pelacakan sesi end-to-end dan menanyakan sesi berdasarkan nama pengguna untuk memecahkan masalah.
Jika nama pengguna tidak dapat diperoleh saat halaman diinisialisasi, Anda dapat menetapkan nilai pengembalian menjadi null bukan nama pengguna sementara. Jika Anda menetapkan nilai pengembalian menjadi null, metode setUsername akan dipanggil lagi untuk mendapatkan nama pengguna saat SDK digunakan untuk mengirim log. Namun, jika Anda menetapkan nilai pengembalian menjadi nama pengguna sementara, nama pengguna tersebut digunakan dan setUsername tidak dipanggil lagi untuk mendapatkan nama pengguna sebenarnya.
Metode setUsername hanya dapat disetel sekali selama runtime. Untuk memodifikasi metode, mulai ulang aplikasi.
Kode berikut memberikan contoh cara memanggil metode setConfig untuk memodifikasi item konfigurasi SDK:
__bl.setConfig({
setUsername: function () {
return "username_xxx";
}
}); enableSPA
|
|
|
|
|
enableSPA | Boolean | Mendengarkan event hashchange pada halaman dan melaporkan PV lagi. Ini berlaku untuk skenario aplikasi satu halaman. | Tidak (didukung hanya dalam skenario Web) |
|
parseHash
|
|
|
|
|
parseHash | Fungsi | Digunakan bersama dengan enableSPA. | Tidak | Lihat di bawah |
Dalam SPA, ketika parameter enableSPA disetel ke true dan halaman memicu event hashchange, parameter parseHash digunakan untuk mengurai URL hash menjadi nama halaman yang ditunjukkan oleh bidang Page. Untuk informasi lebih lanjut tentang SPA, lihat Pelaporan data halaman SPA.
Default value
Nilai default diperoleh dengan menggunakan metode pemrosesan string berikut:
function (hash) {
var page = hash ? hash.replace(/^#/, '').replace(/\?.*$/, '') : '';
return page || '[index]';
} Umumnya, Anda tidak perlu memodifikasi parameter ini. Namun, jika Anda ingin menggunakan nama halaman kustom untuk melaporkan data spesifik halaman, atau jika URL hash kompleks, Anda dapat memodifikasi item konfigurasi ini. Contoh:
// Tentukan pemetaan antara URL hash dan nama halaman.
var PAGE_MAP = {
'/': 'Beranda',
'/contact': 'Hubungi kami',
'/list': 'Daftar data',
// ...
};
// Panggil metode SDK setelah halaman dimuat.
window.addEventListener('load', function (e) {
// Panggil metode setConfig untuk memodifikasi item konfigurasi parseHash.
__bl.setConfig({
parseHash: function (hash) {
key = hash.replace(/\?.*$/, '');
return PAGE_MAP[key] || 'Halaman tidak dikenal';
}
});
});disableHook
Parameter disableHook hanya berlaku saat konfigurasi diinisialisasi.
|
|
|
|
|
disableHook | Boolean | Nonaktifkan pendengar permintaan AJAX. | Tidak |
|
ignoreUrlCase
|
|
|
|
|
ignoreUrlCase | Boolean | Abaikan huruf besar/kecil pada URL Halaman. | Tidak |
|
urlHelper
|
|
|
|
|
urlHelper | * | Digunakan sebagai pengganti parameter lama ignoreUrlPath, digunakan untuk mengonfigurasi aturan penyaringan URL. | Tidak | Lihat di bawah |
Saat URL halaman dalam format http://example.com/projects/123456 (di mana nilai yang mengikuti projects adalah ID proyek), data spesifik halaman dilaporkan dengan nama halaman sebagai example.com/projects/123456. Dalam kasus ini, data halaman serupa tentang proyek tidak dapat digabungkan. Jika Anda ingin menggabungkan data halaman serupa, tetapkan parameter urlHelper untuk menghapus karakter non-kunci dari URL halaman, 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 masih berlaku. Jika kedua parameter ignoreUrlPath dan urlHelper ditentukan, konfigurasi yang ditentukan oleh parameter urlHelper berlaku.
Item konfigurasi ini hanya valid ketika URL halaman diperoleh secara otomatis dan digunakan sebagai nama halaman untuk pelaporan data. Parameter ini tidak valid saat Anda secara manual memodifikasi nama halaman dengan memanggil metode setPage atau setConfig, atau saat parameter enableSPA disetel ke
true. Untuk informasi lebih lanjut tentang metode setConfig, lihat Metode SDK.
Default value
Nilai default dari item konfigurasi ini adalah array dalam kode sampel berikut. Dalam banyak kasus, Anda tidak perlu memodifikasi nilainya:
[
// Ganti semua digit dalam URL dengan tanda bintang (*).
{rule: /\/([a-z\-_]+)?\d{2,20}/g, target: '/$1**'},
// Hapus garis miring (/) di akhir URL.
/\/$/
] Nilai default parameter ini digunakan untuk mengganti digit dengan tanda bintang (*) dalam string seperti xxxx/123456. Sebagai contoh, xxxx/00001 dan xxxx/00002 diubah menjadi xxxx/**.
Value types
Nilai parameter urlHelper dapat berupa salah satu dari tipe berikut:
StringatauRegExp(ekspresi reguler): String yang cocok akan dihapus.Object<rule, target>: Objek tersebut berisi dua kunci, rule dan target, yang merupakan parameter input metode replace dalam string JavaScript. Untuk informasi lebih lanjut, lihat metode String::replace yang dijelaskan dalam tutorial JavaScript terkait.Function: String asli digunakan sebagai parameter input untuk membuat fungsi. Nilai pengembalian fungsi digunakan sebagai nama halaman.Array: Tipe nilai ini digunakan untuk menetapkan beberapa aturan untuk menghapus karakter non-kunci dalam URL halaman. Nilai setiap aturan dapat berupa salah satu tipe sebelumnya.
apiHelper
|
|
|
|
|
apiHelper | * | Digunakan sebagai pengganti 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 fungsi parameter ini sama dengan urlHelper.
Parameter apiHelper menggantikan parameter ignoreApiPath untuk mengabaikan karakter non-kunci dalam URL Operasi API. Jika Anda menentukan parameter ignoreApiPath, konfigurasi tersebut masih berlaku. Jika kedua parameter ignoreApiPath dan apiHelper ditentukan, konfigurasi yang ditentukan oleh parameter apiHelper berlaku.
Default value
Nilai default parameter ini adalah objek dan tidak perlu dimodifikasi:
{rule: /(\w+)\/\d{2,}/g, target: '$1'} Nilai default parameter ini digunakan untuk menghapus digit dalam string URL seperti xxxx/123456.
Jika Anda ingin melaporkan parameter setelah ? dalam data spesifik halaman Operasi API, seperti parameter pid dalam https://arms.console.aliyun.com/apm?pid=fr6fbgbeot, lakukan langkah-langkah berikut untuk melaporkan data secara manual:
parseResponse
|
|
|
|
|
parseResponse | Fungsi | 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 sampel 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};
} Kode sebelumnya digunakan untuk mengurai data yang dikembalikan dan mengekstrak parameter msg dan code. Umumnya, Anda tidak perlu memodifikasi konfigurasi default. Anda juga dapat memodifikasi konfigurasi berdasarkan kebutuhan bisnis Anda.
ignore
|
|
|
|
|
ignore | Object | Mengabaikan URL/API/kesalahan JS yang ditentukan. Log yang memenuhi aturan akan diabaikan dan tidak dilaporkan. Mereka mencakup 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 menyetel satu atau lebih properti dari nilai parameter tersebut.
Default value
Kode sampel berikut menunjukkan konfigurasi default:
ignore: {
ignoreUrls: [],
ignoreApis: [],
ignoreErrors: [],
ignoreResErrors: []
}, ignoreUrls
Properti ignoreUrls digunakan untuk mengabaikan URL yang sesuai dengan aturan yang Anda tentukan. Log dari URL ini tidak dilaporkan. Nilai properti ini bisa berupa string (ditunjukkan oleh tipe String), ekspresi reguler (ditunjukkan oleh tipe RegExp), metode (ditunjukkan oleh tipe Function), atau array yang berisi data dari tipe-tipe sebelumnya. Contoh:
__bl.setConfig({
ignore: {
ignoreUrls: [
'http://host1/', // Tentukan string.
/.+?host2.+/, // Tentukan ekspresi reguler.
function(str) { // Tentukan metode.
if (str && str.indexOf('host3') >= 0) {
return true; // Data tidak dilaporkan.
}
return false; // Data dilaporkan.
}]
}
}); ignoreApis
Properti ignoreApis digunakan untuk mengabaikan API yang sesuai dengan aturan yang Anda tentukan. Nilai properti ini bisa berupa string (ditunjukkan oleh tipe String), ekspresi reguler (ditunjukkan oleh tipe RegExp), metode (ditunjukkan oleh tipe Function), atau array yang berisi data dari tipe-tipe sebelumnya. Contoh:
__bl.setConfig({
ignore: {
ignoreApis: [
'api1','api2','api3', // Tentukan string.
/^random/, // Tentukan ekspresi reguler.
function(str) { // Tentukan metode.
if (str && str.indexOf('api3') >= 0) return true; // Data tidak dilaporkan.
return false; // Data dilaporkan.
}]
}
}); ignoreErrors
Properti ignoreErrors digunakan untuk mengabaikan kesalahan JS yang sesuai dengan aturan yang Anda tentukan. Nilai properti ini bisa berupa string (ditunjukkan oleh tipe String), ekspresi reguler (ditunjukkan oleh tipe RegExp), metode (ditunjukkan oleh tipe Function), atau array yang berisi data dari tipe-tipe sebelumnya. Contoh:
__bl.setConfig({
ignore: {
ignoreErrors: [
'test error', // Tentukan string.
/^Script error\.?$/, // Tentukan ekspresi reguler.
function(str) { // Tentukan metode.
if (str && str.indexOf('Unknown error') >= 0) return true; // Data tidak dilaporkan.
return false; // Data dilaporkan.
}]
}
}); ignoreResErrors
Properti ignoreResErrors digunakan untuk mengabaikan kesalahan sumber daya yang sesuai dengan aturan yang Anda tentukan. Nilai properti ini bisa berupa string (ditunjukkan olehtipe String), ekspresi reguler (ditunjukkan oleh tipe RegExp), metode (ditunjukkan oleh tipe Function), atau array yang berisi data dari tipe-tipe sebelumnya. Contoh:
__bl.setConfig({
ignore: {
ignoreResErrors: [
'http://xx/picture.jpg', // Tentukan string.
/jpg$/, // Tentukan ekspresi reguler.
function(str) { // Tentukan metode.
if (str && str.indexOf('xx.jpg') >= 0) return true; // Data tidak dilaporkan.
return false; // Data dilaporkan.
}]
}
});disabled
|
|
|
|
|
disabled | Boolean | Menentukan apakah akan menonaktifkan fungsi pelaporan log. | Tidak |
|
sample
|
|
|
|
|
sample | Integer | Menentukan laju pengambilan sampel log kinerja dan log tentang Operasi API yang berhasil. Nilainya adalah bilangan bulat mulai dari 1 hingga 100. Laju pengambilan sampel dapat dihitung menggunakan rumus berikut: | Tidak |
|
Manfaat:
Mengurangi biaya dengan hanya melaporkan data API yang diambil sampel. Kami merekomendasikan agar Anda mengidentifikasi data yang tidak memerlukan pemantauan dengan menyetel parameter ignore. Untuk informasi lebih lanjut, lihat ignore.
Mengurangi overhead kinerja pengumpulan data.
Deskripsi:
Anda dapat menyetel item konfigurasi ini untuk secara acak memilih dan melaporkan log kinerja serta log tentang Operasi API yang berhasil. 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 tingkat kesalahan JS atau tingkat kegagalan API tidak terpengaruh oleh pengambilan sampel dan tetap akurat. Namun, saat Anda menyetel parameter ini, Anda mungkin tidak dapat memperoleh data rinci seperti detail API.
Nilai default parameter
sampleadalah1. Nilai valid dari parameter ini adalah bilangan bulat dari 1 hingga 100. Laju pengambilan sampel dapat dihitung menggunakan rumus berikut:1/Nilai sample. Sebagai contoh, nilai parameter1,10, dan100menunjukkan laju pengambilan sampel 100%, 10%, dan 1%.
Saat total volume data kecil dan pengambilan sampel acak masih dilakukan, penyimpangan besar mungkin diperkenalkan ke hasil statistik. Kami merekomendasikan agar Anda menggunakan item konfigurasi ini untuk situs web yang jumlah tampilan halaman harian rata-rata (PV) lebih dari 1 juta.
pvSample
Parameter | Tipe | Deskripsi | Diperlukan | Nilai default |
pvSample | Integer | Menentukan laju pengambilan sampel log PV. Nilainya adalah bilangan bulat mulai dari 1 hingga 100. Laju pengambilan sampel dapat dihitung menggunakan rumus berikut: | Tidak |
|
Manfaat:
Mengurangi biaya dengan hanya melaporkan data PV yang diambil sampel.
Mengurangi overhead kinerja pengumpulan data.
Deskripsi:
Anda dapat menyetel item konfigurasi ini untuk secara acak memilih dan melaporkan log PV. 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 tingkat kesalahan JS tidak terpengaruh oleh pengambilan sampel dan tetap akurat.
Nilai default parameter
pvSampleadalah1. Nilai valid dari parameter ini adalah bilangan bulat dari 1 hingga 100. Laju pengambilan sampel dapat dihitung menggunakan rumus berikut:1/Nilai pvSample. Sebagai contoh, nilai parameter1,10, dan100menunjukkan laju pengambilan sampel 100%, 10%, dan 1%.
sendResource
|
|
|
|
|
sendResource | Boolean | Melaporkan sumber daya statis pada halaman. | Tidak |
|
Jika parameter sendResource disetel ke true, sumber daya statis yang dimuat ke halaman saat ini dilaporkan saat event load dipicu untuk halaman. Jika pemuatan halaman lambat, Anda dapat melihat bagan air terjun sumber daya statis di halaman Session Traces untuk menentukan penyebabnya.
Kode berikut memberikan contoh cara menyetel 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://retcode.alicdn.com/retcode/bl.js","__bl");
</script> Saat Anda ingin mendiagnosis pemuatan halaman yang lambat, Anda harus mengonfigurasi parameter sendResource dalam config, seperti yang ditunjukkan dalam kode sampel sebelumnya. Dengan cara ini, sumber daya statis dilaporkan saat event load dipicu. Jika Anda memanggil metode setConfig, sumber daya 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 (First Meaningful Paint, rendering pertama yang bermakna) layar pertama. | Tidak |
|
enableLinkTrace
|
|
|
|
|
enableLinkTrace | Boolean | Untuk informasi lebih lanjut tentang Analisis Tracing depan-belakang, lihat Gunakan fitur tracing depan-belakang untuk mendiagnosis kesalahan API. | Tidak (hanya didukung oleh skenario Web, applet Alipay, applet WeChat, dan applet DingTalk) |
|
release
Anda harus mengonfigurasi release dalam config selama inisialisasi halaman. Jangan panggil metode setConfig.
|
|
|
|
|
release | String | Versi aplikasi. Kami merekomendasikan agar Anda mengonfigurasi parameter ini untuk melihat informasi laporan versi yang berbeda. | Tidak |
|
environment
|
|
|
|
|
environment | String | Bidang lingkungan. Nilai valid: prod, gray, pre, daily, dan local.
| Tidak |
|
behavior
|
|
|
|
|
behavior | Boolean | Menentukan apakah akan mencatat perilaku pengguna yang melaporkan kesalahan untuk mempermudah pemecahan masalah. | Tidak (hanya didukung dalam skenario Web dan mini-program) | Nilai default Browser adalah |
autoSendPerf
|
|
|
|
|
autoSendPerf | Boolean | Menentukan apakah mengizinkan pengiriman log kinerja secara otomatis. | Tidak |
|
c1\c2\c3
Selain item konfigurasi sebelumnya, SDK ARMS menyediakan tiga item konfigurasi kustom yang dapat Anda konfigurasikan untuk memenuhi kebutuhan bisnis Anda. Setelah Anda mengonfigurasi bidang tersebut, nilai-nilai bidang tersebut termasuk 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. Secara umum, c1\c2\c3 terkait dengan layanan Anda. Saat Anda menginisialisasi Browser Monitoring SDK untuk JavaScript, Anda dapat menentukan parameter SDK untuk menanyakan data, seperti tingkat VIP pengguna.