Mientras se prepara para migrar, revise estos cambios importantes entre las series 8.x y 9.x del agente Ruby. También conocerá los problemas que podría enfrentar durante la actualización, lo que garantizará una migración exitosa a la versión 9.x.
Resumen
Los principales cambios incluyen:
- Se eliminaron todas las opciones de configuración obsoletas.
- Se eliminó el soporte para Ruby 2.2 y 2.3.
- Seguimiento de subprocesos habilitado de forma predeterminada
- Se eliminó la instrumentación obsoleta para gemas.
- Método API actualizado
set_transaction_name
- Se eliminaron métodos API obsoletos.
Consulte el hito de 9.0 para obtener más información.
Se eliminó la configuración obsoleta.
Hemos eliminado las siguientes opciones de configuración, por lo que ya no funcionarán. Actualice todas las configuraciones para usar los reemplazos que se enumeran a continuación y consulte nuestra documentación de configuración para obtener más detalles.
Remoto | Reemplazo |
|
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Se eliminó el soporte para Ruby 2.2 y 2.3.
Ruby 2.2 y 2.3 ya no son compatibles con el agente Ruby. Para continuar usando la última versión del agente Ruby, actualice a Ruby 2.4.0 o superior.
New Relic continúa admitiendo ciertas versiones anteriores de Ruby incluso después de que hayan salido de la ventana de mantenimiento oficialmente admitida proporcionada por el equipo de desarrollo del lenguaje Ruby (equipo Ruby). Por ejemplo, a partir del 31 de marzo de 2023, la versión más antigua de Ruby admitida por el equipo de Ruby será la versión 3.0, mientras que con la versión 9.0 del agente Ruby, las versiones 2.4 y superiores de Ruby aún son compatibles. Para obtener más información sobre el soporte oficial del equipo Ruby para las versiones de Ruby, consulte Ramas de mantenimiento de Ruby.
Seguimiento de subprocesos habilitado de forma predeterminada
La opción de configuración instrumentation.thread.tracing
ahora está habilitada de forma predeterminada. Esta configuración permite al agente observar el código que ocurre dentro de los subprocesos. Ruby agente 9.0 registra código instrumentado dentro de subprocesos y lo asocia con la transacción actual.
Si actualmente utiliza instrumentación de subprocesos personalizada, este puede ser un cambio importante. Ya no se iniciarán nuevas transacciones dentro de los hilos si ya existe uno.
Si está utilizando la UI anterior, es posible que vea segmentos denominados "#" en sus gráficos de transacciones. Al mirar la tabla de segmentos, el nombre completo es "Subproceso: #". Estos segmentos se refieren a la instrumentación de hilos. Consulte el número 1859 para obtener más detalles.
Se eliminó la instrumentación obsoleta.
Las siguientes gemas instrumentadas habían quedado obsoletas anteriormente y ahora ya no son compatibles:
Actúa como Solr
Authlogic
DataMapper
Rainbows
Sunspot
Las versiones de las siguientes tecnologías habían quedado obsoletas anteriormente y ya no son compatibles.
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: por debajo de 0,55,0
Cliente HTTP: 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 actualizado set_transaction_name
Cuando se llama al método NewRelic::Agent.set_transaction_name
, ahora siempre cambiará el nombre y la categoría de la transacción actualmente en ejecución por lo que se pasa al método. Este es un cambio con respecto a las versiones anteriores del agente.
Anteriormente, si se llamaba set_transaction_name
con un nuevo nombre de transacción y una nueva categoría que no coincidía con la categoría ya asignada a una transacción, ni el nuevo nombre ni la categoría se guardaban en la transacción.
Si se llama a este método en una situación en la que anteriormente se ignoraba debido a diferencias de categoría, ahora cambiará el nombre y la categoría de la transacción.
Método API eliminado
Se ha eliminado el método API obsoleto NewRelic::Agent.disable_transaction_tracing
. En su lugar, utilice NewRelic::Agent#ignore_transaction
para deshabilitar el registro de la transacción actual o NewRelic::Agent.disable_all_tracing
para generar un bloque sin recopilar ninguna métrica o traza en ninguna de las llamadas posteriores.