Skip to main content
🛟 Não hesite em entrar em contato conosco se encontrar problemas ao atualizar o pacote AppSignal para Node.js da sua aplicação. Estamos aqui para ajudar!
Esta documentação lista as mudanças entre os lançamentos 2.x e 3.x do pacote Node.js do AppSignal. Se você estiver atualizando da 2.x para a 3.x, será necessário modificar sua integração para que funcione corretamente. Se encontrar problemas durante a atualização da sua aplicação, certifique-se de entrar em contato conosco para obter suporte.

Instalando a 3.x

Para instalar o AppSignal para Node.js 3.x, execute o seguinte comando no diretório raiz da sua aplicação.

npm

Cliente AppSignal

Ao atualizar da 2.x para a 3.x, você precisa mudar a forma como a sua aplicação inicializa e acessa o cliente AppSignal.

Inicializar o cliente AppSignal

Para inicializar o cliente AppSignal e exportá-lo, você precisará criar um novo arquivo appsignal.cjs, como no exemplo abaixo:
Você precisará exigir (--require ./appsignal.cjs) o arquivo appsignal.cjs ao iniciar sua aplicação. Por exemplo, no arquivo package.json da sua aplicação, como no exemplo abaixo:

Javascript

Acessar o cliente AppSignal

Na 3.x, o cliente AppSignal é acessado a partir do objeto exportado globalmente Appsignal.client. Os exemplos abaixo mostram como fazer isso no contexto de um contador de métricas personalizadas.

2.x

3.x

Integrações

Express e Next.js requerem um tratador de erros.
O AppSignal para Node.js 3.x suporta todas as integrações da 2.x prontas para uso. Isso significa que os pacotes de cada integração não precisam mais ser instalados. Ao migrar da 2.x para a 3.x, você precisará remover quaisquer pacotes de integração do AppSignal instalados em sua aplicação.

Desinstalar integrações

As integrações 2.x não são compatíveis com a integração Node.js 3.x. Você deve seguir as etapas de migração descritas abaixo para usar as integrações do Node.js.
Para aproveitar o suporte pronto para uso das integrações do AppSignal para Node.js 3.x, primeiro você precisará “desfazer” as instalações de integração que eram necessárias na versão 2.x.

Remover código dependente do pacote AppSignal

Os exemplos abaixo são ilustrativos e baseados na documentação das integrações do AppSignal 2.x e 3.x. O código em sua aplicação pode diferir dos exemplos desta documentação.
Não esqueça de remover/desinstalar o pacote de integração do AppSignal.

Remover integração do Apollo Server

O pacote 2.x @appsignal/apollo-server não é compatível com a integração Node.js 3.x. Você deve seguir as etapas de migração descritas abaixo se desejar usar o Apollo Server com nossa integração 3.x.
Remova a inicialização 2.x do pacote e plugin Appsignal Apollo Server da sua aplicação, e substitua-a pelas instruções de instalação 3.x. Sua aplicação Apollo será instrumentada automaticamente.

2.x

3.x

O Apollo Server é instrumentado automaticamente pelo pacote AppSignal para Node.js. Leia a documentação da integração GraphQL 3.x Depois de modificar o código da sua integração, você precisa remover o pacote AppSignal Apollo da sua aplicação.

Remover integração do Express

O pacote 2.x @appsignal/express não é compatível com a integração Node.js 3.x. Você deve seguir as etapas de migração descritas abaixo se desejar usar o express com nossa integração 3.x.
Remova a inicialização 2.x do pacote e middleware AppSignal Express da sua aplicação, e substitua-a pelas instruções de instalação 3.x.

2.x

3.x

Leia a documentação da integração Express 3.x Depois de modificar o código da sua integração, você precisa remover o pacote Appsignal Express da sua aplicação.

Remover integração do Koa.js

O pacote 2.x @appsignal/koa não é compatível com a integração Node.js 3.x. Você deve seguir as etapas de migração descritas abaixo se desejar usar o Koa.js com nossa integração 3.x.
Remova a inicialização 2.x do pacote e instrumentação Appsignal Koa da sua aplicação.

2.x

3.x

O Koa.js é instrumentado automaticamente pelo pacote AppSignal para Node.js. Leia a documentação da integração Koa.js 3.x Depois de modificar o código da sua integração, você precisa remover o pacote Koa.js da sua aplicação.

Remover integração do Next.js

O pacote 2.x @appsignal/nextjs não é compatível com a integração Node.js 3.x. Você deve seguir as etapas de migração descritas abaixo se desejar usar o Next.js com nossa integração 3.x.
O recurso “Web Vitals Reporting” foi descontinuado e não está mais disponível no AppSignal para Node.js 3.x.

2.x

3.x

O Next.js é instrumentado automaticamente pelo pacote AppSignal para Node.js. Leia a documentação da integração Next.js 3.x

Remover pacote de integração

Depois que os imports e o código dependente desses imports forem removidos, você precisa desinstalar o pacote de integração. Isso pode ser feito executando npm uninstall, como no exemplo abaixo.
Bash
Os comandos npm uninstall removerão as dependências de pacotes e atualizarão os arquivos package.json da sua aplicação e o package-lock.json do npm. Substitua @appsignal/express no exemplo acima pelo nome do pacote de integração que você está removendo.

Nomes dos pacotes de integração do AppSignal

O objeto tracer

Não há mais um objeto tracer personalizado do AppSignal. O OpenTelemetry expõe um tracer provider que permite criar novos spans.

2.x:

3.x:

Leia mais sobre tracers na documentação de instrumentação 3.x.

Spans

Não há mais um objeto span personalizado do AppSignal. As funções do tracer do AppSignal, como rootSpan(), createSpan(), currentSpan() e withSpan(), não estão mais disponíveis. Os spans devem ser criados chamando o método startActiveSpan em um objeto tracer. Novos spans são automaticamente filhos do span no qual foram criados.

2.x:

3.x:

Leia mais sobre spans na documentação de instrumentação 3.x.

Helpers de atributos de span

As funções auxiliares usadas para definir atributos de span também mudaram. setSQL foi substituído por setBody, set foi renomeado para setTag, e funções auxiliares adicionais foram adicionadas. setName foi removida, pois os spans devem receber um nome quando são criados.

2.x

3.x

Leia mais sobre os helpers de atributos de span na documentação de instrumentação 3.x.

Tratamento de exceções

Objetos tracer e span não são mais necessários ao usar setError() e sendError().

2.x

3.x

Em sendError(), helpers podem ser usados para adicionar dados adicionais ao span de erro.
Leia mais sobre tratamento de exceções na documentação de tratamento de exceções 3.x