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