全部产品
Search
文档中心

Application Real-Time Monitoring Service:Metode SDK

更新时间:Jun 27, 2025

Browser Monitoring SDK menyediakan metode untuk melaporkan data dan mengubah konfigurasi SDK.

Metode dalam topik ini

api()

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

Secara default, SDK mendengarkan permintaan Asynchronous JavaScript and XML (AJAX) di halaman dan memanggil metode ini untuk melaporkan data. Jika data di halaman diminta menggunakan JSON dengan Padding (JSONP) atau alat khusus lainnya seperti SDK klien, Anda dapat memanggil metode api() dalam permintaan data untuk pelaporan manual.

Catatan

Untuk memanggil metode ini, disarankan menyetel parameter disableHook menjadi true dalam konfigurasi SDK. Untuk informasi lebih lanjut, lihat disableHook.

Sintaks dari 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})
Tabel 1. Parameter permintaan dari api()

Parameter

Tipe

Deskripsi

Diperlukan

Nilai default

api

String

Nama metode.

Ya

Tidak ada

success

Boolean

Menentukan apakah pemanggilan berhasil.

Ya

Tidak ada

time

Number

Jumlah waktu yang dikonsumsi oleh pemanggilan.

Ya

Tidak ada

code

String/Number

Kode status.

Tidak

Tidak ada

msg

String

Informasi respons.

Tidak

Tidak ada

begin

Number

Waktu ketika pemanggilan API dimulai. Nilainya adalah timestamp.

Tidak

Tidak ada

traceId

String

Nilai EagleEye-TraceID.

Tidak

Tidak ada

sid

String

Nilai EagleEye-SessionID.

Tidak

Tidak ada

Contoh dari api():

var begin = Date.now(),
    url = '/data/getTodoList.json',
    traceId = window.__bl && __bl.getTraceId('EagleEye-TraceID'),
    sid = window.__bl && __bl.getSessionId('EagleEye-SessionID');
// Tentukan 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 bahwa pemanggilan 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 bahwa pemanggilan gagal.
    window.__bl && __bl.api(url, false, time, 'ERROR', error.message, begin, traceId, sid);
    // lakukan sesuatu ...
});    

[Kembali ke Atas]

error()

Gunakan metode error() untuk melaporkan kesalahan atau pengecualian JavaScript (JS) yang ingin Anda tangkap di halaman. Detail kesalahan JS dapat dilihat di halaman JS Error Diagnosis dari Browser Monitoring.

Umumnya, SDK mendengarkan kesalahan global di halaman dan memanggil metode ini untuk melaporkan pengecualian. Namun, detail kesalahan biasanya tidak terjangkau karena kebijakan asal-usul yang sama dari browser. Dalam kasus ini, Anda harus melaporkan kesalahan tersebut secara manual.

Sintaks dari error():

__bl.error(error, pos)
Tabel 2. Parameter permintaan dari error()

Parameter

Tipe

Deskripsi

Diperlukan

Nilai default

error

Error

Objek kesalahan JS.

Ya

Tidak ada

pos

Object

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

Tidak

Tidak ada

pos.filename

String

Nama file tempat kesalahan terjadi.

Tidak

Tidak ada

pos.lineno

Number

Nomor baris tempat kesalahan terjadi.

Tidak

Tidak ada

pos.colno

Number

Nomor kolom tempat kesalahan terjadi.

Tidak

Tidak ada

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

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

Contoh 2 dari error(): Laporkan kesalahan kustom.

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

Contoh 3 dari error(): Laporkan kesalahan kustom.

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

[Kembali ke Atas]

sum()

Gunakan metode sum() untuk menyesuaikan log yang akan dilaporkan. Log ini digunakan untuk menghitung berapa kali suatu peristiwa tertentu terjadi dalam skenario bisnis. Data berikut yang dilaporkan dengan memanggil metode sum() dapat dilihat di halaman Custom Statistics:

Catatan

Setelah Anda melaporkan data, data tersebut akan ditampilkan di halaman Statistik Kustom beberapa menit kemudian.

  • Grafik tren peristiwa kustom

  • Tampilan Halaman (PV) dan Pengunjung Unik (UV) dari suatu peristiwa

  • Informasi distribusi dimensi

Sintaks dari sum():

__bl.sum(key, value)
Tabel 4. Parameter permintaan dari sum()

Parameter

Tipe

Deskripsi

Diperlukan

Nilai default

key

String

Nama peristiwa.

Ya

Tidak ada

value

Number

Jumlah item yang dilaporkan sekaligus.

Tidak

1

Contoh dari sum():

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

[Kembali ke Atas]

avg()

Gunakan metode avg() untuk menyesuaikan log yang akan dilaporkan. Log ini digunakan untuk menghitung berapa kali suatu peristiwa tertentu terjadi secara rata-rata dalam skenario bisnis. Data berikut yang dilaporkan oleh metode avg() dapat dilihat di halaman Custom Statistics:

  • Grafik tren peristiwa kustom

  • Tampilan Halaman (PV) dan Pengunjung Unik (UV) dari suatu peristiwa

  • Informasi distribusi dimensi

Sintaks dari avg():

__bl.avg(key, value)
Tabel 5. Parameter permintaan dari avg()

Parameter

Tipe

Deskripsi

Diperlukan

Nilai default

key

String

Nama peristiwa.

Ya

Tidak ada

value

Number

Jumlah item yang dilaporkan.

Tidak

0

Contoh dari avg():

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

[Kembali ke Atas]

reportBehavior()

Gunakan metode reportBehavior() untuk segera melaporkan antrian perilaku saat ini.

Jika Anda tidak memanggil metode ini secara manual, ketika kesalahan JS terjadi, antrian perilaku saat ini akan dilaporkan secara otomatis. Ukuran maksimum antrian adalah 100. Jika antrian berisi lebih dari 100 catatan perilaku, catatan perilaku akan dibuang dari kepala antrian.

Catatan

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

Sintaks dari reportBehavior():

__bl.reportBehavior()

Metode reportBehavior() tidak memiliki parameter permintaan.

[Kembali ke Atas]

performance()

Penting

Metode ini hanya berlaku untuk klien web.

Setelah metode onLoad dipanggil, metode performance() dipanggil untuk melaporkan metrik performa kustom selain metrik performa default.

Catatan

Anda hanya dapat memanggil metode ini setelah metode onLoad dipanggil. Jika tidak, pemanggilan akan gagal karena pengumpulan metrik performa default belum selesai. Metode performance() hanya dapat dipanggil satu kali selama setiap PV.

Cara memanggil metode performance():

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

  2. Panggil metode __bl.performance(Object) untuk melaporkan metrik performa kustom secara manual. Dalam proses ini, metrik performa default dilaporkan secara otomatis.

Contoh 1 dari performance() (menggunakan CDN):

window.onload = () => {
 setTimeout(()=>{
  __bl.performance({cfpt:100, ctti:200, t1:300, …});
 }, 1000); // Tetapkan penundaan untuk memastikan bahwa data performa default dikumpulkan. 
};

Contoh 2 dari performance() (menggunakan paket npm):

const BrowserLogger = require('alife-logger');
const __bl = BrowserLogger.singleton({pid:'ID situs unik'});
window.onload = () => {
 setTimeout(()=>{
  __bl.performance({cfpt:100, ctti:200, t1:300, …});
 }, 1000); // Tetapkan penundaan untuk memastikan bahwa data performa default dikumpulkan. 
};
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()

Gunakan metode setConfig() untuk mengubah item konfigurasi tertentu setelah inisialisasi SDK. Untuk informasi lebih lanjut, lihat Referensi SDK.

Sintaks dari setConfig():

__bl.setConfig(next)
Tabel 8. Parameter permintaan dari setConfig()

Parameter

Tipe

Deskripsi

Diperlukan

Nilai default

next

Object

Parameter yang ingin Anda ubah dan nilai parameter baru.

Ya

Tidak ada

Contoh dari setConfig(): Ubah nilai parameter disableHook untuk menonaktifkan pelaporan API otomatis.

__bl.setConfig({
    disableHook: true
});            

[Kembali ke Atas]

setPage()

Gunakan metode setPage() untuk menyetel ulang nama halaman suatu halaman. Secara default, data PV dilaporkan lagi. Metode ini biasanya digunakan untuk aplikasi satu halaman (SPA). Untuk informasi lebih lanjut, lihat Pelaporan data halaman SPA.

Catatan

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

Sintaks dari setPage():

__bl.setPage(page, sendPv)
Tabel 9. Parameter permintaan dari setPage()

Parameter

Tipe

Deskripsi

Diperlukan

Nilai default

page

String

Nama halaman baru.

Ya

Tidak ada

sendPv

Boolean

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

Tidak

true

Contoh dari api():

Tetapkan nama halaman saat ini menjadi hash URL saat ini, dan laporkan data PV lagi.
__bl.setPage(location.hash);

// Tetapkan nama halaman saat ini menjadi homepage tanpa memicu pelaporan data PV.
__bl.setPage('homepage', false);          

[Kembali ke Atas]

setCommonInfo()

Gunakan metode setCommonInfo() untuk menyetel bidang umum.

Sintaks dari setCommonInfo():

__bl.setCommonInfo(obj)

Sebuah objek dilewatkan dalam metode setCommonInfo(). Contoh dari setCommonInfo():

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

Disarankan membatasi ukuran objek untuk metode ini. Jika tidak, permintaan GET akan berukuran besar dan mungkin gagal.

[Kembali ke Atas]

addBehavior()

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

SDK memelihara antrian perilaku pengguna dengan maksimal 100 catatan. Anda dapat memanggil metode addBehavior() untuk menambahkan perilaku pengguna kustom ke akhir antrian perilaku saat ini. Ketika terjadi kesalahan JS, metode addBehavior() melaporkan antrian perilaku saat ini dan mengosongkan antrian.

Anda dapat melihat perilaku pengguna di halaman JS Error Diagnosis. Untuk informasi lebih lanjut, lihat Diagnosis kesalahan JS dengan melacak balik perilaku pengguna.

Catatan

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

Sintaks dari addBehavior():

__bl.addBehavior(behavior)
Tabel 10. Parameter permintaan dari addBehavior()

Parameter

Tipe

Deskripsi

Diperlukan

Nilai default

data

Object

Data perilaku. Parameter ini memiliki dua bidang wajib berikut:

  • name: nama perilaku tipe STRING. Nama dapat mencapai maksimal 20 karakter.

  • message: isi perilaku tipe STRING. Nilainya dapat mencapai maksimal 200 karakter.

Ya

Tidak ada

page

String

Halaman tempat perilaku terjadi.

Tidak

Nilai parameter location.pathname

Contoh dari addBehavior():

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

[Kembali ke Atas]

Membuat beberapa instance

Gunakan paket npm untuk membuat beberapa instance. Paket npm resmi alife-logger telah diterbitkan.

Halaman web

  • Contoh:

    const BrowerLogger = require('alife-logger');
    const bl2 = BrowerLogger.createExtraInstance(props); // Buat instance menggunakan metode createExtraInstance.
    bl2.custom({
      key: 'biz',
      msg: 'msg info'
    });
    Catatan

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

  • Instance baru hanya melaporkan informasi kustom:

    var props = {
      pid: 'xxxx', // ID situs yang datanya perlu dilaporkan oleh instance baru.
      region: 'cn',
      page: '',
      uid: ''
    }

Halaman Weex

  • Contoh:

    const WeexLogger = require('alife-logger/weex');
    const wl2 = WeexLogger.createExtraInstance(props); // Buat instance menggunakan metode createExtraInstance.
    wl2.custom({
      key: 'biz',
      msg: 'msg info'
    });
    Catatan

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

  • Instance baru hanya melaporkan informasi kustom:

    var props = {
      pid: 'xxxx', // ID situs yang datanya perlu dilaporkan oleh instance baru.
      region: 'cn',
      sendRequest: function(data, imgUrl) {
        // Kirim skema log GET.
      },
      postRequest: function(data, imgUrl) {
        // Kirim skema log POST.
      }
    }

Program mini

Contoh:

import MiniProgramLogger from 'alife-logger/miniprogram'; // Tentukan jalur berdasarkan jenis program mini, seperti program mini DingTalk atau Alipay. 
const MiniInstance = MiniProgramLogger.createExtraInstance({
  pid: 'xxxinstance',
  uid: 'userxxx', // ID pengguna, digunakan untuk mengumpulkan data UV. 
  region: 'cn', // Tentukan apakah aplikasi yang lognya dilaporkan ditempatkan di Tiongkok atau Singapura. Nilai cn berarti Tiongkok dan nilai sg berarti Singapura. Jika Anda tidak menentukan parameter ini, nilainya diatur ke cn. 
  // Tentukan metode prosedur jarak jauh (RPC) berdasarkan bisnis Anda untuk melakukan pemantauan browser program mini. 
  sendRequest: (url, resData) => {
    // Metode pengiriman. 
  }
});