Important
Mise à jour de version majeure : Cette version de l’agent Ruby est une mise à jour SemVer MAJOR et contient des modifications importantes. Les versions MAJOR peuvent abandonner la prise en charge des runtimes de langage qui ont atteint la fin de vie selon le mainteneur. De plus, les versions MAJOR peuvent abandonner la prise en charge et supprimer certaines instrumentations. Pour plus de détails sur ces modifications, veuillez consulter le guide de migration ici.
Important
Nous vous recommandons de mettre à jour vers la dernière version de l'agent dès qu'elle est disponible. Si vous ne pouvez pas effectuer la mise à niveau vers la dernière version, mettez à jour vos agents vers une version datant de moins de 90 jours. En savoir plus sur la façon de tenir les agents informés.
Consultez la politique EOL de l'agent New Relic Ruby pour obtenir des informations sur la sortie de l'agent et les dates de support.
v10.0.0
Changement radical : Suppression de la prise en charge de Ruby 2.4 et 2.5
La prise en charge des versions Ruby 2.4 et 2.5 a été supprimée. La nouvelle version minimale requise de Ruby est désormais la 2.6. PR#3314
Changement important : Suppression du Cross Application Tracing (CAT)
Auparavant, le suivi inter-applications (CAT) était obsolète au profit du suivi distribué. La fonctionnalité CAT a maintenant été supprimée. L'option de configuration
cross_application_tracer.enableda été supprimée. Les méthodes d'API publiquesNewRelic::Agent::External.process_request_metadata,NewRelic::Agent::External.get_response_metadata,NewRelic::Agent::Transaction::ExternalRequestSegment#process_response_metadata,NewRelic::Agent::Transaction::ExternalRequestSegment#get_request_metadataetNewRelic::Agent::Transaction::ExternalRequestSegment#read_response_headersont également été supprimées. PR#3333Modification importante : Renommer les métriques et segments ActiveJob
Les métriques ActiveJob ont été mises à jour pour inclure le nom de la classe du job pour des rapports plus spécifiques. Il s'agit d'un changement radical qui peut nécessiter la mise à jour des tableaux de bord ou des alertes personnalisés. PR#3370 PR#3320
- Ancien format :
Ruby/ActiveJob/<QueueName>/<Method> - Nouveau format :
Ruby/ActiveJob/<QueueName>/<ClassName>/<Method>
De plus, les segments créés pour les actions de mise en file d’attente Active Job incluent désormais la classe de travail.
- Ancien format :
ActiveJob/<QueueAdapter>/Queue/<Event>/Named/<QueueName> - Nouveau format :
ActiveJob/<QueueAdapter>/Queue/<Event>/Named/<QueueName>/<ClassName>
- Ancien format :
Changement important : renommer la commande
bin/newrelicenbin/newrelic_rpmLe fichier exécutable pour l'interface de ligne de commande (CLI) de l'agent a été renommé de
bin/newrelicenbin/newrelic_rpm. Ce changement résout un conflit de noms avec l'outil CLI New Relic autonome. PR#3323Changement radical : supprimer la commande CLI
newrelic deploymentsLa commande CLI
newrelic deploymentsobsolète a été supprimée. Pour suivre les changements et les déploiements dans New Relic, veuillez consulter notre guide sur Suivi des changements pour une liste des options disponibles. PR#3299Changement radical : Supprimer la méthode NewRelic::Agent::SqlSampler#notice_sql
Les utilisateurs doivent appeler
NewRelic::Agent::Datastores.notice_sqlà la place. PR#3338Modification importante : Supprimer les arguments inutilisés de diverses API NewRelic::Agent::Datastores
Les API suivantes de la classe
NewRelic::Agent::Datastoresont vu leurs arguments de méthode supprimés :NewRelic::Agent::Datastores.notice_sql, avait auparavant trois arguments de position,query,scoped_metricetelapsed. Maintenant, il n'en a quequery.NewRelic::Agent::Datastores.notice_statement, avait auparavant deux arguments positionnelsqueryetelapsed. Maintenant, il n’a quequery.NewRelic::Agent::Datastores.wrapnécessite une proc. Auparavant, la proc recevait trois arguments : le résultat du yield, le nom de métrique le plus spécifique et le temps écoulé de l'appel. Désormais, elle n'en reçoit qu'un seul : le résultat du yield.
Les valeurs des arguments supprimés sont dérivées du segment actuel au moment de l'appel. PR#3347
Changement radical : Supprimer la fonctionnalité expérimentale Configurable Security Policies (CSP)
La fonctionnalité expérimentale, Configurable Security Policies (CSP), n'est plus prise en charge et a été supprimée. PR#3292
Changement radical : supprimer la prise en charge des versions de Puma '<' 3.9.0
La version minimale de Puma désormais prise en charge est 3.9.0 ou supérieure. PR#3326
Changement important : améliorer la validation et la coercition de la configuration
Les éléments internes utilisés pour contraindre et valider les valeurs fournies pour la configuration de l’agent sont désormais plus performants et plus précis.
- Les messages d'avertissement seront désormais enregistrés dans le fichier newrelic_agent.log lorsque la valeur nil est fournie comme valeur de configuration pour un paramètre qui ne le prend pas en charge.
- Les valeurs entières sont autorisées pour les types de configuration Float
- Les valeurs flottantes sont autorisées pour les types de configuration Integer
- Les interruptions fatales sont évitées lorsqu'une valeur par défaut peut être trouvée pour remplacer une valeur d'entrée non valide PR#3341
Changement important : remplacer l'option 'default' par 'adaptive' pour les échantillonneurs parents distants de tracing distribué
Auparavant, l’option par défaut pour
distributed_tracing.sampler.remote_parent_sampledetdistributed_tracing.sampler.remote_parent_not_sampledétaitdefault, qui utilisait l’échantillonneur adaptatif préexistant. L’optiondefaulta été renomméeadaptive. PR#3363Fonctionnalité : Ajouter
loggeren tant que dépendanceLa gemme
loggerest désormais répertoriée comme dépendance de l'agent pour assurer la continuité de la fonctionnalité de logging et la prise en charge de Ruby 4.0.0 et des versions plus récentes. PR#3293Fonctionnalité : Ajouter une option de configuration de liste d'autorisation de notification de support actif
Une nouvelle option de configuration,
instrumentation.active_support_notifications.active_support_events, permet aux utilisateurs de définir une liste d’autorisation des noms d’événements de notifications Active Support auxquels l’agent doit s’abonner. Par défaut, l’agent s’abonne à tous les événements Active Support : Mise en cache et Active Support : Messages. PR#3327Fonctionnalité : Utiliser la compression Gzip intégrée de Ruby
L’agent utilise désormais la méthode
Zlib.gzipintégrée de la bibliothèque standard Ruby pour la compression, remplaçant l’implémentation personnalisée précédente. PR#3332Fonctionnalité : Ajouter la validation des arguments pour l’API
NewRelic::Agent#record_custom_eventL'API
NewRelic::Agent#record_custom_eventdéclenche désormais uneArgumentErrorlorsqu'unevent_typenon valide est fourni. Un type d'événement valide doit être composé uniquement de caractères alphanumériques, de traits de soulignement (_), de deux-points (:) ou d'espaces (). PR#3319Fonctionnalité : ajouter des options de configuration d'échantillonnage racine
Vous pouvez désormais configurer le comportement d'échantillonnage des traces provenant du service actuel à l'aide de
distributed_tracing.sampler.root. PR#3330Quatre modes sont disponibles :
Mode Description adaptiveUtilise l'algorithme d'échantillonneur adaptatif existant always_offMarque 0 % des traces racines comme échantillonnées always_onMarque 100 % des traces racines comme échantillonnées trace_id_ratio_basedÉchantillonne les traces en fonction d'un ratio défini dans distributed_tracing.sampler.root.trace_id_ratio_based.ratio. Le ratio doit être un nombre à virgule flottante compris entre 0,0 et 1,0Fonctionnalité : ajouter des options d'échantillonnage basées sur le ratio d'ID de trace
L'agent peut désormais échantillonner les traces à l'aide de l'algorithme d'échantillonneur basé sur le ratio d'ID de trace OpenTelemetry. PR#3330 Cela échantillonne les traces en fonction d'une probabilité comprise entre 0,0 et 1,0 basée sur l'ID de trace.
Pour utiliser cette option, vous devez d'abord définir votre configuration d'échantillonneur de suivi distribué sur
trace_id_ratio_based, puis définir l'échantillonneurdistributed_tracing.sampler.*.trace_id_ratio_based.ratiocorrespondant sur un nombre à virgule flottante compris entre 0,0 et 1,0.Par exemple:
distributed_tracing.sampler.remote_parent_sampled: 'trace_id_ratio_based'distributed_tracing.sampler.remote_parent_sampled.trace_id_ratio_based.ratio': 0.5Cette configuration échantillonnerait environ 50 % de vos traces pour toutes les traces où le parent distant est échantillonné.
Cette option est disponible pour :
distributed_tracing.sampler.rootdistributed_tracing.sampler.remote_parent_sampleddistributed_tracing.sampler.remote_parent_not_sampled
Fonctionnalité : Ajouter l'ID d'entité aux fichiers de contrôle de l'état de l'agent
Lorsque l'agent est démarré dans un environnement de contrôle de l'agent, un fichier de vérification de l'état est créé à l'emplacement de fichier configuré pour chaque processus d'agent. Ce fichier inclut désormais le guid de l'entité liée à l'agent lorsqu'il est disponible. PR#3371
Correction de bug : Résoudre un
NoMethodErrordans la détection d'utilisation de GCP.La logique de découverte des métadonnées GCP gérera désormais avec élégance
nilou des valeurs inattendues, empêchant les plantages d'initialisation du service. PR#3388
Important
Nous vous recommandons de mettre à jour vers la dernière version de l'agent dès qu'elle est disponible. Si vous ne pouvez pas effectuer la mise à niveau vers la dernière version, mettez à jour vos agents vers une version datant de moins de 90 jours. En savoir plus sur la façon de tenir les agents informés.
Consultez la politique EOL de l'agent New Relic Ruby pour obtenir des informations sur la sortie de l'agent et les dates de support.
v9.24.0
Fonctionnalité : Rappel de dépréciation pour l’API SqlSampler#notice_sql
La méthode
NewRelic::Agent::SqlSampler#notice_sqlest obsolète et sera supprimée dans une future version majeure. Au lieu de cela, l'utilisateur doit appelerNewRelic::Agent::Datastores.notice_sql. PR#3345fonctionnalité : Avertissement de dépréciation pour les deuxième et troisième arguments de Datastores.notice_sql API
Les deuxième (
scoped_metric) et troisième (elapsed) arguments de la méthodeNewRelic::Agent::Datastores.notice_sqlsont obsolètes. Elles n'ont pas été utilisées par cette méthode depuis un certain temps. Ces valeurs seront plutôt définies en fonction du segment actuel lors de l'appel de l'API. PR#3345fonctionnalité : Avis de dépréciation pour le deuxième argument de Datastores.notice_statement API
Le deuxième argument (
elapsed) de la méthodeNewRelic::Agent::Datastores.notice_statementest obsolète. Cette méthode n'a pas été utilisée depuis un certain temps. Cette valeur sera plutôt définie en fonction du segment actuel lors de l'appel de l'API. PR#3346Fonctionnalité : Avis de dépréciation concernant les deuxième et troisième arguments de la procédure dans l’API Datastores.wrap
La méthode
NewRelic::Agent::Datastores.wrapest en cours de modification. Dans une future version majeure, la procédure n'acceptera qu'un seul argument : le résultat de la fonction yield. Le nom de la métrique à portée et les arguments écoulés seront supprimés, car ils sont supprimés de la méthodeDatastores.notice_sql. Le nom de la métrique et les valeurs écoulées sont dérivés du segment actuel lorsque le retour à la ligne est atteint. PR#3346
Important
Nous vous recommandons de mettre à jour vers la dernière version de l'agent dès qu'elle est disponible. Si vous ne pouvez pas effectuer la mise à niveau vers la dernière version, mettez à jour vos agents vers une version datant de moins de 90 jours. En savoir plus sur la façon de tenir les agents informés.
Consultez la politique EOL de l'agent New Relic Ruby pour obtenir des informations sur la sortie de l'agent et les dates de support.
v9.23.0
fonctionnalité : Ajouter sidekiq.ignore_retry_errors option de configuration
Une nouvelle option de configuration,
sidekiq.ignore_retry_errors, a été ajoutée pour contrôler si les nouvelles tentatives de tâches Sidekiq sont capturées. Les erreurs de nouvelle tentative sont capturées par défaut, mais maintenant sisidekiq.ignore_retry_errorsest défini surtrue, l'agent ignorera les exceptions levées lors des tentatives de nouvelle tentative de Sidekiq et ne signalera l'erreur que si la tâche échoue définitivement. Merci DonGiulio d'avoir reconnu cette amélioration et d'avoir contribué à la solution. PR#3317fonctionnalité : Avis de dépréciation pour l'enregistrement déployé à l'aide de Capistrano
L'envoi d'informations de déploiement d'application via une recette Capistrano est obsolète et sera supprimé dans la version 10.0.0 de l'agent. Pour l'enregistrement du déploiement, veuillez consulter notre guide sur le suivi des changements pour obtenir la liste des options disponibles.
Fonctionnalité : Utiliser la configuration d'échantillonnage du parent distant pour les décisions dans davantage de scénarios.
Auparavant, les options de configuration
distributed_tracing.sampler.remote_parent_sampledetdistributed_tracing.sampler.remote_parent_not_sampledétaient utilisées pour la décision d'échantillonnage uniquement lorsque les en-têtestraceparentettracestateétaient présents. Ces options de configuration sont désormais appliquées dans les cas où l'en-têtetracestateest manquant et où seul l'en-têtenewrelicest disponible. Ce changement rend l'échantillonnage distribué traceplus cohérent et prévisible. PR#3306
Important
Nous vous recommandons de mettre à jour vers la dernière version de l'agent dès qu'elle est disponible. Si vous ne pouvez pas effectuer la mise à niveau vers la dernière version, mettez à jour vos agents vers une version datant de moins de 90 jours. En savoir plus sur la façon de tenir les agents informés.
Consultez la politique EOL de l'agent New Relic Ruby pour obtenir des informations sur la sortie de l'agent et les dates de support.
v9.22.0
fonctionnalité : Instrumentation en une étape pour Kubernetes
L'APM Kubernetes attache automatiquement les applications d'instrumentation et gère les mises à niveau des agents dans le déploiement Kubernetes. Cette fonctionnalité est sortie du stade de préversion et est désormais généralement disponible. En savoir plus sur l'attachement automatique de Kubernetes. PR#2635 PR#3287
fonctionnalité : avis d'obsolescence pour Ruby 2.4 et Ruby 2.5
La prise en charge de l'agent Ruby pour les versions Ruby 2.4 et 2.5 est obsolète et sera supprimée dans la version 10.0.0 de l'agent. La nouvelle version minimale requise de Ruby deviendra Ruby 2.6 et nous arrêterons les tests avec Ruby 2.4 et 2.5. PR#3288
Fonctionnalité : Avis de dépréciation pour la commande
newrelic deploymentsLa prise en charge de l'enregistrement du déploiement à l'aide de la commande
newrelic deploymentsest désormais obsolète et sera supprimée dans la version 10.0.0 de l'agent.À l’avenir, il existe un certain nombre de moyens automatisés et manuels pour enregistrer les modifications dans New Relic. Veuillez consulter notre guide de suivi des changements pour une liste des options disponibles. PR#3262
Fonctionnalité : Rappel de dépréciation pour le traçage inter-applications
Le traçage inter-applications est obsolète depuis la version majeure 8.0.0 de l'agent Ruby. Nous supprimerons entièrement la prise en charge de cette fonctionnalité dans la version 10.0.0 de l'agent. PR#3288
Fonctionnalité : assurer la compatibilité avec Ruby 3.5 en modifiant Method#source_location
Mise à jour de l'agent pour analyser correctement la valeur de retour de Method#source_location, qui passe dans Ruby 3.5 d'un éventail à deux éléments à un éventail à cinq éléments. Ce changement maintient la prise en charge des anciennes versions Ruby tout en ajoutant la prise en charge de la future sortie. PR#3257
Important
Nous vous recommandons de mettre à jour vers la dernière version de l'agent dès qu'elle est disponible. Si vous ne pouvez pas effectuer la mise à niveau vers la dernière version, mettez à jour vos agents vers une version datant de moins de 90 jours. En savoir plus sur la façon de tenir les agents informés.
Consultez la politique EOL de l'agent New Relic Ruby pour obtenir des informations sur la sortie de l'agent et les dates de support.
v9.21.0
Fonctionnalité : En mode APM Serverless, utilisez le nom de la source de l'événement comme préfixe du nom de transaction
L'agent utilisera désormais le nom de la source de l'événement comme préfixe pour le nom de la transaction en mode Serverless APM. Cela aidera à mieux identifier la source de la transaction dans l'interface utilisateur de New Relic. PR#3245
Bugfix : Rétablir la logique modifiée de suivi du thread dans lequel la plage commence
Cette modification restaure le comportement précédent de suivi du thread dans lequel la plage démarre, résolvant ainsi les problèmes découlant de la logique mise à jour. Merci @david-zw-liu d'avoir attiré notre attention sur ce point. PR#3248