• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Guide de migration de l'agent Ruby 7.x vers 8.x

Résumé

Ce guide couvre les principaux changements entre les séries 7.x et 8.x de l'agent Ruby, les problèmes qui peuvent être rencontrés lors de la mise à niveau et comment migrer avec succès vers la version 8.x.

Les principaux changements incluent :

Consultez le jalon de la version 8.0 pour plus d'informations.

Modifications apportées à la add_method_tracer

Le paramètre de nom de métrique accepte les procédures ; les chaînes ne sont plus interpolées

Le deuxième argument de add_method_tracer est le nom de la métrique utilisée pour enregistrer les appels à la méthode trace.

Auparavant, cette chaîne pouvait inclure une interpolation de style Ruby pour permettre au nom métrique d'inclure des variables de la méthode Récepteur. Par exemple:

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

À partir de la version 8.0, cette chaîne ne sera plus interpolée. Pour conserver le comportement décrit ci-dessus, passez plutôt une procédure :

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

Notez que l'arité de la procédure passée à add_method_tracer doit correspondre à l'arité de la méthode de trace d'origine (ou utiliser un splat compatible).

Similaires aux noms métriques, les options :code_header et :code_footer à add_method_tracer étaient auparavant données sous forme de chaînes qui seraient interpolées dans le contexte de la méthode Récepteur.

Dans l'agent Ruby 8.0, :code_header et :code_footer ne seront invoqués que s'ils sont donnés en tant que procédures, comme dans l'exemple ci-dessus.

Appeler add_method_tracer une fois par méthode

L'appel de add_method_tracer plusieurs fois sur la même méthode écrasera tout traceur de méthode précédemment défini pour cette méthode. Il ne doit y avoir qu'une seule ligne add_method_tracer pour chaque méthode de trace.

Auparavant, l'agent permettait d'ajouter plusieurs métriques à la même méthode en appelant add_method_tracer une fois pour chacune de ces métriques. Cela peut toujours être fait, mais les noms métriques doivent être passés comme deuxième argument de add_method_tracer sous la forme d'un éventail de chaînes ou de procédures.

# 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']

Notez que le premier nom de métrique sera créé en tant que métrique à portée limitée, sauf si push_scope: false est spécifié. Les métriques nommées suivantes ne seront pas couvertes. Chaque méthode de trace ne peut avoir qu'une seule métrique délimitée.

Conseil

Les anciennes versions de Mocha peuvent entraîner des problèmes avec la version mise à jour add_method_tracer. La version 1.2.0 de Mocha corrige ce bug, donc si après la mise à niveau des versions d'agent, vous rencontrez des erreurs dans votre suite de tests telles que :

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

et que vous avez la version Mocha < 1.2.0 installée, essayez d'augmenter la version Mocha à 1.2.0 ou plus.

Nous n'avons vu cette erreur se produire que dans un environnement de test appelant des méthodes Mocha. Cependant, nous vous recommandons de vérifier la fonctionnalité de votre application lors du dépannage.

Le tracing distribué est activé par défaut

L'option de configuration par défaut pour distributed_tracing.enabled est définie sur vrai pour les versions 8.0 ou supérieures. Pour désactiver le tracing distribué, définissez cette option configuration sur false dans votre newrelic.yml.

distributed_tracing:
enabled: false

Le traçage inter-applications est obsolète

Le traçage inter-applications est obsolète dans la version 8.0 et sera supprimé dans une future sortie.

Conseil

Le tracing distribué et le tracing inter-applications ne peuvent pas être utilisés simultanément. Si les deux options configuration sont activées, seul le tracing distribué est utilisé.

Pour continuer à utiliser le tracing inter-applications, les paramètres de tracing distribué et de tracing inter-applications doivent être mis à jour dans votre newrelic.yml.

cross_application_tracing:
enabled: true
distributed_tracing:
enabled: false

Suppression des méthodes d'API obsolètes et legacy instrumentation

Les méthodes suivantes étaient auparavant obsolètes et sont désormais supprimées.

Supprimé

Remplacement

disable_transaction_tracing Méthode API

Méthodes API disable_all_tracing ou ignore_transaction

External.start_segment Méthode API

Tracer#start_external_request_segment Méthode API

Transaction.wrap Méthode API

Tracer#in_transaction Méthode API

instrumentationMongo < 2.1

Mise à niveau vers Mongo 2.1 ou supérieur

instrumentationExcon < 0,19,0

Mise à niveau vers Excon 0.19.0 ou supérieur

Droits d'auteur © 2025 New Relic Inc.

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