Skip to main content
A integração do AppSignal para Next.js. Para relatar tanto traces de back-end quanto erros de front-end, recomenda-se usar o @appsignal/nodejs em combinação com o @appsignal/javascript e o @appsignal/react no lado do cliente para monitoramento de desempenho full-stack e rastreamento de erros.
Devido a limitações técnicas do agente AppSignal, não é possível usar o @appsignal/nodejs no ambiente serverless da Vercel. Recomendamos usar nosso log drain da Vercel e nossos pacotes de JavaScript front-end e React no lugar.

Instalação

Primeiro, siga as instruções de instalação do @appsignal/nodejs. Em seguida, modifique o arquivo de configuração next.config.js do seu projeto Next para habilitar os hooks de instrumentação: Se você estiver usando o Next 15:
Se você estiver usando o Next 13 ou 14:
Depois, adicione o seguinte arquivo na raiz do seu projeto Next.js como instrumentation.js:
Se o seu projeto tiver um diretório src, então o arquivo instrumentation.js deve ser colocado nesse diretório.Se o seu projeto estiver usando o App Router do Next.js, o arquivo não deve ser colocado dentro da pasta app, mas na pasta que contém a pasta app.
O arquivo do instrumentation hook referencia o arquivo appsignal.cjs que foi criado ao configurar o AppSignal. Certifique-se de que o arquivo appsignal.cjs esteja na mesma pasta que o arquivo instrumentation.js, ou ajuste o caminho do require no arquivo instrumentation.js conforme necessário. Por fim, modifique seu arquivo de configuração appsignal.cjs para desativar a instrumentação HTTP, que de outra forma geraria traces redundantes:

Suporte a TypeScript

Ao usar TypeScript, os backtraces emitidos pelos erros do Next.js no lado do servidor referenciarão os arquivos JavaScript compilados. Siga estes passos para configurar o Next.js de forma que os backtraces façam referência ao código TypeScript original. Primeiro, configure o Next.js para emitir source maps adicionando as seguintes linhas ao arquivo next.config.js da sua aplicação:
Em seguida, no seu package.json, modifique a forma como a sua aplicação Next.js é iniciada ao executar npm run start, usando a variável de ambiente NODE_OPTIONS para passar a flag --enable-source-maps para o runtime do Node.js:
Por fim, se estiver usando o pacote de integração de front-end @appsignal/javascript para rastrear erros do lado do cliente, adicione a opção productionBrowserSourceMaps ao arquivo next.config.js para que o Next.js emita source maps públicos:

Recursos

A integração com o Next.js enviará ao AppSignal uma amostra de desempenho para cada requisição. Dentro de cada amostra, a linha do tempo de eventos mostrará eventos, junto com sua duração, correspondendo a:
  • Renderização do documento
  • Execução da função getServerSideProps (apenas pages router)
  • Execução do route handler
  • Execução de requisições HTTP usando o fetch do lado do servidor do Next.js (apenas app router)

Saída standalone

Nenhum dado pode ser relatado quando o Next.js está configurado com output: "standalone" no next.config.js. Quando o Next.js otimiza o tamanho da aplicação para incluir apenas o que é usado pela app, ele omite a extensão e o agente do AppSignal, que relatam os dados aos nossos servidores. Ao usar o starter “with-docker” do Next.js, especificamente o Dockerfile, é necessária uma modificação para garantir que a extensão e o agente do AppSignal sejam incluídos na imagem Docker de produção. Adicione a seguinte linha ao seu Dockerfile, depois das linhas COPY semelhantes próximas ao final do arquivo:
A alteração no Git ficará parecida com isto, mas seu Dockerfile pode ser ligeiramente diferente: