O Browser Monitoring do Application Real-Time Monitoring Service (ARMS) oferece diversos itens de configuração do SDK para atender a uma ampla variedade de requisitos. Use essas configurações para ignorar URLs, operações de API ou erros de JavaScript (JS), agregar páginas removendo caracteres não essenciais das URLs e reduzir o volume de dados reportados ou a carga de trabalho por meio de amostragem aleatória.
Métodos neste tópico
pid | uid | tag | page | setUsername | enableSPA | parseHash | disableHook | ignoreUrlCase | urlHelper | apiHelper | parseResponse | ignore | disabled | sample | pvSample | sendResource | useFmp | enableLinkTrace | release | environment | behavior | c1\c2\c3 | autoSendPerf
Usar itens de configuração do SDK
Use os itens de configuração do SDK por meio de um dos seguintes métodos:
-
Ao instalar um agente do Browser Monitoring em uma página, adicione parâmetros ao config conforme suas necessidades.
Por exemplo, no código de amostra a seguir, além do parâmetro padrão pid, o parâmetro enableSPA para aplicações de página única (SPAs) foi adicionado ao config:
<script> !(function(c,b,d,a){c[a]||(c[a]={});c[a].config={pid:"xxxxxx",enableSPA:true}; with(b)with(body)with(insertBefore(createElement("script"),firstChild))setAttribute("crossorigin","",src=d) })(window,document,"https://sdk.rum.aliyuncs.com/v1/bl.js","__bl"); </script> -
Após a inicialização da página, chame o método setConfig no código JavaScript para modificar os itens de configuração.
O método
__bl.setConfig(next)aceita o seguinte parâmetro:Parâmetro
Tipo
Descrição
Obrigatório
Valor padrão
next
Object
O item de configuração e seu valor que você deseja modificar.
Sim
Nenhum
pid
|
pid |
String |
O ID exclusivo do projeto. O ARMS gera esse ID automaticamente ao criar um site. |
Sim |
Nenhum |
uid
|
|
|
|
|
|
uid |
String |
O ID do usuário. Este valor funciona como identificador e permite buscar o usuário. É possível definir um valor personalizado. Caso nenhum valor seja especificado, o SDK gera e atualiza o ID automaticamente a cada seis meses. |
|
|
O código a seguir exemplifica como chamar o método setConfig para modificar o item de configuração do SDK:
__bl.setConfig({
uid: 12345
});
Não é possível chamar o método setConfig para modificar o parâmetro uid durante o monitoramento de mini programas. Como alternativa, use o método setUsername para identificar um usuário.
tag
|
tag |
String |
A tag de entrada. Cada log carrega uma tag. |
Não |
Nenhum |
page
|
page |
String |
O nome da página. |
Não |
Por padrão, utiliza a parte principal da URL da página atual: |
Use a propriedade ignoreErrors para consultar os erros que deseja reportar. Para mais informações, consulte ignore.
setUsername
|
setUsername |
Function |
Define um método que deve retornar um nome de usuário do tipo String. |
Não |
Nenhum |
Este item de configuração cria uma função responsável por obter o nome de usuário como uma string. Após obter o nome de usuário, é possível implementar rastreamento de sessão ponta a ponta e consultar sessões com base nesse nome para solucionar problemas.
Se não for possível obter o nome de usuário durante a inicialização da página, defina o valor de retorno como null em vez de um nome temporário. Ao definir o retorno como null, o método setUsername será chamado novamente para obter o nome correto quando o SDK enviar logs. Contudo, se você definir um nome temporário como valor de retorno, o sistema usará esse nome e não chamará setUsername novamente para buscar o nome real.
Defina o método setUsername apenas uma vez durante a execução. Para alterar o método, reinicie a aplicação.
O código a seguir exemplifica como chamar o método setConfig para modificar o item de configuração do SDK:
__bl.setConfig({
setUsername: function () {
return "username_xxx";
}
});
enableSPA
|
enableSPA |
Boolean |
Escuta eventos hashchange na página e reporta o PV novamente. Aplicável a cenários de aplicação de página única. |
Não (suportado apenas em cenários Web) |
|
parseHash
|
parseHash |
Function |
Usado em conjunto com enableSPA. |
Não |
Veja abaixo |
Em cenários de aplicação de página única (SPA) (consulte SPA page data reporting), se enableSPA estiver definido como true, o parâmetro parseHash analisa o hash da URL e o converte no campo Page quando ocorre um evento hashchange.
Default value
O valor padrão é obtido através do seguinte método de processamento de string:
function (hash) {
var page = hash ? hash.replace(/^#/, '').replace(/\?.*$/, '') : '';
return page || '[index]';
}
Geralmente, não é necessário modificar este parâmetro. No entanto, caso deseje usar um nome de página personalizado para reportar dados específicos ou se o hash da URL for complexo, modifique este item de configuração. Exemplo:
// Define the mapping between URL hashes and page names.
var PAGE_MAP = {
'/': 'homepage',
'/contact': 'contact us',
'/list': 'data list',
// ...
};
// Call the SDK method after the page is loaded.
window.addEventListener('load', function (e) {
// Call the setConfig method to modify the SDK configuration item.
__bl.setConfig({
parseHash: function (hash) {
key = hash.replace(/\?.*$/, '');
return PAGE_MAP[key] || 'unknown page';
}
});
});
disableHook
O parâmetro disableHook só tem efeito durante a inicialização das configurações.
|
disableHook |
Boolean |
Desativa os listeners de requisições AJAX. |
Não |
|
ignoreUrlCase
|
ignoreUrlCase |
Boolean |
Ignora maiúsculas e minúsculas na URL da página. |
Não |
|
urlHelper
|
urlHelper |
* |
Substitui o antigo parâmetro ignoreUrlPath e configura regras de filtragem de URL. |
Não |
Veja abaixo |
Quando a URL de uma página é semelhante a http://example.com/projects/123456 (onde o número após projects é o ID do projeto), reportar example.com/projects/123456 como página impede o agrupamento correto dos dados. Nesse caso, para garantir que páginas semelhantes sejam agrupadas, use o parâmetro urlHelper para filtrar caracteres não críticos, como o ID do projeto neste exemplo.
O parâmetro urlHelper substitui o parâmetro ignoreUrlPath para ignorar caracteres não essenciais nas URLs das páginas. Se você especificar o parâmetro ignoreUrlPath, essa configuração ainda terá efeito. Caso ambos os parâmetros ignoreUrlPath e urlHelper sejam definidos, a configuração do urlHelper prevalecerá.
Esta configuração aplica-se apenas quando o SDK captura automaticamente a URL da página como valor de page. O SDK ignora esta definição se você configurar manualmente o valor da página chamando os métodos setPage ou setConfig (consulte SDK methods), ou se enableSPA estiver definido como
true.
Default value
O valor padrão deste item de configuração é o array mostrado no código de amostra a seguir. Na maioria dos casos, não é necessário modificar esse valor:
[
// Replace all digits in the path with asterisks (*).
{rule: /\/([a-z\-_]+)?\d{2,20}/g, target: '/$1**'},
// Remove a trailing slash (/) from the URL.
/\/$/
]
Por padrão, esta configuração substitui identificadores numéricos que seguem um segmento de caminho. Por exemplo, tanto xxxx/00001 quanto xxxx/00002 tornam-se xxxx/**, assim como aconteceria com uma URL original como xxxx/123456.
Value types
O valor do parâmetro urlHelper pode ser dos seguintes tipos:
StringouRegExp(expressão regular): Remove a parte correspondente da string da URL.Object<rule, target>: Um objeto com as chaves rule e target. Estes são passados como argumentos para o método JavaScript String.prototype.replace(). Para detalhes, consulte a documentação do String.prototype.replace().Function: Uma função que recebe a string original da URL como argumento. Seu valor de retorno é usado como o valor final da página.Array: Um array contendo múltiplas regras, onde cada regra pode ser qualquer um dos tipos descritos acima.
apiHelper
|
apiHelper |
* |
Substitui o antigo parâmetro ignoreApiPath e configura regras de filtragem de API. |
Não |
Veja abaixo |
Este parâmetro remove caracteres não essenciais nas URLs ao reportar automaticamente dados específicos de operações de API. O uso e a função deste parâmetro são idênticos aos descritos em urlHelper.
O parâmetro apiHelper substitui o parâmetro ignoreApiPath para ignorar caracteres não críticos nas URLs das operações de API. Se você especificar o parâmetro ignoreApiPath, essa configuração continuará válida. Caso ambos os parâmetros ignoreApiPath e apiHelper sejam definidos, a configuração do apiHelper prevalecerá.
Default value
O valor padrão deste parâmetro é um objeto e não precisa ser modificado:
{rule: /(\w+)\/\d{2,}/g, target: '$1'}
Esta configuração padrão filtra números finais nos caminhos de URL da API, como em xxxx/123456.
Se precisar reportar parâmetros da query string (a parte da URL da API após o ?), como o parâmetro pid em https://arms.console.alibabacloud.com/apm?pid=fr6fbgbeot, use o reporte manual:
parseResponse
|
parseResponse |
Function |
Analisa os dados retornados durante o reporte automático de API. |
Não |
Veja abaixo |
Este item de configuração analisa os dados retornados quando o sistema reporta automaticamente dados específicos de operações de API.
Default value
O código de amostra a seguir mostra as configurações padrão:
function (res) {
if (!res || typeof res !== 'object') return {};
var code = res.code;
var msg = res.msg || res.message || res.subMsg || res.errorMsg || res.ret || res.errorResponse || '';
if (typeof msg === 'object') {
code = code || msg.code;
msg = msg.msg || msg.message || msg.info || msg.ret || JSON.stringify(msg);
}
return {msg: msg, code: code, success: true};
}
A função padrão analisa a resposta para extrair as propriedades msg e code. Embora essa função atenda à maioria das aplicações, substitua-a caso não satisfaça seus requisitos de negócio.
ignore
|
ignore |
Object |
Ignora a URL/API/erro JS especificado. Logs que atendem às regras são ignorados e não reportados. Inclui os sub-itens de configuração ignoreUrls, ignoreApis, ignoreErrors e ignoreResErrors. |
Não |
Veja abaixo |
O valor do parâmetro ignore é um objeto que contém quatro propriedades: ignoreUrls, ignoreApis, ignoreErrors e ignoreResErrors. Defina uma ou mais propriedades do valor do parâmetro.
Default value
O código de amostra a seguir mostra as configurações padrão:
ignore: {
ignoreUrls: [],
ignoreApis: [],
ignoreErrors: [],
ignoreResErrors: []
},
ignoreUrls
A propriedade ignoreUrls especifica quais URLs ignorar. Logs provenientes de URLs que correspondem a um padrão definido não são reportados. O valor pode ser uma string, regular expression, function ou um array contendo esses tipos. Exemplo:
__bl.setConfig({
ignore: {
ignoreUrls: [
'http://host1/', // string
/.+?host2.+/, // regular expression
function(str) { // function
if (str && str.indexOf('host3') >= 0) {
return true; // Do not report
}
return false; // Report
}]
}
});
ignoreApis
A propriedade ignoreApis especifica quais APIs ignorar. Chamadas para APIs que correspondem a um padrão definido não são monitoradas. O valor pode ser uma string, regular expression, function ou um array contendo esses tipos. Exemplo:
__bl.setConfig({
ignore: {
ignoreApis: [
'api1','api2','api3', // string
/^random/, // regular expression
function(str) { // function
if (str && str.indexOf('api3') >= 0) return true; // Do not report
return false; // Report
}]
}
});
ignoreErrors
A propriedade ignoreErrors especifica quais erros JS ignorar. Erros JS que correspondem a um padrão definido não são reportados. O valor pode ser uma string, regular expression, function ou um array contendo esses tipos. Exemplo:
__bl.setConfig({
ignore: {
ignoreErrors: [
'test error', // string
/^Script error\.?$/, // regular expression
function(str) { // function
if (str && str.indexOf('Unknown error') >= 0) return true; // Do not report
return false; // Report
}]
}
});
ignoreResErrors
A propriedade ignoreResErrors especifica quais erros de recurso ignorar. Erros de recurso que correspondem a um padrão definido não são reportados. O valor pode ser uma string, regular expression, function ou um array contendo esses tipos. Exemplo:
__bl.setConfig({
ignore: {
ignoreResErrors: [
'http://xx/picture.jpg', // string
/jpg$/, // regular expression
function(str) { // function
if (str && str.indexOf('xx.jpg') >= 0) return true; // Do not report
return false; // Report
}]
}
});
disabled
|
disabled |
Boolean |
Define se a função de reporte de logs deve ser desativada. |
Não |
|
sample
|
sample |
Integer |
Define a configuração de amostragem de logs de API. O valor deve ser um inteiro de 1 a 100. Amostra logs de desempenho e logs de API bem-sucedidos a uma taxa de |
Não |
|
Benefícios:
Reduz custos ao reportar apenas dados de API amostrados. Recomendamos identificar os dados que não exigem monitoramento configurando o parâmetro ignore. Para mais informações, consulte ignore.
Diminui a sobrecarga de desempenho na coleta de dados.
Descrição:
Configure este item para selecionar e reportar aleatoriamente logs de desempenho e logs de operações de API bem-sucedidas. Isso reduz o volume de dados reportados e a carga de trabalho. Quando o ARMS processa os logs reportados em segundo plano, ele restaura os dados com base nas configurações de amostragem. Dessa forma, métricas como taxa de erro JS ou taxa de falha de API permanecem precisas e não sofrem impacto da amostragem. No entanto, ao definir este parâmetro, talvez não seja possível obter dados detalhados, como os detalhes da API.
O valor padrão de
sampleé1. Valores válidos são inteiros de 1 a 100. A taxa de amostragem é1/sample. Por exemplo,1significa 100% de amostragem,10significa 10% de amostragem e100significa 1% de amostragem.
Quando o volume total de dados é pequeno e a amostragem aleatória ainda é executada, pode haver um grande desvio no resultado estatístico. Recomendamos utilizar este item de configuração para sites cuja média diária de visualizações de página (PVs) ultrapasse 1 milhão.
pvSample
|
Parâmetro |
Tipo |
Descrição |
Obrigatório |
Valor padrão |
|
pvSample |
Integer |
Define a configuração de amostragem para logs de PV. O valor é um inteiro de 1 a 100, onde a taxa de amostragem é |
Não |
|
Benefícios:
Reduz custos ao reportar apenas dados de PV amostrados.
Diminui a sobrecarga de desempenho na coleta de dados.
Descrição:
Configure este item para selecionar e reportar aleatoriamente logs de PV. Isso reduz o volume de dados reportados e a carga de trabalho. Quando o ARMS processa os logs reportados em segundo plano, ele restaura os dados com base nas configurações de amostragem. Assim, métricas como a taxa de erro JS permanecem precisas e não sofrem impacto da amostragem.
O valor padrão de
pvSampleé1. A taxa de amostragem é1/pvSample. Por exemplo, um valor de1significa 100% de amostragem,10significa 10% de amostragem e100significa 1% de amostragem.
sendResource
|
sendResource |
Boolean |
Reporta recursos estáticos na página. |
Não |
|
Se o parâmetro sendResource estiver definido como true, os recursos estáticos da página serão reportados quando o evento load da página for acionado. Se uma página carregar lentamente, visualize seu gráfico de cascata de recursos estáticos na página Session Traces para identificar a causa.
O código a seguir exemplifica como definir o parâmetro sendResource:
<script>
!(function(c,b,d,a){c[a]||(c[a]={});c[a].config={pid:"xxxxxx",sendResource:true};
with(b)with(body)with(insertBefore(createElement("script"),firstChild))setAttribute("crossorigin","",src=d)
})(window,document,"https://sdk.rum.aliyuncs.com/v1/bl.js","__bl");
</script>
Para solucionar problemas de carregamento lento de página, configure o parâmetro sendResource no config durante a inicialização, conforme mostrado no código de amostra anterior. Assim, os recursos estáticos são reportados quando o evento load é acionado. Se você chamar o método setConfig, os recursos estáticos podem ser reportados após a conclusão do evento load. Nesse caso, o parâmetro sendResource não ajudará a identificar a causa da lentidão.
useFmp
|
useFmp |
Boolean |
Coleta dados FMP (First Meaningful Paint, primeira renderização válida) da primeira tela. |
Não |
|
enableLinkTrace
|
enableLinkTrace |
Boolean |
Para mais informações sobre Back-to-back Tracing Analysis, consulte Diagnose API errors with front-to-back tracing. |
Não (suportado apenas em cenários Web, mini programas Alipay, mini programas WeChat e mini programas DingTalk) |
|
release
Configure release no config durante a inicialização da página. Não chame o método setConfig.
|
release |
String |
A versão da aplicação. Recomendamos configurar este parâmetro para visualizar informações de relatório de diferentes versões. |
Não |
|
environment
|
|
|
|
|
|
environment |
String |
O campo de ambiente. Valores válidos: prod, gray, pre, daily e local.
|
Não |
|
behavior
|
behavior |
Boolean |
Define se deve registrar o comportamento do usuário que gera erros para facilitar a solução de problemas. |
Não (suportado apenas em cenários Web e de mini programas) |
O valor padrão para Browser é |
autoSendPerf
|
autoSendPerf |
Boolean |
Define se o envio automático de logs de desempenho é permitido. |
Não |
|
c1\c2\c3
Além dos itens de configuração anteriores, o SDK do ARMS fornece três itens personalizados para que você configure campos conforme seus requisitos de negócio. Após configurar esses campos, seus valores serão incluídos em todos os logs reportados.
|
c1 |
String |
Campo de service personalizado. Cada log carrega este campo. |
Não |
Nenhum |
|
c2 |
String |
Campo de service personalizado. Cada log carrega este campo. |
Não |
Nenhum |
|
c3 |
String |
Campo de service personalizado. Cada log carrega este campo. |
Não |
Nenhum |
c1\c2\c3 representa os dados transportados em todos os relatórios da página personalizada atual. Geralmente, c1\c2\c3 relacionam-se aos seus services. Ao inicializar o SDK do Browser Monitoring para JavaScript, especifique parâmetros do SDK para consultar dados, como o nível VIP de um usuário.