• EnglishEspañol日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

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.

Crea una propuesta

Guía de migración del agente Ruby 7.x a 8.x

Resumen

Esta guía cubre los principales cambios entre las series 7.x y 8.x del agente Ruby, los problemas que pueden surgir durante la actualización y cómo migrar exitosamente a la versión 8.x.

Los principales cambios incluyen:

Consulte el hito de 8.0 para obtener más información.

Cambios en el método API add_method_tracer

El parámetro de nombre de métrica acepta Procs; cadenas ya no interpoladas

El segundo argumento de add_method_tracer es el nombre de la métrica utilizada para registrar llamadas al método traza.

Anteriormente, esta cadena podía incluir interpolación estilo Ruby para permitir que el nombre de la métrica incluyera variables del receptor del método. Por ejemplo:

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

A partir de la versión 8.0, esta cadena ya no se interpolará. Para preservar el comportamiento descrito anteriormente, pase un Proc en su lugar:

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

Tenga en cuenta que la aridad del Proc pasado a add_method_tracer debe coincidir con la aridad del método traza original (o usar un símbolo compatible).

De manera similar a los nombres métricos, las opciones :code_header y :code_footer para add_method_tracer se proporcionaban previamente como cadenas que se interpolarían en el contexto del receptor del método.

En Ruby agente 8.0, :code_header y :code_footer solo se invocarán si se proporcionan como Procs, como en el ejemplo anterior.

Llame a add_method_tracer una vez por método

Llamar a add_method_tracer varias veces en el mismo método sobrescribirá cualquier rastreador de método definido previamente para ese método. Debe haber solo una línea add_method_tracer para cada método de traza.

Anteriormente, el agente permitía agregar varias métricas al mismo método invocando add_method_tracer una vez para cada una de dichas métricas. Esto todavía se puede hacer, pero los nombres métricos deben pasarse como segundo argumento de add_method_tracer como una matriz de cadenas o 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']

Tenga en cuenta que el nombre de la primera métrica se creará como una métrica de ámbito a menos que se especifique push_scope: false . La siguiente métrica nombrada no tendrá alcance. Cada método de traza solo puede tener una métrica de alcance.

Sugerencia

Las versiones anteriores de Mocha pueden causar problemas con el add_method_tracer actualizado. La versión 1.2.0 de Mocha corrige este error, por lo que si después de actualizar las versiones del agente, se encuentra con errores en su conjunto de pruebas, como por ejemplo:

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

y tiene instalada la versión de Mocha < 1.2.0 , intente aumentar la versión de Mocha a 1.2.0 o superior.

Solo hemos visto un error que aparece en un entorno de prueba que llama a los métodos de Mocha. Sin embargo, le recomendamos verificar la funcionalidad de su aplicación al momento de resolver problemas.

Rastreo distribuido está habilitado por defecto

La opción de configuración predeterminada para distributed_tracing.enabled está establecida en verdadero para las versiones 8.0 o superiores. Para deshabilitar rastreo distribuido, establezca esta opción de configuración en falso en su newrelic.yml.

distributed_tracing:
enabled: false

El rastreo multiaplicación está en desuso

multiaplicación Tracing está obsoleto en 8.0 y se eliminará en una versión futura.

Sugerencia

El rastreo distribuido y el rastreo multiaplicación no se pueden utilizar simultáneamente. Si ambas opciones de configuración están habilitadas, entonces solo se utiliza rastreo distribuido.

Para continuar usando el rastreo de múltiples aplicaciones, la configuración tanto para rastreo distribuido como para el rastreo de múltiples aplicaciones debe actualizarse en su newrelic.yml.

cross_application_tracing:
enabled: true
distributed_tracing:
enabled: false

Se eliminaron los métodos API obsoletos y la instrumentación legacy .

Los siguientes métodos estaban previamente obsoletos y ahora se eliminaron.

Remoto

Reemplazo

disable_transaction_tracing Método API

disable_all_tracing o ignore_transaction Métodos API

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 instrumentación

Actualice a Mongo 2.1 o superior

Excon < 0.19.0 instrumentación

Actualice a Excon 0.19.0 o superior

Copyright © 2024 New Relic Inc.

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