Real User Monitoring (RUM) SDK untuk mini program dari Application Real-Time Monitoring Service (ARMS) menyediakan berbagai konfigurasi kustom untuk memenuhi kebutuhan bisnis Anda. Topik ini menjelaskan konfigurasi SDK umum untuk mini program sebagai referensi.
Parameter SDK
Parameter | Tipe | Deskripsi | Diperlukan | Nilai default |
pid | String | ID mini program. | Ya | - |
endpoint | String | Alamat ke mana data pemantauan dilaporkan. | Ya | - |
env | - | Lingkungan mini program:
| Tidak | prod |
version | String | Versi mini program. | Tidak | - |
user | Object | Pengaturan pengguna. Secara default, ID pengguna (user.id) dibuat oleh SDK. | Tidak | user.id dibuat oleh SDK secara default |
collectors | Object | Pengaturan Collector. | Tidak | - |
beforeReport | Fungsi | Fungsi yang dipanggil sebelum melaporkan data untuk memodifikasi atau memblokir data yang dilaporkan. | Tidak | noop |
reportConfig | Object | Pengaturan pelaporan data. | Tidak | { flushTime: 3000, maxEventCount: 20 } |
sessionConfig | Object | Pengaturan laju sampling sesi dan timeout. Untuk informasi lebih lanjut, lihat parameter sessionConfig. | Tidak | - |
parseViewName | Fungsi | Fungsi yang digunakan untuk mengurai nama tampilan (view.name). Parameter input adalah URL halaman. | Tidak | - |
parseResourceName | Fungsi | Fungsi yang digunakan untuk mengurai nama sumber daya (resource.name). Parameter input adalah URL sumber daya. | Tidak | - |
evaluateApi | Fungsi | Fungsi yang digunakan untuk mengurai peristiwa API. Untuk informasi lebih lanjut, lihat parameter evaluateApi. | Tidak | - |
filters | Object | Pengaturan penyaringan peristiwa. Untuk informasi lebih lanjut, lihat parameter filters. | Tidak | - |
properties | Object | Properti kustom yang berlaku untuk semua peristiwa. Untuk informasi lebih lanjut, lihat parameter properties. | Tidak | - |
pengguna parameter
Parameter | Tipe | Deskripsi | Diperlukan | Nilai default |
id | String | ID pengguna, yang dibuat oleh SDK dan tidak dapat diubah. | Tidak | ID default yang dibuat oleh SDK |
tags | String | Tag. | Tidak | - |
name | String | Nama pengguna. | Tidak | - |
Contoh
Jika Anda ingin menggunakan sistem akun Anda sendiri, disarankan untuk mengubah nama pengguna (user.name) atau tag (user.tags) alih-alih ID pengguna (user.id). Menimpa ID pengguna dapat memengaruhi data pengunjung unik (UV).
ArmsRum.init({
pid: "your app id",
endpoint: "your endpoint",
user: {
name: getYourUserName(),
tags: getYourTags(),
}
});parameter reportConfig
Parameter | Tipe | Deskripsi | Diperlukan | Nilai default |
flushTime | Number | Interval waktu pelaporan data. Nilai valid: 0 hingga 10000. | Tidak | 3000 |
maxEventCount | Number | Jumlah maksimum entri data yang dilaporkan dalam satu waktu. Nilai valid: 1 hingga 100. | Tidak | 20 |
Contoh
Menimpa ID pengguna dapat memengaruhi data UV.
ArmsRum.init({
pid: "your app id",
endpoint: "your endpoint",
reportConfig: {
flushTime: 0, // Tentukan bahwa data dilaporkan segera.
maxEventCount: 50 // Tentukan jumlah maksimum entri data yang dilaporkan dalam satu waktu.
}
});KonfigurasiSesi parameter
Parameter | Tipe | Deskripsi | Diperlukan | Nilai default |
sampleRate | Number | Laju sampling. Nilai valid: 0 hingga 1. Nilai 0.5 menentukan laju sampling 50%. | Tidak | 1 |
maxDuration | Number | Durasi maksimum sesi. Satuan: milidetik. Nilai default: 86400000 (24 jam). | Tidak | 86400000 |
overtime | Number | Durasi timeout sesi. Satuan: milidetik. Nilai default: 1800000 (setengah jam). | Tidak | 1800000 |
ID pengguna dan informasi sesi disimpan dalam cache lokal mini program:
_arms_uid: ID pengguna unik (user.id).
_arms_session: informasi sesi semantik.
sessionId: ID sesi unik.
sampled: menunjukkan apakah sampling telah dipicu.
startTime: timestamp awal sesi.
lastTime: timestamp ketika sesi terakhir aktif.
`${sessionId}-${sampled}-${startTime}-${lastTime}`Contoh
ArmsRum.init({
pid: "your app id",
endpoint: "your endpoint",
sessionConfig: {
sampleRate: 0.5, // Tentukan laju sampling 50%.
maxDuration: 86400000,
overtime: 3600000,
},
});pengumpul parameter
SDK menggunakan collector seperti API dan static Resource untuk mengumpulkan data pemantauan halaman.
Parameter | Tipe | Deskripsi | Diperlukan | Nilai default |
api | Boolean | Object | Melacak permintaan API. | Tidak | true |
jsError | Boolean | Object | Melacak kesalahan JavaScript. | Tidak | true |
consoleError | Boolean | Object | Melacak kesalahan yang dilemparkan oleh console.error. | Tidak | true |
action | Boolean | Object | Melacak perilaku pengguna. | Tidak | true |
Contoh
Pada contoh berikut, pengumpulan data interaksi pengguna dinonaktifkan.
ArmsRum.init({
pid: "your app id",
endpoint: "your endpoint",
collectors: {
action: false,
}
});evaluateApi parameter
Fungsi evaluateApi memberikan penguraian kustom untuk peristiwa API, termasuk peristiwa request dan httpRequest.
Parameter | Tipe | Deskripsi |
options | Object | Parameter permintaan, termasuk url, headers, dan data. Parameter bergantung pada metode permintaan. |
response | Object | Badan respons dari permintaan. |
error | Error | Kesalahan. Parameter ini opsional dan hanya tersedia ketika permintaan gagal. |
Fungsi ini dapat dipanggil secara asinkron. Promise<IApiBaseAttr> dikembalikan. Tabel berikut menjelaskan IApiBaseAttr.
Parameter | Tipe | Deskripsi | Diperlukan |
name | String | Nama API, yang umumnya merupakan URL terkonvergensi dan dapat memiliki panjang hingga 1.000 karakter. Sebagai contoh, jika URL adalah Penting Parameter ini mengambil alih hasil yang dikembalikan oleh fungsi parseResourceName. | Tidak |
message | String | Informasi API, yang merupakan string singkat untuk menggambarkan API yang tidak lebih dari 1.000 karakter. | Tidak |
success | Number | Menunjukkan apakah permintaan berhasil:
| Tidak |
duration | Number | Total durasi permintaan. | Tidak |
status_code | Number | String | Kode status. | Tidak |
snapshots | String | Snapshots. Catatan Snapshots menyimpan informasi tentang reqHeaders, params, dan resHeaders. Anda dapat menyesuaikan bidang-bidang yang menyusun snapshot. Snapshots terutama digunakan untuk mendiagnosis pengecualian. Snapshot tidak dapat dikonfigurasi sebagai kondisi filter untuk kueri atau agregasi karena tidak memiliki indeks. Ini hanya bisa berupa string dengan maksimal 5.000 karakter. | Tidak |
Contoh
ArmsRum.init({
pid: "your app id",
endpoint: "your endpoint",
evaluateApi: async (options, response, error) => {
const respText = JSON.stringify(response);
// Bidang yang dikembalikan akan menimpa konten default. Jika bidang tidak dikembalikan, konten default digunakan.
return {
name: 'my-custom-api',
success: error ? 0 : 1,
snapshots: JSON.stringify({
params: 'page=1&size=10', // Parameter input.
response: respText.substring(0, 2000), // Nilai yang dikembalikan.
reqHeaders: '', // Header permintaan.
resHeaders: '' // Header respons.
})
}
}
});parameter filters
Parameter filters mengecualikan peristiwa sumber daya dan pengecualian yang tidak perlu dilaporkan.
Parameter | Tipe | Deskripsi | Diperlukan |
resource | MatchOption | MatchOption[] | Mengecualikan peristiwa terkait sumber daya statis dan API (seperti XMLHttpRequest atau fetch) yang tidak perlu dilaporkan. | Tidak |
exception | MatchOption | MatchOption[] | Mengecualikan peristiwa pengecualian yang tidak perlu dilaporkan. | Tidak |
MatchOption
type MatchOption = string | RegExp | ((value: string) => boolean);string: cocokkan URL apa pun yang dimulai dengan nilai yang ditentukan. Sebagai contoh,
https://api.aliyun.comdapat cocok denganhttps://api.aliyun.com/v1/resource.RegExp: tentukan ekspresi reguler dan URL.
function: gunakan fungsi untuk menentukan apakah URL cocok. Jika true dikembalikan, URL cocok.
Ketika input adalah MatchOption[], kondisi sebelumnya dievaluasi secara berurutan, dan akan dikecualikan jika salah satu kondisi terpenuhi.
Contoh
ArmsRum.init({
pid: "your app id",
endpoint: "your endpoint",
filters: {
// Kecualikan peristiwa pengecualian
exception: [
'Test error', // Filter pesan kesalahan yang dimulai dengan 'Test error'.
/^Script error\.?$/, // Tentukan ekspresi reguler.
(msg) => {
return msg.includes('example-error');
},
],
// Kecualikan peristiwa sumber daya atau API
resource: [
'https://example.com/', // Filter sumber daya yang dimulai dengan 'https://example.com/'.
/localhost/i,
(url) => {
return url.includes('example-resource');
},
],
},
});parameter properties
Properti yang disediakan oleh RUM dapat dikonfigurasikan untuk semua peristiwa.
Parameter | Tipe | Deskripsi | Diperlukan |
[key: string] | String | Number |
| Tidak |
Anda dapat menggunakan evaluateApi, sendCustom, sendException, dan sendResource untuk menambahkan properti ke peristiwa. Properti tersebut hanya berlaku untuk peristiwa itu.
Properti global dan properti peristiwa digabungkan saat disimpan. Properti peristiwa memiliki prioritas lebih tinggi daripada properti global. Jika kunci properti peristiwa sama dengan kunci properti global, properti peristiwa menimpa properti global. Jumlah pasangan kunci-nilai tidak boleh melebihi 20 setelah digabungkan. Jika jumlahnya melebihi 20, pasangan diurutkan berdasarkan kunci dan yang berlebih dihapus.
Contoh
Properti yang dikonfigurasikan secara global dilampirkan ke semua peristiwa yang dilaporkan.
ArmsRum.init({
pid: "your app id",
endpoint: "your endpoint",
properties: {
prop_string: 'xx',
prop_number: 2,
// Jika panjang kunci atau nilai melebihi batas, bagian yang berlebih dipotong.
more_than_50_key_limit_012345678901234567890123456789: 'yy',
more_than_2000_value_limit: new Array(2003).join('1'),
// Pasangan kunci-nilai berikut yang tidak valid akan dihapus.
prop_null: null,
prop_undefined: undefined,
prop_bool: true,
},
});Parameter Lainnya
SDK RUM memungkinkan Anda mengonfigurasi properti umum yang diselesaikan berdasarkan alamat IP dan UserAgent. Parameter yang dikonfigurasi secara proaktif memiliki prioritas lebih tinggi daripada parameter yang diselesaikan secara otomatis.
Parameter | Tipe | Deskripsi | Diperlukan |
device | Object | Informasi perangkat. | Tidak |
os | Object | Informasi sistem dan kontainer. | Tidak |
geo | Object | Informasi geolokasi. | Tidak |
isp | Object | Informasi ISP. | Tidak |
net | Object | Informasi jaringan. | Tidak |
Untuk informasi lebih lanjut tentang item konfigurasi terkait parameter di atas, lihat Atribut umum.
Contoh
ArmsRum.init({
pid: "your app id",
endpoint: "your endpoint",
geo: {
country: 'informasi negara kustom Anda',
city: 'informasi kota kustom Anda',
},
});API SDK
SDK menyediakan API untuk memodifikasi dan melaporkan data kustom serta memodifikasi konfigurasi SDK secara dinamis.
getConfig
Gunakan fungsi ini untuk mendapatkan konfigurasi SDK.
setConfig
Gunakan fungsi ini untuk memodifikasi konfigurasi SDK.
// Tetapkan kunci tertentu
ArmsRum.setConfig('env', 'pre');
// Timpa pengaturan berikut
const config = ArmsRum.getConfig();
ArmsRum.setConfig({
...config,
version: '1.0.0',
env: 'pre',
});
sendCustom
Untuk melaporkan data kustom, tentukan parameter type dan name. Tabel berikut menjelaskan parameter terkait pelaporan data. Definisikan semantik bisnis Anda.
Parameter | Tipe | Deskripsi | Diperlukan | Nilai default |
type | String | Tipe | Ya | - |
name | String | Nama | Ya | - |
group | String | Grup | Tidak | - |
value | Number | Deskripsi | Tidak | - |
ArmsRum.sendCustom({
type: 'CustomEvnetType1',
name: 'customEventName2',
group: 'customEventGroup3',
value: 111.11
});sendException
Untuk melaporkan data pengecualian kustom, tentukan parameter name dan message.
Parameter | Tipe | Deskripsi | Diperlukan | Nilai default |
name | String | Nama pengecualian. | Ya | - |
message | String | Informasi pengecualian. | Ya | - |
file | String | File tempat pengecualian terjadi. | Tidak | - |
stack | String | Informasi stack tentang pengecualian. | Tidak | - |
line | Number | Baris tempat pengecualian terjadi. | Tidak | - |
column | Number | Kolom tempat pengecualian terjadi. | Tidak | - |
ArmsRUM.sendException({
// Diperlukan.
name: 'customErrorName',
message: 'custom error message',
// Opsional.
file: 'custom exception filename',
stack: 'custom exception error.stack',
line: 1,
column: 2
});sendResource
Untuk melaporkan data sumber daya kustom, tentukan parameter name, type, dan duration.
Parameter | Tipe | Deskripsi | Diperlukan | Nilai default |
name | String | Nama sumber daya. | Ya | - |
type | String | Tipe sumber daya. Contoh: script, api, image. | Ya | - |
duration | String | Waktu respons. | Ya | - |
success | Number | Menunjukkan apakah permintaan berhasil:
| Tidak | - |
method | String | Metode permintaan. | Tidak | - |
status_code | Number | String | Kode status. | Tidak | - |
message | String | Pesan yang dikembalikan. | Tidak | - |
url | String | URL permintaan. | Tidak | - |
trace_id | String | ID jejak. | Tidak | - |
ArmsRum.sendResource({
// Diperlukan.
name: 'getListByPage',
message: 'success',
duration: 800,
// Opsional.
url: 'https://www.aliyun.com/data/getListByPage',
});