Configure o SDK de Real User Monitoring (RUM) do Application Real-Time Monitoring Service (ARMS) para mini programs usando os parâmetros de inicialização, coletores de dados, filtros de eventos, propriedades personalizadas e APIs descritos nesta referência.
Passe todas as opções de configuração para ArmsRum.init():
ArmsRum.init({
pid: "<your-app-id>",
endpoint: "<your-endpoint>",
// Additional parameters
});
Parâmetros de inicialização
|
Parâmetro |
Tipo |
Obrigatório |
Padrão |
Descrição |
|
|
String |
Sim |
- |
ID do mini program. |
|
|
String |
Sim |
- |
Endereço para envio dos dados de monitoramento. |
|
|
String |
Não |
|
Ambiente de implantação. Valores válidos: |
|
|
String |
Não |
- |
Versão do mini program. |
|
|
Object |
Não |
|
Configurações de identidade do usuário. Consulte parâmetros user. |
|
|
Object |
Não |
- |
Configurações dos coletores de dados. Consulte parâmetros collectors. |
|
|
Function |
Não |
noop |
Callback invocado antes de cada relatório. Use-o para modificar ou bloquear dados de saída. |
|
|
Object |
Não |
|
Configurações de relatório de dados. Consulte parâmetros reportConfig. |
|
|
Object |
Não |
- |
Configurações de amostragem e tempo limite de sessão. Consulte parâmetros sessionConfig. |
|
|
Function |
Não |
- |
Analisa o nome da visualização ( |
|
|
Function |
Não |
- |
Extrai o nome do recurso ( |
|
|
Function |
Não |
- |
Parser personalizado para eventos de API. Consulte parâmetros evaluateApi. |
|
|
Object |
Não |
- |
Regras de filtragem de eventos. Consulte parâmetros filters. |
|
|
Object |
Não |
- |
Propriedades personalizadas anexadas a todos os eventos. Consulte parâmetros properties. |
Parâmetros user
Configure a identidade do usuário para rastreamento de sessão.
|
Parâmetro |
Tipo |
Obrigatório |
Padrão |
Descrição |
|
|
String |
Não |
Gerado pelo SDK |
ID do usuário. O SDK gera este valor e ele não pode ser modificado. |
|
|
String |
Não |
- |
Tags de usuário para categorização. |
|
|
String |
Não |
- |
Nome de usuário. |
Não sobrescreva user.id. Alterar esse valor afeta os dados de visitantes únicos (UV). Para integrar seu próprio sistema de contas, defina user.name ou user.tags.
Exemplo
ArmsRum.init({
pid: "<your-app-id>",
endpoint: "<your-endpoint>",
user: {
name: getYourUserName(),
tags: getYourTags(),
}
});
Parâmetros reportConfig
Controle a frequência e o tamanho do lote de envio de dados do SDK.
|
Parâmetro |
Tipo |
Obrigatório |
Padrão |
Descrição |
|
|
Number |
Não |
|
Intervalo de relatório em milissegundos. Valores válidos: 0 a 10000. Defina como |
|
|
Number |
Não |
|
Número máximo de eventos por relatório. Valores válidos: 1 a 100. |
Exemplo
ArmsRum.init({
pid: "<your-app-id>",
endpoint: "<your-endpoint>",
reportConfig: {
flushTime: 0, // Report data immediately
maxEventCount: 50 // Send up to 50 events per batch
}
});
Parâmetros sessionConfig
Gerencie as taxas de amostragem de sessão e tempos limite. Use a amostragem para reduzir o volume de dados em ambientes de alto tráfego.
|
Parâmetro |
Tipo |
Obrigatório |
Padrão |
Descrição |
|
|
Number |
Não |
|
Taxa de amostragem. Valores válidos: 0 a 1. Por exemplo, |
|
|
Number |
Não |
|
Duração máxima da sessão em milissegundos. Padrão: 24 horas. |
|
|
Number |
Não |
|
Tempo limite da sessão em milissegundos. A sessão expira após este período de inatividade. Padrão: 30 minutos. |
Cache local
O SDK armazena o ID do usuário e os dados de sessão no cache local do mini program:
_arms_uid: ID único do usuário (user.id).-
_arms_session: metadados da sessão no formato${sessionId}-${sampled}-${startTime}-${lastTime}, onde:sessionId: ID único da sessão.sampled: indica se a amostragem foi acionada.startTime: timestamp de início da sessão.lastTime: timestamp da última atividade.
Exemplo
ArmsRum.init({
pid: "<your-app-id>",
endpoint: "<your-endpoint>",
sessionConfig: {
sampleRate: 0.5, // 50% sampling rate
maxDuration: 86400000, // 24-hour max session
overtime: 3600000, // 1-hour inactivity timeout
},
});
Parâmetros collectors
Os coletores reúnem tipos específicos de dados de monitoramento. Cada coletor pode ser ativado (true), desativado (false) ou configurado com um objeto de opções.
|
Parâmetro |
Tipo |
Obrigatório |
Padrão |
Descrição |
|
|
|
Boolean \ |
Object |
Não |
|
Rastreia requisições de API. |
|
|
Boolean \ |
Object |
Não |
|
Rastreia erros de JavaScript. |
|
|
Boolean \ |
Object |
Não |
|
Rastreia erros provenientes de |
|
|
Boolean \ |
Object |
Não |
|
Rastreia interações do usuário. |
Exemplo
Desative o rastreamento de interação do usuário:
ArmsRum.init({
pid: "<your-app-id>",
endpoint: "<your-endpoint>",
collectors: {
action: false,
}
});
Parâmetros evaluateApi
A função evaluateApi fornece análise personalizada para eventos de API, incluindo eventos request e httpRequest. Ela aceita três argumentos e retorna um Promise<IApiBaseAttr>.
Assinatura da função:
evaluateApi: async (options, response, error?) => IApiBaseAttr
Argumentos:
|
Parâmetro |
Tipo |
Descrição |
|
|
Object |
Parâmetros da requisição, incluindo |
|
|
Object |
Corpo da resposta. |
|
|
Error |
Objeto de erro. Presente apenas quando a requisição falha. |
**Valor de retorno (IApiBaseAttr):**
Os campos retornados substituem os padrões do SDK. Campos omitidos mantêm seus valores padrão.
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
|
|
String |
Não |
Nome da API, geralmente uma URL convergida. Máximo de 1.000 caracteres. Por exemplo, |
|
|
|
String |
Não |
Breve descrição da API. Máximo de 1.000 caracteres. |
|
|
|
Number |
Não |
Resultado da requisição: |
|
|
|
Number |
Não |
Duração total da requisição. |
|
|
|
Number \ |
String |
Não |
Código de status HTTP. |
|
|
String |
Não |
Dados de depuração como |
Exemplo
ArmsRum.init({
pid: "<your-app-id>",
endpoint: "<your-endpoint>",
evaluateApi: async (options, response, error) => {
const respText = JSON.stringify(response);
// Returned fields overwrite defaults. Omitted fields keep default values.
return {
name: 'my-custom-api',
success: error ? 0 : 1,
snapshots: JSON.stringify({
params: 'page=1&size=10',
response: respText.substring(0, 2000),
reqHeaders: '',
resHeaders: ''
})
}
}
});
Parâmetros filters
Exclua eventos específicos de recursos e exceções dos relatórios.
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
|
|
MatchOption \ |
MatchOption[] |
Não |
Exclui eventos de recursos estáticos e de API (como XMLHttpRequest ou fetch). |
|
|
MatchOption \ |
MatchOption[] |
Não |
Exclui eventos de exceção. |
MatchOption
type MatchOption = string | RegExp | ((value: string) => boolean);
Três modos de correspondência estão disponíveis:
String: corresponde a qualquer URL que comece com o valor especificado. Por exemplo,
'https://api.aliyun.com'corresponde ahttps://api.aliyun.com/v1/resource.RegExp: corresponde a URLs usando uma expressão regular.
Function: função personalizada que retorna
truepara excluir o evento.
Quando MatchOption[] é fornecido, as condições são avaliadas em ordem. Um evento é excluído se qualquer condição corresponder.
Exemplo
ArmsRum.init({
pid: "<your-app-id>",
endpoint: "<your-endpoint>",
filters: {
// Exclude exception events
exception: [
'Test error', // Prefix match
/^Script error\.?$/, // Regex match
(msg) => {
return msg.includes('example-error'); // Custom function
},
],
// Exclude resource and API events
resource: [
'https://example.com/', // Prefix match
/localhost/i, // Regex match (case-insensitive)
(url) => {
return url.includes('example-resource');
},
],
},
});
Parâmetros properties
Anexe propriedades personalizadas de chave-valor a todos os eventos.
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
|
|
String \ |
Number |
Não |
Propriedade personalizada. Chave: máximo de 50 caracteres (o excesso é truncado). Valor String: máximo de 2.000 caracteres. Valores que não sejam string ou number são removidos. |
Comportamento de mesclagem:
Propriedades globais (definidas em
init()) e propriedades de nível de evento (definidas viaevaluateApi,sendCustom,sendExceptionousendResource) são mescladas no momento do armazenamento.As propriedades de nível de evento têm precedência sobre as propriedades globais com a mesma chave.
Após a mesclagem, o número total de pares chave-valor não pode exceder 20. Os pares excedentes são classificados por chave e removidos.
Exemplo
ArmsRum.init({
pid: "<your-app-id>",
endpoint: "<your-endpoint>",
properties: {
prop_string: 'xx',
prop_number: 2,
// Keys or values exceeding the length limit are truncated
more_than_50_key_limit_012345678901234567890123456789: 'yy',
more_than_2000_value_limit: new Array(2003).join('1'),
// Invalid values are removed
prop_null: null,
prop_undefined: undefined,
prop_bool: true,
},
});
Parâmetros resolvidos automaticamente
O SDK resolve automaticamente as seguintes propriedades a partir de endereços IP e strings UserAgent. Valores configurados manualmente têm precedência sobre os valores resolvidos automaticamente.
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
|
Object |
Não |
Informações do dispositivo. |
|
|
Object |
Não |
Informações do sistema operacional e do contêiner. |
|
|
Object |
Não |
Informações de geolocalização. |
|
|
Object |
Não |
Informações do provedor de internet (ISP). |
|
|
Object |
Não |
Informações de rede. |
Para descrições dos campos, consulte Atributos comuns.
Exemplo
ArmsRum.init({
pid: "<your-app-id>",
endpoint: "<your-endpoint>",
geo: {
country: '<your-country>',
city: '<your-city>',
},
});
APIs do SDK
Use as APIs a seguir para ler e modificar configurações em tempo de execução e para reportar dados personalizados.
getConfig
Recupere a configuração atual do SDK:
const config = ArmsRum.getConfig();
setConfig
Atualize a configuração do SDK após a inicialização:
// Update a single parameter
ArmsRum.setConfig('env', 'pre');
// Update multiple parameters
const config = ArmsRum.getConfig();
ArmsRum.setConfig({
...config,
version: '1.0.0',
env: 'pre',
});
sendCustom
Reporte um evento personalizado. Tanto type quanto name são obrigatórios.
|
Parâmetro |
Tipo |
Obrigatório |
Padrão |
Descrição |
|
|
String |
Sim |
- |
Tipo do evento. |
|
|
String |
Sim |
- |
Nome do evento. |
|
|
String |
Não |
- |
Grupo do evento. |
|
|
Number |
Não |
- |
Valor numérico associado ao evento. |
ArmsRum.sendCustom({
type: 'CustomEventType1',
name: 'customEventName2',
group: 'customEventGroup3',
value: 111.11
});
sendException
Reporte uma exceção personalizada. Tanto name quanto message são obrigatórios.
|
Parâmetro |
Tipo |
Obrigatório |
Padrão |
Descrição |
|
|
String |
Sim |
- |
Nome da exceção. |
|
|
String |
Sim |
- |
Mensagem da exceção. |
|
|
String |
Não |
- |
Arquivo onde a exceção ocorreu. |
|
|
String |
Não |
- |
Rastreamento de pilha (stack trace). |
|
|
Number |
Não |
- |
Número da linha. |
|
|
Number |
Não |
- |
Número da coluna. |
ArmsRum.sendException({
// Required
name: 'customErrorName',
message: 'custom error message',
// Optional
file: 'custom exception filename',
stack: 'custom exception error.stack',
line: 1,
column: 2
});
sendResource
Reporte um evento de recurso personalizado. Os parâmetros name, type e duration são obrigatórios.
|
Parâmetro |
Tipo |
Obrigatório |
Padrão |
Descrição |
|
|
|
String |
Sim |
- |
Nome do recurso. |
|
|
|
String |
Sim |
- |
Tipo de recurso, como |
|
|
|
String |
Sim |
- |
Tempo de resposta. |
|
|
|
Number |
Não |
- |
Resultado da requisição: |
|
|
|
String |
Não |
- |
Método da requisição. |
|
|
|
Number \ |
String |
Não |
- |
Código de status HTTP. |
|
|
String |
Não |
- |
Mensagem descritiva. |
|
|
|
String |
Não |
- |
URL da requisição. |
|
|
|
String |
Não |
- |
ID de rastreamento para tracing distribuído. |
ArmsRum.sendResource({
// Required
name: 'getListByPage',
message: 'success',
duration: 800,
// Optional
url: 'https://www.example.com/data/getListByPage',
});