Ao se preparar para migrar, revise essas principais mudanças entre as séries 8.x e 9.x do agente Ruby. Você também aprenderá sobre os problemas que poderá enfrentar durante a atualização, o que garantirá uma migração bem-sucedida para a versão 9.x.
Resumo
As principais mudanças incluem:
- Todas as opções de configuração obsoletas foram removidas
- Suporte abandonado para Ruby 2.2 e 2.3
- Rastreamento de thread habilitado por padrão
- Removida instrumentação obsoleta para gems
- Método API atualizado
set_transaction_name
- Métodos de API obsoletos removidos
Consulte o marco da versão 9.0 para obter mais informações.
Configuração obsoleta removida
Removemos as seguintes opções de configuração, portanto elas não funcionarão mais. Atualize todas as configurações para usar as substituições listadas abaixo e consulte nossa documentação de configuração para obter detalhes.
Removido | Substituição |
|
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Removido suporte para Ruby 2.2 e 2.3
Ruby 2.2 e 2.3 não são mais suportados pelo agente Ruby. Para continuar usando a versão mais recente do agente Ruby, atualize para Ruby 2.4.0 ou superior.
A New Relic continua a oferecer suporte a certas versões mais antigas do Ruby, mesmo depois de terem saído da janela de manutenção com suporte oficial fornecida pela equipe de desenvolvimento da linguagem Ruby (equipe Ruby). Por exemplo, a partir de 31 de março de 2023, a versão mais antiga do Ruby suportada pela equipe Ruby será a versão 3.0, enquanto com o agente Ruby versão 9.0, as versões 2.4 e superiores do Ruby ainda serão suportadas. Para obter mais informações sobre o suporte oficial da equipe Ruby às versões Ruby, consulte Ruby Maintenance Branches.
Rastreamento de thread habilitado por padrão
A opção de configuração instrumentation.thread.tracing
agora está habilitada por padrão. Esta configuração permite que o agente observe o código que ocorre dentro dos threads. O agente Ruby 9.0 registra o código instrumentado em threads e o associa à transação atual.
Se você estiver usando instrumentação de thread personalizada, isso pode ser uma alteração significativa. Novas transações dentro de threads não serão mais iniciadas se já existir uma.
Se você estiver usando a interface antiga, poderá ver segmentos denominados "#" em seus gráficos de transações. Ao observar a tabela de segmentos, o nome completo é “Thread: #”. Esses segmentos referem-se à instrumentação de thread. Consulte a edição nº 1859 para obter detalhes.
Instrumentação obsoleta removida
As seguintes gemas instrumentadas foram anteriormente obsoletas e agora não são mais suportadas:
Atua como Solr
Authlogic
DataMapper
Rainbows
Sunspot
As versões das seguintes tecnologias foram anteriormente descontinuadas e não são mais suportadas.
Passenger: 2.2.x - 4.0.x
Puma: 2.0.x
Grape: 0.2.0
Padrino: 0.14.x
Rails: 3.2.x
Sinatra: 1.4.x, 1.5.x
Mongo: 1.8.x - 2.3.x
Sequel: 3.37.x, 4.0.x
Delayed_Job: 2.0.x - 4.0.x
Sidekiq: 4.2.x
Excon: abaixo de 0,55,0
HttpCliente: 2.2.0 - 2.8.0
HTTPRb: 0.9.9 - 2.2.1
Typhoeus: 0.5.3 - 1.2.x
Bunny: 2.0.x - 2.6.x
ActiveMerchant: 1.25.0 - 1.64.x
Método API atualizado set_transaction_name
Quando o método NewRelic::Agent.set_transaction_name
é chamado, ele sempre alterará o nome e a categoria da transação atualmente em execução para o que foi passado para o método. Esta é uma mudança em relação às versões anteriores do agente.
Anteriormente, se set_transaction_name
fosse chamado com um novo nome de transação e uma nova categoria que não correspondesse à categoria já atribuída a uma transação, nem o novo nome nem a categoria seriam salvos na transação.
Se este método estiver sendo chamado em uma situação em que foi anteriormente ignorado devido a diferenças de categoria, isso alterará agora o nome e a categoria da transação.
Método API removido
O método de API obsoleto NewRelic::Agent.disable_transaction_tracing
foi removido. Em vez disso, use NewRelic::Agent#ignore_transaction
para desativar a gravação da transação atual ou NewRelic::Agent.disable_all_tracing
para gerar um bloco sem coletar nenhuma métrica ou rastreamento em nenhuma das chamadas subsequentes.