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.Como os erros são agrupados
O AppSignal agrupa erros relacionados em issues com base na rota relatada e nas configurações de agrupamento da sua aplicação. Ocorrências repetidas podem aparecer como uma única issue para triar. A rota é aquela que o SDK relatou por meio desetRouteTemplate(), ou o caminho da página quando nada foi declarado. Sem um template, /orders/1 e /orders/2 são rotas de erro diferentes. Um mesmo bug pode assim virar duas issues.
Lendo a lista de issues
Cada issue na lista traz:- A classe do erro e a mensagem, com a rota em que aconteceu.
- A versão em que foi introduzido. Se ele aparecer primeiro no seu release mais recente, examine esse deploy.
- Uma tendência para o período selecionado, para que um pico se leia de forma diferente de um fluxo constante.
- O número total de ocorrências no período.
- Quando foi visto pela última vez.
- Para quem está atribuído.
Filtrando por tempo e versão
- Intervalo de tempo. Predefinições de uma hora a 30 dias, ou um intervalo personalizado.
- Versão. Restrinja a lista aos erros relatados por um único release. Combinado com a coluna de introdução, é assim que você confirma se um deploy é o responsável.
Investigando uma issue
Abra uma issue para inspecionar um sample: uma vez em que o erro aconteceu no navegador de um usuário. O sample traz a mensagem de erro e o que aconteceu ao redor dela.- Leia a mensagem. Ela diz o que falhou. Por exemplo,
POST https://api.example.com/orders: HTTP 503significa que a API de checkout retornou um erro de servidor. - Verifique o backtrace em busca de erros JavaScript. Ele mostra onde o erro aconteceu no seu código. Se você ver código minificado em vez de nomes de arquivo e linhas legíveis, envie os sourcemaps da versão definida em
appVersion. - Leia os breadcrumbs. Eles mostram eventos antes do erro, como a seleção de um botão ou uma requisição de rede. Se o usuário selecionou Pay pouco antes de
/orderslevar três segundos, verifique primeiro essa requisição à API. - Verifique a versão e as tags. Compare a versão do sample com seus deploys recentes. Use tags definidas com
setTags()para restringir quem foi afetado.
HTTPError ou TimeoutError não tem backtrace de JavaScript. Na página completa da issue, selecione Traces e, em seguida, Fullscreen no card Trace timeline para inspecionar seu span de navegador. Se o back end continuou o trace, os spans dele aparecem ali também. No painel lateral “Browser Errors”, use Open full trace page para chegar à página completa da issue.
Você pode exportar um sample como JSON ou Markdown para compartilhá-lo com seu time. Use o registro da issue para anotar o que encontrou.
Triagem e notificações
Você pode atribuir, silenciar e mudar o estado dessas issues. Elas também têm suporte a configurações de notificação. Leia mais em Errors. Como erros de front-end ficam no namespacebrowser (veja namespaces), essas configurações são separadas das do seu back end. Se você migrar do @appsignal/javascript, configure as notificações para browser. As configurações para frontend não são transferidas. Leia mais no guia de migração.
Erros que você não vai encontrar aqui
Alguns erros nunca chegam ao SDK. Por exemplo, erros antes deinit() e erros dentro de iframes não instrumentados. Erros opacos de script cross-origin são descartados. Cada um tem uma solução alternativa, listada em erros que não são relatados. Se um erro que você esperava está faltando, percorra a solução de problemas.