• /
  • EnglishEspañolFrançais日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

Guia de migração do agente Ruby 7.x para 8.x

|View as Markdown (English)

Resumo

Este guia aborda as principais mudanças entre as séries 7.xe 8.x do agente Ruby, problemas que podem ser encontrados durante a atualização e como migrar com sucesso para a versão 8.x.

As principais mudanças incluem:

Consulte o marco da versão 8.0 para obter mais informações.

Mudanças no add_method_tracer

O parâmetro de nome da métrica aceita Procs; strings não são mais interpoladas

O segundo argumento para add_method_tracer é o nome da métrica usada para registrar chamadas para o método de rastreamento.

Anteriormente, essa string poderia incluir interpolação no estilo Ruby para permitir que o nome da métrica incluísse variáveis do receptor do método. Por exemplo:

# old (<= 7.2)
add_method_tracer :foo, 'metric_#{args[0]}'

A partir da versão 8.0, esta string não será mais interpolada. Para preservar o comportamento descrito acima, passe um Proc:

# new (8.0+)
add_method_tracer :foo, -> (*args) { "metric_#{args[0]}" } # note the double-quotes

Observe que a aridade do Proc passado para add_method_tracer deve corresponder à aridade do método de rastreamento original (ou usar um splat compatível).

Semelhante aos nomes de métricas, as opções :code_header e :code_footer para add_method_tracer eram anteriormente fornecidas como strings que seriam interpoladas no contexto do receptor do método.

No agente Ruby 8.0, :code_header e :code_footer só serão invocados se forem fornecidos como Procs, como no exemplo acima.

Chame add_method_tracer uma vez por método

Chamar add_method_tracer diversas vezes no mesmo método substituirá qualquer rastreador de método definido anteriormente para esse método. Deve haver apenas uma linha add_method_tracer para cada método de rastreamento.

Anteriormente, o agente permitia adicionar múltiplas métricas ao mesmo método invocando add_method_tracer uma vez para cada métrica. Isto ainda pode ser feito, mas os nomes das métricas precisam ser passados como segundo argumento de add_method_tracer como um array de strings ou procs.

# old
add_method_tracer :foo, 'metric1'
add_method_tracer :foo, 'metric2', push_scope: false
add_method_tracer :foo, 'metric3', push_scope: false
# new
add_method_tracer :foo, ['metric1', 'metric2', 'metric3']

Observe que o primeiro nome da métrica será criado como uma métrica com escopo, a menos que push_scope: false seja especificado. A métrica nomeada a seguir não terá escopo. Cada método de rastreamento pode ter apenas uma métrica com escopo definido.

Dica

Versões mais antigas do Mocha podem causar problemas com o add_method_tracer atualizado. A versão 1.2.0 do Mocha corrige esse bug, portanto, se após atualizar as versões do agente, você encontrar erros em seu conjunto de testes, como:

NoMethodError: super: no superclass method 'instance_method' for <ExampleClass>

e tiver a versão do Mocha < 1.2.0 instalada, tente aumentar a versão do Mocha para 1.2.0 ou superior.

Vimos apenas um erro surgir em um ambiente de teste chamando métodos Mocha. No entanto, recomendamos que você verifique a funcionalidade do seu aplicativo quando houver resolução de problemas.

Distributed tracing está ativado por padrão

A opção de configuração padrão para distributed_tracing.enabled é definida como verdadeira para versões 8.0 ou superiores. Para desativar distributed tracing, defina esta opção de configuração como falsa em seu newrelic.yml.

distributed_tracing:
enabled: false

O rastreamento multiaplicativo está obsoleto

multiaplicativo Tracing está obsoleto na versão 8.0 e será removido em uma versão futura.

Dica

Distributed tracing e o rastreamento multiaplicativo não podem ser usados simultaneamente. Se ambas as opções de configuração estiverem habilitadas, somente distributed tracing será usado.

Para continuar usando o rastreamento multiaplicativo, as configurações do distributed tracing e do rastreamento multiaplicativo precisam ser atualizadas em seu newrelic.yml.

cross_application_tracing:
enabled: true
distributed_tracing:
enabled: false

Métodos de API obsoletos e instrumentação herdada foram removidos

Os métodos a seguir foram obsoletos anteriormente e agora foram removidos.

Removido

Substituição

disable_transaction_tracing Método API

Métodos de API disable_all_tracing ou ignore_transaction

External.start_segment Método API

Tracer#start_external_request_segment Método API

Transaction.wrap Método API

Tracer#in_transaction Método API

Mongo <2.1 instrumentação

Atualize para o Mongo 2.1 ou superior

Excon <0.19.0 instrumentação

Atualize para Excon 0.19.0 ou superior

Copyright © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.