Todos los productos
Search
Centro de documentos

Application Real-Time Monitoring Service:Métodos del SDK

Última actualización: Sep 04, 2026

El SDK de Browser Monitoring de Alibaba Cloud proporciona métodos para el reporte de datos y para modificar la configuración del SDK. Este tema también describe cómo crear varias instancias del SDK.

Métodos en este tema

api()

Utilice api() para reportar la tasa de éxito de las llamadas a API en una página.

De forma predeterminada, el SDK monitorea las solicitudes AJAX en la página y llama a esta API para reportar los datos. Si su página solicita datos mediante JSONP u otros métodos personalizados, como un SDK de cliente, llame al método api() para reportar los datos manualmente.

Nota

Para llamar a este método, se recomienda establecer el parámetro disableHook en true dentro de la configuración del SDK. Para obtener más información, consulte disableHook.

Sintaxis de api():

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

O bien

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

Parámetro

Tipo

Descripción

Obligatorio

Valor predeterminado

api

String

El nombre del método.

Sí

Ninguna

success

Boolean

Especifica si la llamada fue exitosa.

Sí

Ninguna

time

Number

La cantidad de tiempo consumido por la llamada.

Sí

Ninguna

code

String/Number

El código de retorno.

No

Ninguna

msg

String

La información de respuesta.

No

Ninguna

begin

Number

El momento en que se inicia la solicitud. El valor es una marca de tiempo.

No

Ninguna

traceId

String

El valor de EagleEye-TraceID.

No

Ninguna

sid

String

El valor de EagleEye-SessionID.

No

Ninguna

Ejemplo de api():

var begin = Date.now(),
    url = '/data/getTodoList.json',
    traceId = window.__bl && __bl.getTraceId('EagleEye-TraceID'),
    sid = window.__bl && __bl.getSessionId('EagleEye-SessionID');
// Note: Include EagleEye-TraceID and EagleEye-SessionID in the request header.
fetch(url, {
    headers: {
        'EagleEye-TraceID': traceId,
        'EagleEye-SessionID': sid
    }
}).then(function (result) {
    var time = Date.now() - begin;
    // Report a successful API call.
    window.__bl && __bl.api(url, true, time, result.code, result.msg, begin, traceId, sid);
    // do something...
}).catch(function (error) {
    var time = Date.now() - begin;
    // Report a failed API call.
    window.__bl && __bl.api(url, false, time, 'ERROR', error.message, begin, traceId, sid);
    // do something...
});

[[Back to Top]](#sc_index)

error()

Llame al método error() para reportar errores o excepciones de JS en las páginas monitoreadas. Puede consultar los detalles en la página JS Error Diagnostics de Browser Monitoring.

Por lo general, el SDK escucha los errores globales en la página y llama a este método para reportar excepciones. Sin embargo, los detalles del error suelen ser inaccesibles debido a la política de mismo origen del navegador. En este caso, debe reportar dichos errores manualmente.

Sintaxis de error():

__bl.error(error, pos)

Parámetro

Tipo

Descripción

Obligatorio

Valor predeterminado

error

Error

El objeto de error de JS.

Sí

Ninguna

pos

Object

La ubicación donde ocurre el error. La ubicación contiene los siguientes atributos: pos.filename, pos.lineno y pos.colno.

No

Ninguna

pos.filename

String

El nombre del archivo donde ocurre el error.

No

Ninguna

pos.lineno

Number

El número de línea donde ocurre el error.

No

Ninguna

pos.colno

Number

El número de columna donde ocurre el error.

No

Ninguna

Ejemplo 1 de error(): Escuchar y reportar errores de JS en la página.

window.addEventListener('error', function (ex) {
    // The event argument usually contains location information.
    window.__bl && __bl.error(ex.error, ex);
});

Ejemplo 2 de error(): Reportar un mensaje de error personalizado.

window.__bl && __bl.error(new Error('A custom error occurred'), {
    filename: 'app.js', 
    lineno: 10, 
    colno: 15
});

Ejemplo 3 de error(): Reportar un mensaje de error de un tipo personalizado.

__bl.error({name:'CustomErrorLog',message:'this is an error'}, {
    filename: 'app.js', 
    lineno: 10, 
    colno: 15
});

[[Back to Top]](#sc_index)

sum()

Utilice el método sum() para reportar estadísticas personalizadas. Este método se usa normalmente para contar las ocurrencias de un evento de negocio. Puede consultar los datos reportados por el método sum() en la página Custom Statistics:

  • Gráfico de tendencias de eventos personalizados

  • Vistas de página (PV) y visitantes únicos (UV) de un evento

  • Información de distribución por dimensiones

Nota

Después de reportar los datos, estos aparecen en la página Custom Statistics unos minutos después.

Sintaxis de sum():

__bl.sum(key, value)

Parámetro

Tipo

Descripción

Obligatorio

Valor predeterminado

key

String

El nombre del evento.

Sí

Ninguna

value

Number

El número de elementos reportados a la vez.

No

1

Ejemplo de sum():

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

[[Back to Top]](#sc_index)

avg()

Utilice el método avg() para reportar datos personalizados. Este método se usa normalmente para calcular el promedio de ocurrencias o el valor de un evento de negocio específico. Puede consultar los datos reportados por avg() en la página Custom Statistics:

  • Gráfico de tendencias de eventos personalizados

  • PV y UV de un evento

  • Información de distribución por dimensiones

Sintaxis de avg():

__bl.avg(key, value)

Parámetro

Tipo

Descripción

Obligatorio

Valor predeterminado

key

String

El nombre del evento.

Sí

Ninguna

value

Number

El número de elementos reportados.

No

0

Ejemplo de avg():

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

[[Back to Top]](#sc_index)

reportBehavior()

Llame a reportBehavior() para reportar inmediatamente la cola de comportamiento actual.

Si no llama manualmente a este método, cuando ocurre un error de JS, la cola de comportamiento actual se reporta automáticamente. El tamaño máximo de una cola es 100. Si la cola contiene más de 100 registros de comportamiento, los registros se descartan desde el inicio de la cola.

Nota

Para llamar a este método, debe establecer el parámetro behavior en true dentro de la configuración del SDK.

Sintaxis de reportBehavior():

__bl.reportBehavior()

El método reportBehavior() no acepta ningún parámetro.

[[Back to Top]](#sc_index)

addBehavior()

Llame al método addBehavior() para agregar un comportamiento de usuario personalizado a la cola de comportamiento actual.

El SDK mantiene una cola de comportamiento de usuario con una longitud máxima de 100 entradas. Puede llamar al método addBehavior() para agregar un comportamiento de usuario personalizado a la cola. Cuando ocurre un error de JS, el SDK reporta la cola de comportamiento actual y la vacía.

Puede consultar el rastreo del comportamiento del usuario en la página JS Error Diagnostics. Para obtener instrucciones, consulte Use user behavior traceback to diagnose JS errors.

Nota

Para llamar a este método, debe establecer el parámetro behavior en true dentro de la configuración del SDK.

Sintaxis de addBehavior():

__bl.addBehavior(behavior)

Parámetro

Tipo

Descripción

Obligatorio

Valor predeterminado

data

Object

Los datos de comportamiento. Este parámetro tiene los siguientes dos campos obligatorios:

  • name: el nombre del comportamiento de tipo STRING. El nombre puede tener hasta 20 caracteres de longitud.

  • message: el contenido del comportamiento de tipo STRING. El valor puede tener hasta 200 caracteres de longitud.

Sí

Ninguna

page

String

La página donde ocurre el comportamiento.

No

Valor del parámetro location.pathname

Ejemplo de addBehavior():

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

[[Back to Top]](#sc_index)

performance()

Importante

Este método solo es aplicable a clientes web.

Llame al método performance() después del evento onLoad de la página para reportar métricas de rendimiento personalizadas además de las métricas de rendimiento predeterminadas.

Nota

Solo puede llamar a este método después de que ocurra el evento onLoad. De lo contrario, la llamada fallará porque la recopilación de métricas de rendimiento predeterminadas estará incompleta. El método performance() solo se puede llamar una vez durante cada PV.

Para usar el método performance(), realice los siguientes pasos:

  1. Establezca el parámetro autoSendPerf en false para deshabilitar el reporte automático de métricas de rendimiento y esperar el reporte manual.

  2. Llame al método __bl.performance(Object) para reportar manualmente las métricas personalizadas. Esta llamada envía tanto sus métricas personalizadas como las métricas de rendimiento predeterminadas recopiladas por el SDK.

Ejemplo 1 de performance(): con un CDN.

window.onload = () => {
 setTimeout(()=>{
  __bl.performance({cfpt:100, ctti:200, t1:300, …});
 }, 1000); // Delay to ensure all default performance metrics are collected before manual reporting.
};

Ejemplo 2 de performance(): con un paquete npm.

const BrowserLogger = require('@arms/js-sdk');
const __bl = BrowserLogger.singleton({pid:'Your unique site ID'});
window.onload = () => {
 setTimeout(()=>{
  __bl.performance({cfpt:100, ctti:200, t1:300, …});
 }, 1000);// Delay to ensure all default performance metrics are collected before manual reporting.
};
Nota

Descripciones de las métricas de rendimiento personalizadas:

  • cfpt: el tiempo personalizado de primera pintura

  • ctti: el primer tiempo personalizado hasta la interacción

  • t1 a t10: 10 métricas de rendimiento personalizadas

[[Back to Top]](#sc_index)

setConfig()

Llame a setConfig() después de la inicialización del SDK para modificar elementos de configuración específicos. Para obtener más información, consulte SDK reference.

Sintaxis de setConfig():

__bl.setConfig(next)

Parámetro

Tipo

Descripción

Obligatorio

Valor predeterminado

next

Object

El parámetro que desea modificar y el nuevo valor del parámetro.

Sí

Ninguna

[[Back to Top]](#sc_index)

setPage()

Utilice setPage() para restablecer el nombre de la página, lo que de forma predeterminada desencadena un nuevo reporte de PV. Este método se usa normalmente para aplicaciones de una sola página (SPA). Para obtener más información, consulte Page data reporting of SPAs.

Nota

Cuando los datos de PV se reportan nuevamente, los datos existentes no se sobrescriben. Se agrega una nueva entrada de datos.

Sintaxis de setPage():

__bl.setPage(page, sendPv)

Parámetro

Tipo

Descripción

Obligatorio

Valor predeterminado

page

String

El nuevo nombre de la página.

Sí

Ninguna

sendPv

Boolean

Especifica si se deben reportar datos de PV. De forma predeterminada, los datos de PV se reportan.

No

true

Ejemplo de setPage():

// Set the page name to the current URL hash and report a new PV.
__bl.setPage(location.hash);

// Set the page name to 'homepage' without reporting a new PV.
__bl.setPage('homepage', false);

[[Back to Top]](#sc_index)

setCommonInfo()

Utilice setCommonInfo() para establecer campos comunes.

Sintaxis de setCommonInfo():

__bl.setCommonInfo(obj)

El método setCommonInfo() acepta un parámetro de objeto:

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

Limite el tamaño del objeto. Un objeto grande puede resultar en una solicitud GET larga, lo cual podría causar un error.

[[Back to Top]](#sc_index)

Crear varias instancias

Para crear varias instancias, utilice el paquete npm @arms/js-sdk.

Páginas web

  • Ejemplo:

    const BrowerLogger = require('@arms/js-sdk');
    const bl2 = BrowerLogger.createExtraInstance(props); // Create an instance using the createExtraInstance method.
    bl2.custom({
      key: 'biz',
      msg: 'msg info'
    });
    Nota

    El parámetro props es de tipo Object. Los parámetros contenidos en el parámetro props son básicamente los mismos que los de la configuración del SDK.

  • Las nuevas instancias solo reportan información personalizada:

    var props = {
      pid: 'xxxx', // The site ID where the new instance reports data.
      region: 'cn',
      page: '',
      uid: ''
    }

Páginas Weex

  • Ejemplo:

    const WeexLogger = require('@arms/js-sdk/weex');
    const wl2 = WeexLogger.createExtraInstance(props); // Create an instance using the createExtraInstance method.
    wl2.custom({
      key: 'biz',
      msg: 'msg info'
    });
    Nota

    El parámetro props es de tipo Object. Los parámetros contenidos en el parámetro props son básicamente los mismos que los de la configuración del SDK.

  • Las nuevas instancias solo reportan información personalizada:

    var props = {
      pid: 'xxxx', // The site ID where the new instance reports data.
      region: 'cn',
      sendRequest: function(data, imgUrl) {
        // The method for sending logs using GET requests.
      },
      postRequest: function(data, imgUrl) {
        // The method for sending logs using POST requests.
      }
    }

Miniprogramas

Ejemplo: Seleccione la ruta de importación que coincida con su tipo de miniprograma, como un miniprograma de DingTalk o un miniprograma de Alipay. El parámetro region especifica dónde se reportan los registros: establézcalo en cn para reportar registros a servidores en China, o en sg para reportar registros a servidores en Singapur. Si no especifica este parámetro, los registros se reportan a servidores en China.

import MiniProgramLogger from '@arms/js-sdk/miniapp'; // Select the path that matches your mini program type, such as a DingTalk mini program or an Alipay mini program.
const MiniInstance = MiniProgramLogger.createExtraInstance({
  pid: 'xxxinstance',
  uid: 'userxxx', // User ID for collecting UV data.
  region: 'cn', // The region where logs are reported. Set the value to `cn` for China or `sg` for Singapore. Defaults to `cn` if unspecified.
  // For basic mini program monitoring, you must manually pass the remote procedure call (RPC) method. Implement the method based on your business requirements.
  sendRequest: (url, resData) => {
    // The method for sending data.
  }
});