全部产品
Search
文档中心

Application Real-Time Monitoring Service:Konfigurasi contoh SDK RUM untuk mini program

更新时间:Jun 27, 2025

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:

  • prod: lingkungan produksi

  • gray: lingkungan rilis canary

  • pre: lingkungan pra-rilis

  • daily: lingkungan harian

  • local: lingkungan lokal

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

Catatan

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

Catatan

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 /list/123, parameter nama terkonvergensi akan ditampilkan sebagai /list/$id.

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:

  • 1: Permintaan berhasil.

  • 0: Permintaan gagal.

  • -1: Status permintaan tidak diketahui.

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.com dapat cocok dengan https://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

  • Kunci harus berupa string yang sesuai dengan spesifikasi JSON. Panjang maksimum kunci adalah 50 karakter. Bagian yang melebihi batas dipotong.

  • Jika nilainya adalah string, panjang maksimumnya adalah 2.000 karakter. Jika nilainya bukan string atau angka, pasangan kunci-nilai dihapus.

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:

  • 1: Permintaan berhasil.

  • 0: Permintaan gagal.

  • -1: Status permintaan tidak diketahui.

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',
});