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/react; não há pacote extra para instalar.
Opcional: React 16.8 ou posterior, se você quiser usar o error boundary que acompanha o pacote.
Capturando erros de renderização
captureError como prop para que o boundary possa relatar os erros que captura.
O boundary relata o erro capturado. Seu callback onError também recebe a pilha de componentes do React para seu próprio tratamento. Nesta beta, essa pilha de componentes não é incluída nos relatórios de erro comuns.
Recuperando de um erro
Passe uma função comofallback para dar ao usuário uma forma de tentar de novo. Ela recebe o erro e uma função reset, que limpa o erro e renderiza os filhos novamente:
Envolvendo um único componente
withErrorBoundary envolve um componente, o que é conveniente para widgets que devem falhar sem derrubar a página:
Props
Coloque boundaries em torno de rotas ou widgets com um fallback útil. Um widget que falhar pode então deixar o resto da página funcionando. Um boundary na raiz captura tudo, mas substitui sua aplicação inteira pelo fallback.
Relatando a rota atual
Relate a rota atual no carregamento inicial e após cada navegação. Passe um template como/orders/:id, não a URL resolvida /orders/42. Nem os IDs de rota do React Router nem o usePathname() do Next.js App Router fornecem esse template automaticamente. O exemplo do React Router usa um data router como createBrowserRouter; renderize RouteReporter dentro dele.
RouteReporter a partir da rota correspondente. Por exemplo, passe routeTemplate="/orders/[id]" a partir de app/orders/[id]/page.jsx. usePathname() retorna a URL resolvida, como /orders/42, então não a use como template.
Importe sua configuração do AppSignal antes do seu roteador. O SDK e alguns
roteadores fazem patch em
history.pushState, e o SDK se compõe com um
patch existente em vez de substituí-lo. Carregar o roteador primeiro pode
deixar a navegação no lado do cliente sem ser relatada.Relatando erros de handlers de eventos e effects
Um error boundary captura erros lançados durante a renderização. Ele não captura erros lançados em um handler de evento, em umsetTimeout ou em uma promise rejeitada dentro de um effect. Os não capturados chegam a window e são relatados automaticamente. Para os demais, relate você mesmo: