Este tópico descreve como usar o monitoramento de navegador do ARMS para monitorar mini programas compatíveis com padrões, exceto os destinados a DingTalk, Alipay e WeChat. O conteúdo abrange também configurações comuns, métodos de API e cenários avançados.
Uso básico
A configuração básica envolve três etapas: instale e inicialize o pacote npm, reportar logs e configure domínios de segurança.
-
Instale e inicialize o pacote npm.
-
No projeto do seu mini programa, instale o pacote npm
@arms/js-sdkpara ative o monitoramento.npm install @arms/js-sdk -
Adicione o código abaixo a um arquivo
monitor.jsno diretório/utilspara inicializar o SDK.NotaVocê pode personalizar o nome e o local do arquivo JavaScript (JS).
import MiniProgramLogger from '@arms/js-sdk/miniapp'; const Monitor = MiniProgramLogger.init({ pid: 'xxx', uid: 'userxxx', // Set the user ID, which is used for UV statistics. region: 'cn', // Specify the region where the application is deployed. Set this parameter to 'cn' for the Chinese mainland or 'sg' for regions outside the Chinese mainland. The default value is 'cn'. // For basic mini program monitoring, you must manually provide the RPC function. // Implement the function based on your business logic. The following example shows how to make a call in a DingTalk E-App. sendRequest: (url, resData) => { // You must configure this part. It supports both GET and POST reporting. // Demo in DingTalk var method = 'GET'; var data; if (resData) { method = 'POST'; data = JSON.stringify(resData); } dd.httpRequest({ url: url, method: method, data: data, fail: function (error) { //... } }); }, // Manually provide a function to get the current page path. // Implement the function based on your business logic. The following example shows how to make a call in a DingTalk E-App. getCurrentPage: () => { // You must configure this part. if (typeof getCurrentPages !== 'undefined' && typeof getCurrentPages === 'function') { var pages = (getCurrentPages() || []); var pageLength = pages.length; var currPage = pages[pageLength - 1]; return (currPage && currPage.route) || null; } } }); export default Monitor;NotaPara obter mais informações sobre os parâmetros, consulte Parâmetros do SDK.
-
-
Reporte logs.
-
Em
app.js, use um dos métodos a seguir para reportar logs:-
Use o método Monitor.hookApp(options) para capturar automaticamente logs de erro. O parâmetro options corresponde ao objeto de configuração original do seu App.
import Monitor from '/utils/monitor'; App(Monitor.hookApp({ onError(err) { console.log('Entering onError:', err); }, onLaunch() { console.log('Entering onLaunch'); }, onShow(options) { }, onHide() { } })); -
Use o método Monitor.error(err) para reportar manualmente logs de erro.
import Monitor from '/utils/monitor'; App({ onError(err) { Monitor.error(err); console.log('Entering onError:', err); }, onLaunch() { console.log('Entering onLaunch'); }, onShow(options) { }, onHide() { } });
-
-
No arquivo JS de uma página, use um dos seguintes métodos para reportar logs:
-
Use o método Monitor.hookPage(options) para reportar automaticamente dados de visualização de página (PV) e integridade.
NotaEste método não reporta requisições de API automaticamente.
import Monitor from '/utils/monitor'; Page(Monitor.hookPage({ data: {}, onLoad(query) { }, onReady() { // The page has finished loading. }, onShow() { }, onLoad(query) { }, onHide() { }, onUnload() { }, onTitleClick() { /** * Report custom instrumentation data. * @desc */ Monitor.sum('titleClick'); } }));
-
-
-
Configure os domínios de segurança.
Se você defina region como
cn, adicionehttps://arms-retcode.aliyuncs.comà sua lista de domínios válidos.Se você defina region como
sg, adicionehttps://arms-retcode-sg.aliyuncs.comà sua lista de domínios válidos.
Métodos de API
|
Método |
Parâmetro |
Descrição |
|
hookApp |
{} |
Encapsula o objeto de configuração original do App para instrumentar automaticamente os callbacks de ciclo de vida do App. |
|
hookPage |
{} |
Encapsula o objeto de configuração original da Page para instrumentar automaticamente os callbacks de ciclo de vida da Page. |
|
setCommonInfo |
{[key: string]: string;} |
Define campos comuns adicionados a todos os dados reportados. Útil em cenários como liberações graduais. |
|
setConfig |
{[key: string]: string;} |
Define campos de configuração. Para mais informações, consulte Configuração do SDK de Monitoramento de Navegador. |
|
pageShow |
{} |
Reporta um evento de exibição de página para enviar dados de visualização de página (PV). |
|
pageHide |
{} |
Reporta um evento de ocultação de página para enviar dados de integridade. |
|
error |
String/Object |
Reporta um log de erro. |
|
api |
Consulte Referência de API Frontend. |
Reporta logs de requisição de API. |
|
sum/avg |
String |
Reporta métricas personalizadas para cálculos de soma e média. |
Para usar hookApp e hookPage na instrumentação automática de ciclo de vida, o mini programa deve seguir as especificações padrão. Isso significa que o nível App precisa ter um método onError, e o nível Page deve possuir os métodos onShow, onHide e onUnload. Para visualize um exemplo, consulte Uso básico.
A maioria das APIs de reporte de logs é consistente com o SDK de monitoramento de navegador web. O uso das demais APIs está descrito abaixo:
-
Para enviar dados de PV da página atual, chame o método pageShow() dentro do método de ciclo de vida onShow da Page.
NotaNão use este método em conjunto com hookPage(). Caso contrário, logs de PV duplicados serão reportados.
import Monitor from '/util/monitor'; Page({ onShow: function() { Monitor.pageShow(); } }) -
Para enviar dados de integridade da página atual, medindo o nível de saúde e o tempo de permanência, chame o método pageHide() nos métodos de ciclo de vida onHide e onUnload da Page.
NotaNão use este método em conjunto com hookPage(). Caso contrário, logs duplicados serão reportados.
import Monitor from '/util/monitor'; Page({ onHide: function() { Monitor.pageHide(); }, onUnload: function() { Monitor.pageHide(); } ... })
Cenários avançados
Se o uso básico não atender às suas necessidades, considere os cenários avançados descritos nesta seção.
-
Definição do uid (para estatísticas de UV)
Se o ID do usuário estiver disponível antes da inicialização do SDK, defina o uid diretamente na configuração
init.Se o ID do usuário não estiver disponível na inicialização, obtenha-o antes do evento
onShowda aplicação e, em seguida, defina o uid chamando setCommonInfo({uid: 'xxx'}).
-
Configuração de informações comuns para o mini programa
Use o método setCommonInfo para definir informações comuns do mini programa. O monitoramento de navegador do ARMS analisa os seguintes campos:
sr: resolução de tela
vp: viewport
dpr: taxa de pixels do dispositivo
ul: idioma do documento
dr: referenciador do documento
-
ct: tipo de conexão de rede (por exemplo, Wi-Fi ou 3G)
AvisoNão defina muitos campos usando o método setCommonInfo. Exceder o limite de tamanho da requisição pode causar falhas.
Parâmetros do SDK
O monitoramento de navegador do ARMS oferece parâmetros de SDK para configurações avançadas. A tabela a seguir descreve parâmetros comuns aplicáveis a este cenário.
Parâmetro | Tipo | Descrição | Obrigatório | Padrão |
pid | String | ID exclusivo do projeto. Gerado automaticamente pelo ARMS durante a criação de um site. | Sim | Nenhum |
uid | String | ID do usuário. O valor atua como identificador e permite buscar o usuário. Você pode especifique um valor personalizado. Se este parâmetro não for definido, o SDK gera e atualiza o valor automaticamente a cada seis meses. | Não | Gerado automaticamente pelo SDK |
tag | String | Tag de entrada. Cada log carrega uma tag associada. | Não | Nenhum |
release | String | Versão da aplicação. Recomendamos configure este parâmetro para visualize informações de relatório de diferentes versões. | Não |
|
environment | String | Campo de ambiente. Valores válidos: prod, gray, pre, daily e local.
| Não |
|
sample | Integer | Configuração de amostragem de logs. O valor é um número inteiro de 1 a 100. Os logs de desempenho e os logs de API bem-sucedida são amostrados na proporção de | Não |
|
behavior | Boolean | Especifica se deve registrar o comportamento do usuário que reporta erros, facilitando a solução de problemas. | Não |
|
Para obter a lista completa de parâmetros do SDK, consulte Configuração do SDK de Monitoramento de Navegador.