Skip to main content
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.
@appsignal/browser substitui @appsignal/javascript, suas integrações com frameworks e seus pacotes de plugins. Este guia mapeia a API antiga para a nova. O novo SDK coleta breadcrumbs e web vitals depois de init() e relata erros nas visualizações Browser. Migre quando estiver pronto para adotar a API dele e revise as mudanças abaixo.

O que muda

Um pacote em vez de vários. Error tracking, breadcrumbs e web vitals estão todos em @appsignal/browser. O novo SDK não tem pacotes de plugins ou de frameworks correspondentes. Alguns recursos vêm embutidos; outros exigem código da aplicação. Funções em vez de uma instância. Não há objeto de cliente para criar, passar adiante ou entregar a um componente. Você chama init() uma vez e importa as funções de que precisa onde precisar delas. Erros não capturados são relatados sem pedir. @appsignal/plugin-window-events existia porque era preciso ativá-los explicitamente. Agora eles estão ligados por padrão. O SDK descarta erros opacos de scripts cross-origin. Use beforeError para filtrar outros ruídos de navegador ou extensão. Os erros são relatados no namespace browser. @appsignal/javascript relatava em frontend, e não existe mais uma opção namespace. Novos erros aparecem na seção Browser. Os erros existentes em frontend permanecem na lista atual deles. Incidents existentes no namespace frontend permanecem onde estão.
As configurações de notificação são definidas por namespace, então as que você configurou para frontend não se aplicam a browser. Configure-as novamente depois de migrar, ou os erros de front-end vão chegar sem notificar ninguém.
Seus incidents existentes em frontend mantêm seus responsáveis, estados e severidades. O novo pacote relata no namespace browser. As novas issues dele começam sem responsável, como qualquer outra issue nova. Sem spans, decorators ou overrides. O novo SDK não tem equivalente para a antiga API de span. Use setTags() para tags nos erros seguintes, e beforeError ou beforeBreadcrumb para remover dados sensíveis. O contexto opcional passado para captureError() não é incluído nos relatórios de erro comuns nesta beta.

Configuração

Antes:
Depois:
Exceções não capturadas, breadcrumbs de console e breadcrumbs de rede são todos cobertos por essa única chamada.

Métodos

appsignal.wrap() executava seu código e relatava os erros lançados. A promise devolvida rejeitava com o mesmo erro, para que seu código pudesse capturá-lo. A substituição direta torna as duas metades explícitas:

Integrações com frameworks

O error boundary do React muda de forma:
O novo boundary não tem prop action. Chame setRouteTemplate() para a rota usada para agrupar erros. Se você usa setTags(), chame-a depois de init() e limpe-a quando essas tags não devem mais valer.

Passos para migrar

  1. Instale @appsignal/browser@beta e remova @appsignal/javascript junto com todos os pacotes @appsignal/plugin-* e de integração com frameworks.
  2. Substitua sua chamada new Appsignal({ ... }) por init({ ... }), usando a tabela de configuração deste guia. Adicione endpoint e active.
  3. Substitua sendError por captureError, e wrap por try/catch.
  4. Mova padrões de ignoreErrors, decorators e overrides para beforeError e beforeBreadcrumb.
  5. Chame setRouteTemplate() em cada navegação do roteador.
  6. Troque o import do error boundary do React, se você usa um.
  7. Configure as notificações para o namespace browser.
  8. Publique e depois confirme que erros e web vitals chegam na seção Browser da sua aplicação.
Sourcemaps não precisam de mudança. Eles continuam sendo correspondidos pela string de revisão, que agora appVersion fornece.