Browser monitoring é uma funcionalidade em beta do AppSignal Labs. O
pacote
@appsignal/browser é publicado sob a tag beta no npm, e sua
configuração e API ainda podem mudar entre releases beta. Compartilhe seu
feedback na nossa comunidade no Discord.init() como um único objeto. Apenas key é obrigatória. Uma segunda chamada a init() é ignorada até você chamar destroy(). A maioria das aplicações muda as opções no próximo build.
key
- Tipo:
string - Obrigatória
endpoint
- Tipo:
string - Valor padrão: a origem da página atual
https://appsignal-endpoint.net. Se você encaminhar o tráfego do AppSignal pelo seu domínio, deixe-o sem definição para usar a origem atual. Uma barra final é removida.
Erros são enviados para POST /ingest/browser/errors, e web vitals para POST /ingest/browser. A chave viaja como parâmetro de query api_key, o que vale saber se você mantém uma allowlist de connect-src.
active
- Tipo:
boolean - Valor padrão:
true
init(). Quando é false, a inicialização retorna sem alterar a página, iniciar temporizadores ou fazer requisições. Uma segunda chamada a init() não consegue desligar um SDK que já está em execução. Todas as outras funções também não fazem nada, então você pode chamá-las em qualquer lugar sem verificar antes.
Defina isso a partir do seu ambiente de build para que execuções de desenvolvimento, teste e CI não enviem nada:
appVersion
- Tipo:
string
serviceName
- Tipo:
string - Valor padrão:
"Browser"
serviceName: "Checkout UI" mostra Checkout UI em vez do padrão Browser na linha do tempo do trace. Use um valor diferente para cada front-end que você monitora. O SDK o envia com todo relato de erro. Veja distributed tracing para Browser.
tracePropagationTargets
- Tipo:
string[] - Valor padrão:
[]
traceparent. Cada padrão precisa de um host e um caminho. Por exemplo, ["api.example.com/**"] corresponde a todo caminho em api.example.com. api.example.com sozinho não corresponde a nada.
Se uma requisição correspondente retornar uma resposta 5xx ou expirar, o SDK relata um erro de navegador. Para ver spans de back-end no trace dele, instrumente o serviço que a recebe para que ele leia o cabeçalho.
A lista vazia padrão não adiciona nenhum cabeçalho traceparent. Veja distributed tracing para Browser para configuração e exemplos.
beforeError
- Tipo:
(event: IncomingError) => IncomingError | null
null para descartar o erro, ou altere seus campos para ocultá-los. Leia mais em filtrando erros.
Esse callback precisa ser síncrono. Uma promise retornada é detectada, registrada como console.error, e o erro é descartado.
beforeBreadcrumb
- Tipo:
(breadcrumb: Breadcrumb) => Breadcrumb | null
null para descartá-lo, ou altere message e data para remover texto sensível. Isso roda com frequência, então mantenha rápido.
errors.enabled
- Tipo:
boolean - Valor padrão:
true
false, o SDK continua escutando por eles, mas não envia nada.
errors.sampleRate
- Tipo:
numberentre0e1 - Valor padrão:
1.0
0.25 relata cerca de um quarto deles. Isso acontece antes dos limites de taxa e antes de beforeError rodar.
breadcrumbs.network
- Tipo:
boolean - Valor padrão:
true
fetch e XMLHttpRequest, exceto requisições canceladas. Essa opção não controla o breadcrumb do carregamento inicial do documento. O SDK não lê corpos de requisição ou resposta.
breadcrumbs.console
- Tipo:
boolean - Valor padrão:
true
console.warn e console.error. console.log não recebe patch.
breadcrumbs.clicks
- Tipo:
boolean - Valor padrão:
true
breadcrumbs.longTasks
- Tipo:
boolean - Valor padrão:
true
privacy.queryParamsAllowlist
- Tipo:
string[] - Valor padrão:
[]
* para corresponder a vários nomes de uma vez, então "utm_*" mantém todos os parâmetros UTM. A lista padrão é vazia, o que remove todos eles. Leia mais em privacidade e filtragem.
privacy.networkBlocklist
- Tipo:
string[] - Valor padrão:
[]
fetch e XMLHttpRequest que não são registradas como breadcrumbs nem como erros de requisição com falha. Comparados com host e caminho. As chamadas continuam acontecendo. Essa opção não filtra o breadcrumb do carregamento inicial do documento.
privacy.dom.maskText
- Tipo:
string[] - Valor padrão:
[]
[masked] em breadcrumbs de click. O breadcrumb continua sendo registrado, então você mantém o fato de que houve uma interação.
privacy.dom.blockElement
- Tipo:
string[] - Valor padrão:
[]
Referência da API
Com exceção deinit(), essas funções não fazem nada até o SDK ser inicializado com active: true.