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.2.0
Fonctionnalité : Introduction de l'agent hybride pour la prise en charge du traçage OpenTelemetry
Les API de tracing OpenTelemetry peuvent désormais être traduites en télémétrie New Relic grâce aux nouvelles fonctionnalités d'agent hybride de l'agent Ruby New Relic. Cela permet au gem
newrelic_rpmde se comporter de manière similaire à un SDK OpenTelemetry, en acceptant les appels d'API OpenTelemetry et en les transformant en transactions et segments New Relic avec des attributs et des noms familiers.Les options de configuration suivantes concernent les fonctionnalités de l'Agent hybride :
Nom de la configuration Défaut Comportement opentelemetry.enabled falseUne option de configuration globale pour désactiver tous les signaux OpenTelemetry envoyés via New Relic. opentelemetry.traces.enabled truePermet la création de segments de traces de transaction et de métriques de tranche de temps à partir des spans OpenTelemetry. opentelemetry.traces.include ''Une liste de traceurs OpenTelemetry délimitée par des virgules, représentée sous forme de chaîne (par ex. "AppTracer1,OpenTelemetry::Instrumentation::Bunny::Instrumentation"), dont les signaux de trace seront envoyés à New Relic. opentelemetry.traces.exclude ''Une liste de traceurs OpenTelemetry délimitée par des virgules, représentée sous forme de chaîne (par ex. "AppTracer1,OpenTelemetry::Instrumentation::Bunny::Instrumentation"), dont les signaux de trace ne seront pas envoyés à New Relic. Tous les traceurs connus pour l'instrumentation entrant en conflit avec l'instrumentation New Relic sont exclus par défaut. Fonctionnalité : Ajout de l'option de configuration error_collector.backtrace_truncate_location
Une nouvelle option de configuration a été ajoutée,
error_collector.backtrace_truncate_location, qui permet à l'utilisateur de spécifier où tronquer la backtrace lorsque le nombre de frames dépasseerror_collector.max_backtrace_frames. Les options sont'top'(supprime les cadres du début),'middle'(supprime les cadres du milieu, en conservant le début et la fin) ou'end'(supprime les cadres de la fin). La valeur par défaut est'middle'. PR#3424Fonctionnalité : Ajout de l'instrumentation de la gem Logging
L'Agent enregistrera désormais les logs générés par le gem Logging. PR#3420
Fonctionnalité : Ajout de l'option de configuration utilization.detect_in_parallel
Une nouvelle option de configuration a été ajoutée,
utilization.detect_in_parallel, qui contrôle si l'agent utilise des threads lors de la détection des informations sur le fournisseur de cloud afin d'accélérer le démarrage de l'agent. Lorsque défini surfalse, la détection du fournisseur s'exécute séquentiellement sans créer de threads. La valeur par défaut esttrue. PR#3439
Important
We recommend updating to the latest agent version as soon as it's available. If you can't upgrade to the latest version, update your agents to a version no more than 90 days old. Read more about keeping agents up to date.
See the New Relic Ruby agent EOL policy for information about agent releases and support dates.
v10.1.0
Feature: Add support for forking processes in Parallel gem instrumentation
Parallel gem instrumentation has been added to allow more consistent monitoring in processes forked using the Parallel gem. PR#3405
Feature: Add support for Grape v3.1.0
Grape's release of v3.1.0 introduced changes that were incompatible with the agent's instrumentation, causing issues when collecting transaction names. The agent has been updated to properly extract class names for transaction naming in the updated Grape API structure. PR#3413
Bugfix: Create health check files in forked processes
The agent now properly initializes health check loops after forking, ensuring each process generates its own health check file. This fix also has the effect of correctly including
entity.guidvalues in the health check files. PR#3409 Issue#3408Bugfix: Fix
sidekiq.ignore_retry_errorsThe configuration option
sidekiq.ignore_retry_errors: truewas continuing to report retry errors. The agent now correctly ignores retry errors and only reports when jobs permanently fail. PR#3399
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
We recommend updating to the latest agent version as soon as it's available. If you can't upgrade to the latest version, update your agents to a version no more than 90 days old. Read more about keeping agents up to date.
See the New Relic Ruby agent EOL policy for information about agent releases and support dates.
v9.22.0
Feature: One-step instrumentation for Kubernetes
The Kubernetes APM auto-attach automatically instruments applications and manages agent upgrades within Kubernetes deployments. This feature has exited preview and is now generally avaliable. Learn more about Kubernetes auto-attach. PR#2635 PR#3287
Feature: Deprecation notice for Ruby 2.4 and Ruby 2.5
Ruby agent support for Ruby versions 2.4 and 2.5 is deprecated and will be removed in agent version 10.0.0. The new miniumum required Ruby version will become Ruby 2.6 and we will stop testing with Ruby 2.4 and 2.5. PR#3288
Feature: Deprecation notice for the
newrelic deploymentscommandSupport for recording deployments using the
newrelic deploymentscommand is now deprecated and will be removed in agent version 10.0.0.Going forward, there are a number of automated and manual ways ways to record changes in New Relic. Please see our guide to Change Tracking for a list of available options. PR#3262
Feature: Deprecation reminder for cross application tracing
Cross application tracing has been deprecated since major version 8.0.0 of the Ruby agent. We will remove support for it entirely in version 10.0.0 of the agent. PR#3288
Feature: Ensure compatibility with Ruby 3.5 change to Method#source_location
Updated the agent to correctly parse the return value of Method#source_location, which is changing in Ruby 3.5 from a two-element to a five-element array. This change maintains support for older Ruby versions while adding support for the future release. PR#3257