Browser Monitoring SDK menyediakan metode untuk melaporkan data dan mengubah konfigurasi SDK.
Metode dalam topik ini
Metode pelaporan data: api(), error(), sum(), avg(), reportBehavior(), dan performance().
Metode modifikasi konfigurasi SDK: setConfig(), setPage(), setCommonInfo(), dan addBehavior().
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.
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})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 ...
}); 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)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
}); 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:
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)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);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)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);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.
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.
performance()
Metode ini hanya berlaku untuk klien web.
Setelah metode onLoad dipanggil, metode performance() dipanggil untuk melaporkan metrik performa kustom selain metrik performa default.
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():
Atur parameter autoSendPerf menjadi false untuk menonaktifkan pelaporan otomatis metrik performa dan tunggu pelaporan manual.
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.
};Deskripsi metrik performa kustom:
cfpt: waktu render pertama kustom
ctti: waktu interaksi pertama kustom
t1 hingga t10: 10 metrik performa kustom
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)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
}); 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.
Ketika data PV dilaporkan lagi, data yang ada tidak ditimpa. Sebuah entri data baru ditambahkan.
Sintaks dari setPage():
__bl.setPage(page, sendPv)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); 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'
}); Disarankan membatasi ukuran objek untuk metode ini. Jika tidak, permintaan GET akan berukuran besar dan mungkin gagal.
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.
Untuk memanggil metode ini, Anda harus menyetel parameter behavior menjadi true dalam konfigurasi SDK.
Sintaks dari addBehavior():
__bl.addBehavior(behavior)Parameter | Tipe | Deskripsi | Diperlukan | Nilai default |
data | Object | Data perilaku. Parameter ini memiliki dua bidang wajib berikut:
| 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'
})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' });CatatanParameter 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' });CatatanParameter 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.
}
});