All Products
Search
Document Center

Application Real-Time Monitoring Service:Metode SDK

Last Updated:Aug 25, 2026

SDK Alibaba Cloud Browser Monitoring menyediakan metode untuk pelaporan data dan modifikasi konfigurasi SDK. Topik ini juga menjelaskan cara membuat beberapa instans SDK.

Metode dalam topik ini

api()

Gunakan api() untuk melaporkan tingkat keberhasilan panggilan API pada suatu halaman.

Secara default, SDK memantau permintaan AJAX pada halaman dan secara otomatis memanggil API ini untuk melaporkan data. Jika halaman Anda menggunakan JSONP atau metode kustom lainnya—seperti SDK client—panggil metode api() secara manual untuk melaporkan data.

Catatan

Untuk memanggil metode ini, disarankan mengatur parameter disableHook menjadi true dalam konfigurasi SDK. Untuk informasi selengkapnya, lihat disableHook.

Sintaksis api():

__bl.api(api, success, time, code, msg, begin, traceId, sid)

Atau

__bl.api({api: xxx, success: xxx, time: xxx, code: xx, msg: xx, begin: xx, traceId: xx, sid: xx})

Parameter

Tipe

Deskripsi

Wajib

Nilai default

api

String

Nama metode.

Ya

Tidak ada

success

Boolean

Menentukan apakah panggilan berhasil.

Ya

Tidak ada

time

Number

Jumlah waktu yang dikonsumsi oleh panggilan.

Ya

Tidak ada

code

String/Number

Kode respons.

Tidak

Tidak ada

msg

String

Informasi respons.

Tidak

Tidak ada

begin

Number

Waktu permintaan dimulai. Nilainya berupa timestamp.

Tidak

Tidak ada

traceId

String

Nilai EagleEye-TraceID.

Tidak

Tidak ada

sid

String

Nilai EagleEye-SessionID.

Tidak

Tidak ada

Contoh api():

var begin = Date.now(),
    url = '/data/getTodoList.json',
    traceId = window.__bl && __bl.getTraceId('EagleEye-TraceID'),
    sid = window.__bl && __bl.getSessionId('EagleEye-SessionID');
// Catatan: Sertakan EagleEye-TraceID dan EagleEye-SessionID di header permintaan.
fetch(url, {
    headers: {
        'EagleEye-TraceID': traceId,
        'EagleEye-SessionID': sid
    }
}).then(function (result) {
    var time = Date.now() - begin;
    // Laporkan panggilan API yang berhasil.
    window.__bl && __bl.api(url, true, time, result.code, result.msg, begin, traceId, sid);
    // lakukan sesuatu...
}).catch(function (error) {
    var time = Date.now() - begin;
    // Laporkan panggilan API yang gagal.
    window.__bl && __bl.api(url, false, time, 'ERROR', error.message, begin, traceId, sid);
    // lakukan sesuatu...
});

[Kembali ke Atas]

error()

Panggil metode error() untuk melaporkan kesalahan JavaScript atau pengecualian pada halaman yang dipantau. Detailnya dapat dilihat di halaman JS Error Diagnostics di Pemantauan Browser.

Biasanya, SDK mendengarkan kesalahan global pada halaman dan secara otomatis memanggil metode ini untuk melaporkan pengecualian. Namun, detail kesalahan sering kali tidak dapat diakses karena kebijakan asal sama (same-origin policy) browser. Dalam kasus tersebut, Anda harus melaporkan kesalahan secara manual.

Sintaksis error():

__bl.error(error, pos)

Parameter

Tipe

Deskripsi

Wajib

Nilai default

error

Error

Objek kesalahan JS.

Ya

Tidak ada

pos

Object

Lokasi terjadinya kesalahan. Lokasi ini berisi atribut berikut: pos.filename, pos.lineno, dan pos.colno.

Tidak

Tidak ada

pos.filename

String

Nama file tempat terjadinya kesalahan.

Tidak

Tidak ada

pos.lineno

Number

Nomor baris tempat terjadinya kesalahan.

Tidak

Tidak ada

pos.colno

Number

Nomor kolom tempat terjadinya kesalahan.

Tidak

Tidak ada

Contoh 1 error(): Dengarkan dan laporkan kesalahan JS pada halaman.

window.addEventListener('error', function (ex) {
    // Argumen event biasanya berisi informasi lokasi.
    window.__bl && __bl.error(ex.error, ex);
});

Contoh 2 error(): Laporkan pesan kesalahan kustom.

window.__bl && __bl.error(new Error('Terjadi kesalahan kustom'), {
    filename: 'app.js', 
    lineno: 10, 
    colno: 15
});

Contoh 3 error(): Laporkan pesan kesalahan dengan tipe kustom.

__bl.error({name:'CustomErrorLog',message:'ini adalah kesalahan'}, {
    filename: 'app.js', 
    lineno: 10, 
    colno: 15
});

[Kembali ke Atas]

sum()

Gunakan metode sum() untuk melaporkan statistik kustom. Metode ini biasanya digunakan untuk menghitung jumlah kejadian suatu event bisnis. Data yang dilaporkan oleh metode sum() dapat dilihat di halaman Statistik Kustom:

  • Grafik tren event kustom

  • Jumlah tampilan halaman (PV) dan pengunjung unik (UV) suatu event

  • Informasi distribusi dimensi

Catatan

Data akan muncul di halaman Statistik Kustom beberapa menit setelah dilaporkan.

Sintaksis sum():

__bl.sum(key, value)

Parameter

Tipe

Deskripsi

Wajib

Nilai default

key

String

Nama event.

Ya

Tidak ada

value

Number

Jumlah item yang dilaporkan sekaligus.

Tidak

1

Contoh sum():

__bl.sum('event-a');
__bl.sum('event-b', 3);

[Kembali ke Atas]

avg()

Gunakan metode avg() untuk melaporkan data kustom. Metode ini biasanya digunakan untuk menghitung rata-rata jumlah kejadian atau nilai suatu event bisnis tertentu. Data yang dilaporkan oleh avg() dapat dilihat di halaman Statistik Kustom:

  • Grafik tren event kustom

  • PV dan UV suatu event

  • Informasi distribusi dimensi

Sintaksis avg():

__bl.avg(key, value)

Parameter

Tipe

Deskripsi

Wajib

Nilai default

key

String

Nama event.

Ya

Tidak ada

value

Number

Jumlah item yang dilaporkan.

Tidak

0

Contoh avg():

__bl.avg('event-a', 1);
__bl.avg('event-b', 3);

[Kembali ke Atas]

reportBehavior()

Panggil reportBehavior() untuk segera melaporkan antrian perilaku saat ini.

Jika metode ini tidak dipanggil secara manual, antrian perilaku saat ini akan dilaporkan secara otomatis ketika terjadi kesalahan JavaScript. Ukuran maksimum antrian adalah 100. Jika antrian berisi lebih dari 100 catatan perilaku, entri lama akan dibuang dari awal antrian.

Catatan

Untuk memanggil metode ini, Anda harus mengatur parameter behavior menjadi true dalam konfigurasi SDK.

Sintaksis reportBehavior():

__bl.reportBehavior()

Metode reportBehavior() tidak menerima parameter apa pun.

[Kembali ke Atas]

addBehavior()

Panggil metode addBehavior() untuk menambahkan perilaku pengguna kustom ke antrian perilaku saat ini.

SDK memelihara antrian perilaku pengguna dengan panjang maksimum 100 entri. Anda dapat memanggil metode addBehavior() untuk menambahkan perilaku pengguna kustom ke antrian. Ketika terjadi kesalahan JavaScript, SDK akan melaporkan antrian perilaku saat ini dan mengosongkannya.

Jejak perilaku pengguna dapat dilihat di halaman JS Error Diagnostics. Untuk petunjuknya, lihat Gunakan jejak perilaku pengguna untuk mendiagnosis kesalahan JS.

Catatan

Untuk memanggil metode ini, Anda harus mengatur parameter behavior menjadi true dalam konfigurasi SDK.

Sintaksis addBehavior():

__bl.addBehavior(behavior)

Parameter

Tipe

Deskripsi

Wajib

Nilai default

data

Object

Data perilaku. Parameter ini memiliki dua bidang wajib berikut:

  • name: nama perilaku bertipe STRING. Panjang nama maksimal 20 karakter.

  • message: konten perilaku bertipe STRING. Nilai maksimal 200 karakter.

Ya

Tidak ada

page

String

Halaman tempat perilaku terjadi.

Tidak

Nilai parameter location.pathname

Contoh addBehavior():

__bl.addBehavior({
  data:{name:'string',message:'string'},
  page:'string'
})

[Kembali ke Atas]

performance()

Penting

Metode ini hanya berlaku untuk klien web.

Panggil metode performance() setelah event onLoad halaman untuk melaporkan metrik performa kustom selain metrik performa default.

Catatan

Metode ini hanya dapat dipanggil setelah event onLoad terjadi. Jika tidak, pemanggilan akan gagal karena pengumpulan metrik performa default belum lengkap. Metode performance() hanya dapat dipanggil satu kali dalam setiap PV.

Untuk menggunakan metode performance(), lakukan langkah-langkah berikut:

  1. Atur parameter autoSendPerf menjadi false untuk menonaktifkan pelaporan otomatis metrik performa dan menunggu pelaporan manual.

  2. Panggil metode __bl.performance(Object) untuk melaporkan metrik kustom secara manual. Pemanggilan ini mengirimkan metrik kustom Anda dan metrik performa default yang dikumpulkan oleh SDK.

Contoh 1 performance(): dengan CDN.

window.onload = () => {
 setTimeout(()=>{
  __bl.performance({cfpt:100, ctti:200, t1:300, …});
 }, 1000); // Tunda untuk memastikan semua metrik performa default telah dikumpulkan sebelum pelaporan manual.
};

Contoh 2 performance(): dengan paket npm.

const BrowserLogger = require('@arms/js-sdk');
const __bl = BrowserLogger.singleton({pid:'ID situs unik Anda'});
window.onload = () => {
 setTimeout(()=>{
  __bl.performance({cfpt:100, ctti:200, t1:300, …});
 }, 1000);// Tunda untuk memastikan semua metrik performa default telah dikumpulkan sebelum pelaporan manual.
};
Catatan

Deskripsi metrik performa kustom:

  • cfpt: waktu render pertama kustom

  • ctti: waktu interaksi pertama kustom

  • t1 hingga t10: 10 metrik performa kustom

[Kembali ke Atas]

setConfig()

Panggil setConfig() setelah inisialisasi SDK untuk memodifikasi item konfigurasi tertentu. Untuk informasi selengkapnya, lihat Referensi SDK.

Sintaksis setConfig():

__bl.setConfig(next)

Parameter

Tipe

Deskripsi

Wajib

Nilai default

next

Object

Parameter yang ingin Anda modifikasi dan nilai parameter baru.

Ya

Tidak ada

[Kembali ke Atas]

setPage()

Gunakan setPage() untuk mengatur ulang nama halaman, yang secara default memicu pelaporan PV baru. Metode ini biasanya digunakan untuk Aplikasi Halaman Tunggal (SPA). Untuk informasi selengkapnya, lihat Pelaporan data halaman SPA.

Catatan

Ketika data PV dilaporkan lagi, data yang ada tidak ditimpa. Entri data baru ditambahkan.

Sintaksis setPage():

__bl.setPage(page, sendPv)

Parameter

Tipe

Deskripsi

Wajib

Nilai default

page

String

Nama halaman baru.

Ya

Tidak ada

sendPv

Boolean

Menentukan apakah data PV dilaporkan. Secara default, data PV dilaporkan.

Tidak

true

Contoh setPage():

// Atur nama halaman menjadi hash URL saat ini dan laporkan PV baru.
__bl.setPage(location.hash);

// Atur nama halaman menjadi 'homepage' tanpa melaporkan PV baru.
__bl.setPage('homepage', false);

[Kembali ke Atas]

setCommonInfo()

Gunakan setCommonInfo() untuk mengatur bidang umum.

Sintaksis setCommonInfo():

__bl.setCommonInfo(obj)

Metode setCommonInfo() menerima parameter objek:

__bl.setCommonInfo({
  name: 'xxx',
  common: 'xxx'
});
Catatan

Batasi ukuran objek. Objek yang besar dapat menghasilkan permintaan GET yang panjang, yang berpotensi gagal.

[Kembali ke Atas]

Buat beberapa instans

Untuk membuat beberapa instans, gunakan paket npm @arms/js-sdk.

Halaman web

  • Contoh:

    const BrowerLogger = require('@arms/js-sdk');
    const bl2 = BrowerLogger.createExtraInstance(props); // Buat instans menggunakan metode createExtraInstance.
    bl2.custom({
      key: 'biz',
      msg: 'info pesan'
    });
    Catatan

    Parameter props bertipe Object. Parameter yang terdapat dalam props pada dasarnya sama dengan parameter dalam konfigurasi SDK.

  • Instans baru hanya melaporkan informasi kustom:

    var props = {
      pid: 'xxxx', // ID situs tempat instans baru melaporkan data.
      region: 'cn',
      page: '',
      uid: ''
    }

Halaman Weex

  • Contoh:

    const WeexLogger = require('@arms/js-sdk/weex');
    const wl2 = WeexLogger.createExtraInstance(props); // Buat instans menggunakan metode createExtraInstance.
    wl2.custom({
      key: 'biz',
      msg: 'info pesan'
    });
    Catatan

    Parameter props bertipe Object. Parameter yang terdapat dalam props pada dasarnya sama dengan parameter dalam konfigurasi SDK.

  • Instans baru hanya melaporkan informasi kustom:

    var props = {
      pid: 'xxxx', // ID situs tempat instans baru melaporkan data.
      region: 'cn',
      sendRequest: function(data, imgUrl) {
        // Metode untuk mengirim log menggunakan permintaan GET.
      },
      postRequest: function(data, imgUrl) {
        // Metode untuk mengirim log menggunakan permintaan POST.
      }
    }

Program mini

Contoh: Pilih jalur impor yang sesuai dengan jenis program mini Anda, seperti program mini DingTalk atau program mini Alipay. Parameter region menentukan lokasi pelaporan log: atur ke cn untuk melaporkan log ke server di Tiongkok, atau ke sg untuk melaporkan log ke server di Singapura. Jika Anda tidak menentukan parameter ini, log akan dilaporkan ke server di Tiongkok.

import MiniProgramLogger from '@arms/js-sdk/miniapp'; // Pilih jalur yang sesuai dengan jenis program mini Anda, seperti program mini DingTalk atau program mini Alipay.
const MiniInstance = MiniProgramLogger.createExtraInstance({
  pid: 'xxxinstance',
  uid: 'userxxx', // ID pengguna untuk mengumpulkan data UV.
  region: 'cn', // Wilayah tempat log dilaporkan. Atur nilai ke `cn` untuk Tiongkok atau `sg` untuk Singapura. Default ke `cn` jika tidak ditentukan.
  // Untuk pemantauan program mini dasar, Anda harus meneruskan metode RPC secara manual. Implementasikan metode ini sesuai kebutuhan bisnis Anda.
  sendRequest: (url, resData) => {
    // Metode untuk mengirim data.
  }
});