Topik ini menjelaskan cara menggunakan Pemantauan Browser ARMS untuk memantau program mini yang memenuhi standar, selain program mini DingTalk, Alipay, dan WeChat. Topik ini juga mencakup konfigurasi umum, metode API, dan skenario lanjutan.
Penggunaan dasar
Pengaturan dasar mencakup tiga langkah: menginstal dan menginisialisasi paket npm, melaporkan log, serta mengonfigurasi nama domain keamanan.
Instal dan inisialisasi paket npm.
Di proyek program mini Anda, instal paket npm
@arms/js-sdkuntuk mengaktifkan pemantauan.npm install @arms/js-sdkTambahkan kode berikut ke file
monitor.jsdi direktori/utilsuntuk menginisialisasi SDK.CatatanAnda dapat menyesuaikan nama dan lokasi file JavaScript (JS).
import MiniProgramLogger from '@arms/js-sdk/miniapp'; const Monitor = MiniProgramLogger.init({ pid: 'xxx', uid: 'userxxx', // Tetapkan ID pengguna, yang digunakan untuk statistik UV. region: 'cn', // Tentukan Wilayah tempat aplikasi dideploy. Atur parameter ini ke 'cn' untuk Tiongkok daratan atau 'sg' untuk luar Tiongkok daratan. Nilai default-nya adalah 'cn'. // Untuk pemantauan program mini dasar, Anda harus menyediakan fungsi RPC secara manual. // Implementasikan fungsi tersebut berdasarkan logika bisnis Anda. Contoh berikut menunjukkan cara melakukan panggilan di DingTalk E-App. sendRequest: (url, resData) => { // Bagian ini wajib dikonfigurasi. Mendukung pelaporan GET maupun POST. // Demo di DingTalk var method = 'GET'; var data; if (resData) { method = 'POST'; data = JSON.stringify(resData); } dd.httpRequest({ url: url, method: method, data: data, fail: function (error) { //... } }); }, // Sediakan fungsi secara manual untuk mendapatkan path halaman saat ini. // Implementasikan fungsi tersebut berdasarkan logika bisnis Anda. Contoh berikut menunjukkan cara melakukan panggilan di DingTalk E-App. getCurrentPage: () => { // Bagian ini wajib dikonfigurasi. if (typeof getCurrentPages !== 'undefined' && typeof getCurrentPages === 'function') { var pages = (getCurrentPages() || []); var pageLength = pages.length; var currPage = pages[pageLength - 1]; return (currPage && currPage.route) || null; } } }); export default Monitor;CatatanUntuk informasi lebih lanjut tentang parameter, lihat Parameter SDK.
Laporkan log.
Di
app.js, gunakan salah satu metode berikut untuk melaporkan log:Gunakan metode Monitor.hookApp(options) untuk secara otomatis menangkap log Error. Parameter options adalah objek konfigurasi asli App Anda.
import Monitor from '/utils/monitor'; App(Monitor.hookApp({ onError(err) { console.log('Entering onError:', err); }, onLaunch() { console.log('Entering onLaunch'); }, onShow(options) { }, onHide() { } }));Gunakan metode Monitor.error(err) untuk melaporkan log Error secara manual.
import Monitor from '/utils/monitor'; App({ onError(err) { Monitor.error(err); console.log('Entering onError:', err); }, onLaunch() { console.log('Entering onLaunch'); }, onShow(options) { }, onHide() { } });
Di file JS suatu halaman, gunakan salah satu metode berikut untuk melaporkan log:
Gunakan metode Monitor.hookPage(options) untuk secara otomatis melaporkan data page view (PV) dan kesehatan.
CatatanMetode ini tidak secara otomatis melaporkan permintaan API.
import Monitor from '/utils/monitor'; Page(Monitor.hookPage({ data: {}, onLoad(query) { }, onReady() { // Halaman telah selesai dimuat. }, onShow() { }, onLoad(query) { }, onHide() { }, onUnload() { }, onTitleClick() { /** * Laporkan data instrumentasi kustom. * @desc */ Monitor.sum('titleClick'); } }));
Konfigurasi nama domain keamanan.
Jika Anda mengatur region ke
cn, tambahkanhttps://arms-retcode.aliyuncs.comke daftar nama domain yang valid.Jika Anda mengatur region ke
sg, tambahkanhttps://arms-retcode-sg.aliyuncs.comke daftar nama domain yang valid.
Metode API
Metode | Parameter | Deskripsi |
hookApp | {} | Membungkus objek konfigurasi App asli untuk secara otomatis menginstrumentasi callback siklus hidup App. |
hookPage | {} | Membungkus objek konfigurasi Page asli untuk secara otomatis menginstrumentasi callback siklus hidup Page. |
setCommonInfo | {[key: string]: string;} | Menetapkan bidang umum yang ditambahkan ke semua data yang dilaporkan. Ini berguna untuk skenario seperti rilis bertahap. |
setConfig | {[key: string]: string;} | Menetapkan bidang konfigurasi. Untuk informasi lebih lanjut, lihat Konfigurasi SDK Pemantauan Browser. |
pageShow | {} | Menyampaikan event page show untuk mengirim data page view (PV). |
pageHide | {} | Menyampaikan event page hide untuk mengirim data kesehatan. |
error | String/Object | Menyampaikan log error. |
api | Lihat Referensi API frontend. | Menyampaikan log permintaan API. |
sum/avg | String | Menyampaikan metrik kustom untuk perhitungan jumlah dan rata-rata. |
Untuk menggunakan hookApp dan hookPage guna instrumentasi siklus hidup otomatis, program mini Anda harus mengikuti spesifikasi standar program mini. Artinya, level App harus memiliki metode onError, dan level Page harus memiliki metode onShow, onHide, dan onUnload. Untuk contohnya, lihat Penggunaan dasar.
Sebagian besar API pelaporan log konsisten dengan SDK pemantauan browser web. Penggunaan API lainnya dijelaskan di bawah ini:
Untuk mengirim data PV halaman saat ini, panggil metode pageShow() dalam metode siklus hidup onShow Page.
CatatanJangan gunakan metode ini bersamaan dengan metode hookPage(). Jika tidak, log PV duplikat akan dilaporkan.
import Monitor from '/util/monitor'; Page({ onShow: function() { Monitor.pageShow(); } })Untuk mengirim data kesehatan halaman saat ini dan mengukur tingkat kesehatan serta waktu di halaman, panggil metode pageHide() dalam metode siklus hidup onHide dan onUnload Page.
CatatanJangan gunakan metode ini bersamaan dengan metode hookPage(). Jika tidak, log duplikat akan dilaporkan.
import Monitor from '/util/monitor'; Page({ onHide: function() { Monitor.pageHide(); }, onUnload: function() { Monitor.pageHide(); } ... })
Skenario lanjutan
Jika penggunaan dasar tidak memenuhi kebutuhan Anda, pertimbangkan skenario lanjutan dalam bagian ini.
Menetapkan uid (untuk statistik UV)
Jika ID pengguna tersedia sebelum SDK diinisialisasi, Anda dapat langsung menetapkan uid dalam konfigurasi
init.Jika ID pengguna belum tersedia saat inisialisasi, Anda dapat mengambilnya sebelum event
onShowaplikasi, lalu menetapkan uid dengan memanggil setCommonInfo({uid: 'xxx'}).
Menetapkan informasi umum untuk program mini
Gunakan metode setCommonInfo untuk menetapkan informasi umum program mini. Pemantauan Browser ARMS menganalisis bidang-bidang berikut:
sr: resolusi layar
vp: viewport
dpr: device pixel ratio
ul: bahasa dokumen
dr: document referrer
ct: jenis koneksi jaringan (misalnya, Wi-Fi atau 3G)
PeringatanJangan menetapkan terlalu banyak bidang menggunakan metode setCommonInfo. Melebihi batas panjang permintaan dapat menyebabkan permintaan gagal.
Parameter SDK
Pemantauan Browser ARMS menyediakan parameter SDK untuk Konfigurasi Lanjutan. Tabel berikut menjelaskan parameter umum yang berlaku untuk skenario ini.
Parameter | Tipe | Deskripsi | Wajib | Default |
pid | String | ID unik proyek. Dihasilkan secara otomatis oleh ARMS saat membuat situs. | Ya | Tidak ada |
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 nilai ini secara otomatis setiap enam bulan. | Tidak | Dihasilkan secara otomatis oleh SDK |
tag | String | Tag input. Setiap log membawa tag. | Tidak | Tidak ada |
release | String | Versi aplikasi. Kami merekomendasikan agar Anda mengonfigurasi parameter ini untuk melihat informasi laporan dari versi berbeda. | Tidak |
|
environment | String | Bidang lingkungan. Nilai yang valid: prod, gray, pre, daily, dan local.
| Tidak |
|
sample | Integer | Konfigurasi sampling log. Nilainya adalah bilangan bulat dari 1 hingga 100. Log performa dan log API sukses disampling dengan rasio | Tidak |
|
behavior | Boolean | Menentukan apakah akan mencatat perilaku pengguna yang melaporkan error untuk memudahkan troubleshooting. | Tidak |
|
Untuk daftar lengkap parameter SDK, lihat Konfigurasi SDK Pemantauan Browser.