Para aproveitar ao máximo os recursos, melhorias e patches de segurança importantes do New Relic, recomendamos que você atualize seu agente Node.js para a versão mais recente. Para obter informações adicionais sobre atualizações específicas do agente, consulte as notas de versão do agente Node.js. As notas de versão incluem um link para download quando aplicável, além de instruções para baixar e instalar a versão mais recente.
Se o módulo newrelic estiver listado em package.json, execute npm install.
Se você deseja destinar apenas o módulo newrelic , execute npm update newrelic.
BREAKING: o gerenciador de contexto padrão foi atualizado para AsyncLocalContextManager.
O LegacyContextManager padrão anterior pode ser restaurado definindo o sinalizador de recurso de config.feature_flag.legacy_context_manager como true.
Se preferir variáveis de ambiente, você pode definir NEW_RELIC_FEATURE_FLAG_LEGACY_CONTEXT_MANAGER como true.
Observe que este gerenciador de contexto será removido em versões futuras. Se você achar que precisa voltar a usar esse gerenciador de contexto legado, levante a questão com o suporte da New Relic ou com um problema do GitHub.
BREAKING: renomeado shim.handleCATHeaders para shim.handleMqTracingHeaders.
Atualize a dependência do New Relic para versões com suporte de versão Node.js atualizado
@newrelic/AWS-sdk v7.0.0
@newrelic/koa v8.0.0
@newrelic/native-métrica v10.0.0
@newrelic/superagente v7.0.0
@newrelic/test-utilities v8.0.0
Suporte à versão Node.js.
Node.js 16 é a versão mais antiga suportada pelo agente New Relic Node.js v11. Node.js 14 e 15 não são suportados pela v11. Os clientes que executam o Node.js 15 e versões anteriores têm duas opções:
Atualize para uma versão compatível do Node.js e aproveite o novo recurso do agente New Relic Node.js v11.
Permanecer no agente New Relic Node.js v10 sem a capacidade de usar o novo recurso disponível apenas com versões do agente de atualização.
Dica
Atualize para uma versão mais recente do Node.js o mais rápido possível. A próxima versão principal do agente New Relic Node.js provavelmente removerá o suporte para Node.js 16.
Atualizar para o agente Node.js versão 10
Antes de atualizar para o Node.js versão 10, revise estas informações para obter alterações importantes.
Major changes with Node.js agent v11
Comments
Adicionada a capacidade de registrar vários ganchos de instrumentação (onRequire, onResolved) para o mesmo moduleName resolvido.
Esta tem sido uma limitação do agente desde o início.
Se você usasse a API para o instrumento api.instrument, api.instrumentDatastore, api.instrumentWebframework, api.instrumentMessages, ou api.instrumentConglomerate, ela substituiria os ganchos de instrumentação existentes.
O efeito foi que o agente Node.js não funcionaria conforme planejado.
BREAKING: o padrão config.transaction_tracer.record_sql foi atualizado de desativado para ofuscado. Isso significa que as instruções SQL serão capturadas, mas ofuscadas.
BREAKING: Os parâmetros Route (URL) agora são armazenados como request.parameters.route.* atributo na transação, segmentos raiz e spans.
O parâmetro de consulta estará disponível como atributo prefixado com request.parameters.* sobre transação e Spans.
O parâmetro Route estará disponível como atributo prefixado com request.parameters.route.* sobre transação e Spans.
Os parâmetros de rota (também conhecidos como parâmetros de url) são um recurso comum de vários frameworks da web, onde você pode criar um espaço reservado como parte de uma definição de rota de API.
BREAKING: CaptureUrlParams removido da classe WebFrameworkShim.
DEPRECATION NOTICE: shim.unwrap e shim.unwrapOnce não funcionarão mais se você tentar desembrulhar um item que foi empacotado diversas vezes.
Isso ocorre porque como agora permitimos instrumentar o mesmo módulo mais de uma vez, você não pode desembrulhar com segurança sem quebrar toda a instrumentação registrada. Planejamos remover shim.unwrap e shim.unwrapOnce na próxima versão principal.
Atualize a dependência do New Relic para versões com suporte de versão Node.js atualizado
@newrelic/AWS-sdk v7.0.0
@newrelic/koa v8.0.0
@newrelic/native-métrica v10.0.0
@newrelic/superagente v7.0.0
@newrelic/test-utilities v8.0.0
Suporte à versão Node.js.
Node.js 14 é a versão mais antiga compatível com o agente New Relic Node.js v10. Node.js 12 e 13 não são suportados pela v10. Os clientes que executam o Node.js 13 e versões anteriores têm duas opções:
Atualize para uma versão compatível do Node.js e aproveite o novo recurso do agente New Relic Node.js v10.
Permanecer no agente New Relic Node.js v8 sem a capacidade de usar o novo recurso disponível apenas com versões do agente de atualização.
Dica
Atualize para uma versão mais recente do Node.js o mais rápido possível. A próxima versão principal do agente New Relic Node.js provavelmente removerá o suporte para Node.js 14.
Atualizar para o agente Node.js versão 9
Antes de atualizar para o Node.js versão 9, revise estas informações para obter alterações importantes.
Major changes with Node.js agent v9
Comments
Adicionado suporte de paridade oficial para Node.js 18.
BREAKING: o agente não inclui mais o pacote de certificados New Relic automaticamente ao usar a configuração de 'certificados' (geralmente com proxies).
O agente não inclui mais o pacote de certificados New Relic ao usar a configuração de 'certificados' (geralmente com proxies). Se você achar que isso prejudica seu ambiente atual, recomendamos obter um pacote CA como o da Mozilla.
BREAKING: O agente agora exclui a porta ao fazer solicitações HTTPS externas para a porta 443 para estar em conformidade com a especificação e outros agentes
Os segmentos externos anteriores seriam nomeados External/example.com:443 ao usar a porta HTTPS padrão.
O segmento externo agora será denominado External/example.com.
BREAKING: capacidade de desativar o rastreamento de contexto de promessa baseado em ganchos assíncronos por meio da sinalização de recurso await_support foi removida. Isso também remove a instrumentação herdada do Promise.
Lançada a sinalização do recurso await_support . O agente agora depende de async_hooks para rastrear a propagação de promessas assíncronas. O resultado líquido é que se você tivesse feature_flag.await_support definido como falso, a instrumentação herdada rastrearia cada função em uma cadeia de promessas como um segmento separado.
BREAKING: instrumentação removida para o pacote obsoleto oracle npm.
BREAKING: atualização da versão mínima de pg para 8.2.x. Esta é a versão de suporte mais antiga executada em Node.js 14+.
BREAKING: Atualizada a versão mínima suportada do hapi para v20.0.0.
Todas as versões anteriores à v20.0.0 foram descontinuadas pelo hapi por motivos de segurança. Veja a política de suporte deles.
Atualize a dependência do New Relic para versões com suporte de versão Node.js atualizado
@newrelic/AWS-sdk v5.0.0
@newrelic/koa v7.0.0
@newrelic/native-métrica v9.0.0
@newrelic/superagente v6.0.0
@newrelic/test-utilities v7.0.0
Suporte à versão Node.js.
Node.js 14 é a versão mais antiga suportada pelo agente New Relic Node.js v9. Node.js 12 e 13 não são suportados pela v9. Os clientes que executam o Node.js 13 e versões anteriores têm duas opções:
Atualize para uma versão compatível do Node.js e aproveite o novo recurso do agente New Relic Node.js v9.
Permanecer no agente New Relic Node.js v8 sem a capacidade de usar o novo recurso disponível apenas com versões do agente de atualização.
Dica
Atualize para uma versão mais recente do Node.js o mais rápido possível. A próxima versão principal do agente New Relic Node.js provavelmente removerá o suporte para Node.js 14.
Atualize para o agente Node.js versão 8
Antes de atualizar para o Node.js versão 8, revise estas informações para obter alterações importantes.
Major changes with Node.js agent v8
Comments
Adicionado suporte de paridade oficial para Node.js 16.
BREAKING: serverless_mode foi removido como sinalizador de recurso.
A configuração padrão serverless_mode ainda existe.
BREAKING: o agente não inclui mais o pacote de certificados New Relic automaticamente ao usar a configuração de 'certificados' (geralmente com proxies).
Se você achar que isso prejudica seu ambiente atual, poderá aproveitar um sinalizador de recurso para restaurar temporariamente essa funcionalidade. Exemplo de configuração: feature_flag: { certificate_bundle: true }. Neste caso, recomendamos obter um pacote de certificados para o seu ambiente, como o da Mozilla. O pacote New Relic e o sinalizador de recurso serão totalmente removidos na próxima versão principal.
Atualize a dependência do New Relic para versões com suporte de versão Node.js atualizado
@newrelic/AWS-sdk v4.0.1
@newrelic/koa v6.0.1
@newrelic/native-métrica v7.0.1
@newrelic/superagente v5.0.1
@newrelic/test-utilities v6.0.0
Suporte à versão Node.js.
Node.js v12 é a versão mais antiga compatível com o agente New Relic Node.js v8. Node.js 10 e 11 não são suportados pela v8. Os clientes que executam o Node.js 11 e versões anteriores têm duas opções:
Atualize para uma versão compatível do Node.js e aproveite o novo recurso do agente New Relic Node.js v8.
Permanecer no agente New Relic Node.js v7 sem a capacidade de usar o novo recurso disponível apenas com versões do agente de atualização.
Dica
Atualize para uma versão mais recente do Node.js o mais rápido possível. A próxima versão principal do agente New Relic Node.js provavelmente removerá o suporte para Node.js 12.
Atualize para o agente Node.js versão 7
Antes de atualizar para o Node.js versão 7, revise estas informações para obter alterações importantes.
Major changes with Node.js agent v7
Comments
BREAKING Removido o atributo de resposta http obsoleto httpResponseCode, response.status e httpResponseMessage
v6.4.2-v6.14.0: A partir do agente v6.4.2, esses atributo foram marcados como obsoletos, mas deixados para dar um período de transição para o novo atributo.
v7: Quando o relatório de atributo de resposta http estiver ativado, http.statusCode e http.statusText serão relatados.
BREAKING Método de API setIgnoreTransaction obsoleto removido
v5 - v6: A partir do agente v5.0.0, esse método foi marcado como obsoleto, mas deixado para fornecer um período de transição para os novos métodos.
BREAKING Métodos de API distributed tracing obsoletos foram removidos, createDistributedTracePayload() e acceptDistributedTracePayload()
v6.4.0-v6.14.0: A partir do agente v6.4.0, esses métodos foram marcados como obsoletos, mas deixados para fornecer um período de transição para os novos métodos.
Atualize a dependência do New Relic para versões com suporte de versão Node.js atualizado
@newrelic/AWS-sdk v3.0.0
@newrelic/koa v5.0.0
@newrelic/native-métrica v6.0.0
@newrelic/superagente v4.0.0
@newrelic/test-utilities v5.0.0
Suporte à versão Node.js.
Node.js v10 é a versão mais antiga suportada pelo agente New Relic Node.js v7. Node.js 8 e 9 não são suportados pela v7. Os clientes que executam o Node.js 9 e versões anteriores têm duas opções:
Atualize para uma versão compatível do Node.js e aproveite o novo recurso do agente New Relic Node.js v7.
Permanecer no agente New Relic Node.js v6 sem a capacidade de usar o novo recurso disponível apenas com versões do agente de atualização.
O Node.js 10 não recebe atualizações. Atualize para uma versão mais recente do Node.js o mais rápido possível. O suporte para Node.js 10 foi descontinuado com o agente New Relic Node.js v8.
Atualizar para o agente Node.js versão 6
Antes de atualizar para o agente Node.js versão 6, revise estas informações para obter alterações importantes.
Major changes with Node.js agent v6
Comments
Módulo de instrumentação oficial framework Koa atualizado para v3.0.0
v6: Adicionado suporte para @koa/router até v8.0.2. @koa/router v8.0.3 e superior não são suportados no momento.
v6: Adicionado suporte para Node.js v12 e removido suporte para Node.js v6, 7 e 9. A versão mínima suportada é Node.js v8.
Removido o parâmetro de configuração max_samples_per_minute obsoleto, que foi substituído pelo comportamento max_samples_stored
v1 - v5:max_samples_per_minute definiu o número máximo de eventos que o agente coleta por minuto. Se seu aplicativo usou anteriormente max_samples_per_minute como limite superior, talvez seja necessário diminuir o limite para um máximo válido para evitar que os dados sejam descartados no servidor. Recomendamos menos de 10k.
v5: No agente v5 e versões anteriores, max_samples_stored definiu o número máximo de eventos que o agente armazenará se não conseguir se comunicar com o coletor New Relic.
v6: O novo comportamento de max_samples_stored define o número máximo de eventos que o agente coleta por minuto. Se houver mais que esse número, o agente coleta uma amostragem estatística. Este uso da configuração é consistente com o outro agente APM.
Troubleshooting tips: Se faltarem dados de evento, aumente o valor de max_samples_stored ou reverta para o valor padrão. O valor de max_samples_stored não deve ser superior a 10.000.
Suporte à versão Node.js.
Node.js 8 é a versão mais antiga suportada pelo agente New Relic Node.js v6. Node.js 6, 7 e 9 não são suportados pela v6. Os clientes que executam o Node.js 6, 7 e 9 têm duas opções:
Atualize para uma versão compatível do Node.js e aproveite o novo recurso do agente New Relic Node.js v6.
Permanecer no agente New Relic Node.js v5 sem a capacidade de usar o novo recurso disponível apenas com versões do agente de atualização.
Atualize para uma versão mais recente do Node.js o mais rápido possível. A próxima versão principal do agente New Relic Node.js provavelmente removerá o suporte para Node.js 8.
v2 - v4: A partir do agente v2.7.0, esses métodos foram marcados como obsoletos, mas deixados para fornecer um período de transição para os novos métodos.
Troubleshooting tips: Esses novos métodos não são substitutos imediatos dos antigos. Antes de passar para esses novos métodos, revise nosso guia de instrumentação personalizada.
Método createTracer obsoleto removido.
v3 - v4: A partir do agente v3.3.0, esse método foi marcado como obsoleto em favor de newrelic.startSegment().
v4: Aplicativo usando o pacote npm node-cassandra-cql obteria métrica de armazenamento de dados para Cassandra.
v5: O aplicativo deve migrar para o pacote cassandra-driver para obter a métrica do datastore Cassandra. Este módulo é mantido ativamente pelos mesmos desenvolvedores. O pacote node-cassandra-cql foi abandonado em fevereiro de 2014 em favor do pacote cassandra-driver .
Remoção da configuração obsoleta de capture_params e ignored_params .
v2 - v4: A partir do agente v2.7.0, esses parâmetros de configuração causavam o registro de um aviso e os valores eram automaticamente atualizados para as novas configurações de atributo.
v5: Um aviso ainda será registrado, mas a configuração será ignorada e nenhuma atualização automática acontecerá mais.
Troubleshooting tips: Se seu aplicativo tiver parâmetros listados na configuração ignored_params , você precisará movê-los para attributes.exclude.
Suporte à versão Node.js.
Node.js 6 é a versão mais antiga suportada pelo agente New Relic Node.js v5. Node.js 4 e 5 não são suportados pela v5. Os clientes que executam o Node.js 4 ou 5 têm duas opções:
Atualize para uma versão compatível do Node.js e aproveite o novo recurso do agente New Relic Node.js v5.
Permanecer no agente New Relic Node.js v4 sem a capacidade de usar o novo recurso disponível apenas com versões do agente de atualização.
Atualize para uma versão mais recente do Node.js o mais rápido possível. A próxima versão principal do agente New Relic Node.js provavelmente removerá o suporte para Node.js 6 e 7.
Sinalizadores de recurso a partir da v5
A partir do New Relic para Node.js v5:
custom_instrumentation: esse recurso não é mais configurável.
custom_metrics: esse recurso não é mais configurável.
synthetics: esse recurso não é mais configurável.
native_metrics: esse recurso agora é controlado pelo valor de configuração plugins.native_metrics.enabled .
As principais mudanças no agente Node.js v4 incluem um upgrade do https-proxy-agent de v0 para v2. Esta dependência foi atualizada devido a um problema de segurança no https-proxy-agent usado pelo agente New Relic Node.js. Como https-proxy v2 é incompatível com os nós v0.10 e v0.12, A New Relic descontinuou essas versões de agente. Não há nenhuma ação necessária para migrar da v3 para a v4 do agente Node.js da New Relic.
Node.js 4 é a versão mais antiga suportada pelo agente New Relic Node.js v4. Node.js 0.10 e 0.12 não são suportados pela v4. Os clientes que executam o Node.js 0.10 ou 0.12 têm duas opções:
Atualize para uma versão compatível do Node.js e aproveite o novo recurso do agente New Relic Node.js v4.
Permanecer no agente New Relic Node.js v3 sem a capacidade de usar o novo recurso disponível apenas com versões atualizadas do agente.
Atualize para uma versão mais recente do Node.js o mais rápido possível. A próxima versão principal do agente New Relic Node.js provavelmente removerá o suporte para Node.js 4 e 5.
v2: Com o agente v2, foi possível configurar o agente para se conectar ao New Relic sem criptografia.
v3: O agente Node.js v3 sempre se conecta aos servidores New Relic usando criptografia TLS para proteger as comunicações. Se o agente estiver configurado para desabilitar isso, um aviso será registrado e a configuração será ignorada.
Parâmetro de solicitação agora prefixado com request.parameters.
v2: O agente v2 coleta parâmetros de solicitação, como parâmetro de rota (/users/:userId) e parâmetro de consulta (/users?userId=123), como o nome do parâmetro (userId).
v3: O agente v3 prefixa todos os parâmetros de solicitação com a string request.parameters.. Por exemplo,userId aparece como request.parameters.userId.
Troubleshooting tips: Se você tiver dashboard, política de alertas ou outra consulta NRQL baseada em parâmetro de solicitação, atualize-os com os novos nomes de parâmetro.
A partir do agente Node.js v3 da New Relic, o recurso send_request_uri_attribute não é mais configurável.
v1: Com o agente v1, as regras definidas nas propriedades de configuração rules.name e rules.ignore foram aplicadas na ordem inversa; a primeira regra da lista foi aplicada por último.
v2: O agente Node.js v2 aplica regras na ordem em que são definidas, portanto, a primeira regra da lista é aplicada primeiro.
Troubleshooting tips: Se você usou regras de nomenclatura no agente v1 e percebeu problemas, inverta a ordem das suas regras na sua configuração.
Solicitação HTTP deduplicada de transação
v1: O agente v1 iniciou uma nova transação para cada ouvinte no evento request de um servidor HTTP. Em aplicativos com vários listeners no evento request , isso resultava na criação de transações estranhas que quase sempre não eram nomeadas corretamente.
v2: O agente v2 cria apenas uma transação para cada evento request emitido.
Troubleshooting tips: Se você usou vários ouvintes de eventos request e adicionou uma chamada a newrelic.ignoreTransaction() para remover a transação extra, remova essas chamadas.
Parou de engolir erros de solicitação de saída
v1: O agente v1 engoliu o evento error não tratado emitido por objetos de solicitação HTTP de saída.
v2: O agente v2 remove esse comportamento. Em vez disso, o agente v2 não altera a execução normal do Node.js. Isso significa que o evento error sempre será emitido.
Troubleshooting tips: Se você estiver fazendo solicitações de saída e atualmente não escuta o evento error , adicione um ouvinte e trate o erro conforme apropriado para seu aplicativo.
Em newrelic.js, edite as propriedades de configuração do agente Node.js que você usa para compatibilidade com as versões mais recentes:
Deprecated property
New property
capture_params
attributes.enabled: false
Por padrão, as solicitações de atributo não são enviadas para a New Relic. Configure attributes.enabled: true para incluir atributo personalizado ou definido pelo agente no rastreio. A propriedade capture_params foi descontinuada.
ignored_params
attributes.exclude: []
Adicione quaisquer chaves de atributo de solicitação à lista attributes.exclude . Agora, em vez de ser uma correspondência exata, os curingas (*) podem ser anexados a cada item para uma filtragem mais ampla. A propriedade ignored_params foi descontinuada.
Por exemplo, se a raiz attributes.enabled for true e você definir transaction_tracer.attributes.enabled: false, isso restringirá a coleta de atributo no rastreamento da transação, enquanto ainda os permitirá para todos os outros.
Os métodos a seguir do agente Node.js foram descontinuados e a New Relic os excluiu na v5 do agente. Cada um tem uma substituição fácil que realiza a mesma tarefa de maneira mais flexível e confiável.
Esses novos métodos de API substituem os métodos create*Transaction mais antigos. Eles são mais fáceis de usar e funcionam perfeitamente com promessas. Ao contrário do método v1, o retorno de chamada fornecido é invocado imediatamente.
Use este método para incluir um atributo trace customizado.
Use este método para adicionar vários atributos trace personalizados.
A versão mais antiga do Node.js suportada pelo agente New Relic Node.js v2 é 0.10. O Node.js 0.8, que não é atualizado desde julho de 2014, não é compatível com a v2. Os clientes que executam o Node.js 0.8 têm duas opções:
Atualize para uma versão compatível do Node.js e aproveite o novo recurso do agente New Relic Node.js v2.
Permanecer no agente New Relic Node.js v1 sem a capacidade de usar o novo recurso disponível apenas com versões atualizadas do agente.
Recomendação: atualize para uma versão mais recente do Node.js o mais rápido possível.
O agente New Relic Node.js agora requer npm versão 2.0.0 ou superior. Esta versão do npm vem com Node.js 0.10.44 ou superior.
Se estiver usando uma versão anterior do Node.js 0.10, você precisará primeiro instalar o npm 2.0.0 ou superior ou atualizar para uma versão mais recente do Node. Para instalar o npm versão 2:
$ npm install --global npm@2
A partir do agente New Relic Node.js v2:
express_segments: esse recurso não é mais configurável.
cat: esse recurso agora é controlado pelo valor de configuração cross_application_tracer.enabled .