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

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

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

Criar um problema

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

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 método da API 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

disable_all_tracing ou ignore_transaction Métodos de API

External.start_segment Método API

Tracer#start_external_request_segment Método de API

Transaction.wrap Método API

Tracer#in_transaction Método de 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 © 2024 New Relic Inc.

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