Important
Nous recommandons de mettre à jour vers la dernière version de l’agent dès qu’elle est disponible. Si vous ne pouvez pas mettre à niveau vers la dernière version, mettez à jour vos agents vers une version datant d’au maximum 90 jours. En savoir plus sur la mise à jour des agents.
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.1.0
La version 9.1.0 de l'agent prend en charge deux nouvelles fonctionnalités d'Errors Inbox : les empreintes d'erreurs, et le suivi des utilisateurs, identifie le magasin de données Amazon Timestream, supprime les avertissements de tracing distribué des logs de l'agent lors de l'utilisation de Sidekiq, corrige des bugs, et est testée avec la version 9.4.2.0 de JRuby récemment sortie.
Fonctionnalité : empreintes d’erreur - fournissez vos propres noms de groupes Errors Inbox
Vos occurrences d’erreurs sont-elles mal regroupées ? Définissez votre propre empreinte d’erreur via une fonction de rappel. Une nouvelle méthode d’API publique
set_error_group_callbacka été ajoutée qui acceptera une procédure définie par l’utilisateur. La proc sera invoquée pour chaque erreur détectée et chaque fois qu’elle renvoie une chaîne, cette chaîne sera utilisée comme nom de groupe d’erreurs pour l’erreur et aura la priorité sur tout regroupement côté serveur effectué avec l’Errors Inbox de New Relic. Cela offre aux utilisateurs un contrôle bien plus grand sur le regroupement de leurs erreurs.Le proc défini par les clients devra recevoir exactement un argument d'entrée, un hacher. Le hacher contient les éléments suivants :
Clé Valeur :errorL'instance de classe d'erreur Ruby. Offres #class,#messageet#backtrace:customAttributesTout attribut personnalisé défini par les clients pour la transaction actuelle :'request.uri'L’URI de la requête actuelle si disponible :'http.statusCode'Le code d'état HTTP (200, 404, etc.) s'il est disponible :'http.method'La méthode HTTP (GET, PUT, etc.) si disponible :'error.expected'Que l'erreur était attendue (vrai) ou non (faux) :'options'Les options que Hacher a transmises à NewRelic::Agent.notice_errorLe rappel ne doit être défini qu’une seule fois par initialisation de l’agent New Relic.
Exemple d’utilisation :
proc = proc { |hash| "Access" if hash[:'http.statusCode'] == 401 }NewRelic::Agent.set_error_group_callback(proc)Fonctionnalité : suivi des utilisateurs - associer les erreurs à un identifiant utilisateur
Vous pouvez désormais voir le nombre d'utilisateurs impactés par un groupe d'erreurs. Identifiez l'utilisateur final avec une nouvelle méthode d'API publique
set_user_idqui accepte une représentation sous forme de chaîne d'un identifiant utilisateur et associe cet identifiant à la transaction en cours. Les transactions et les erreurs auront alors un nouvel attribut d'agentenduser.idassocié. Cela permettra aux utilisateurs de l'agent de tag les transactions et les erreurs comme appartenant à des identifiants utilisateur donnés, afin d'améliorer les capacités de filtrage et d'alerte.Identifier Amazon Timestream lorsque l’adaptateur AR amazon_timestream est utilisé
Lorsque l’agent voit que le gem activerecord-amazon-timestream-adapter est utilisé, il identifiera désormais le magasin de données comme « Timestream ». Merci beaucoup à @wagner pour sa contribution à cette amélioration ! PR#1872
Correction de bug : supprimer les avertissements liés au tracing distribué des logs de l'agent lorsque les en-têtes ne sont pas présents dans Sidekiq
Auparavant, l’agent enregistrait un avertissement dans le log
newrelic_agent.logchaque fois qu’il tentait d’accepter des en-têtes de tracing distribué vides provenant de tâches Sidekiq, ce qui pouvait entraîner un nombre excessif d’avertissements. Désormais, l’agent ne créera plus ces avertissements lors de l’utilisation de Sidekiq. PR#1834Correction de bug : enregistre des en-têtes de requête dans les logs de niveau debug au lieu d’Objets lisibles par l’homme
Auparavant, l’agent recevait parfois des enfants de la classe
NewRelic::Agent::HTTPClients::AbstractRequestcomme argument lorsqueNewRelic::Agent::Transaction::DistributedTracers#log_request_headersétait appelé. Cela amenait les messages de log de niveau debug qui impriment les en-têtes de requête à afficher des Objets lisibles par l’homme (par ex.#<NewRelic::Agent::HTTPClients::HTTPClientRequest:0x00007fd0dda983e0>) au lieu des en-têtes de requête. Désormais, le hachage des en-têtes de requête devrait toujours être enregistré dans le log. PR#1839Correction de bug : correction de la méthode non définie
controller_pathenregistrée dans l’instrumentation Action ControllerAuparavant, l’agent pouvait enregistrer une erreur lors de la tentative de détermination du nom de la métrique dans l’instrumentation Action Controller si la classe du contrôleur ne répondait pas à
controller_path. Cela a été résolu et l’agent n’appellera plus cette méthode à moins que la classe n’y réponde. Merci à @gsar de nous avoir informés de ce problème. PR#1844Correction de bug : résolution de l’exception Transaction#finish et diminution du niveau de log pour l’avertissement associé lors des transactions asynchrones
Auparavant, l’agent levait une erreur non fatale lorsqu’un segment sans parent était inachevé à la fin de la transaction. Cette erreur était levée lors de la construction d’un message de log de niveau
warn. Maintenant que l’instrumentation de Thread est activée par défaut, ce message de log est émis plus fréquemment, et est moins préoccupant. Dans les cas où nous observons un segment Thread, Fiber, ou concurrent-ruby dans une transaction, le message sera rétrogradé au niveaudebug. Merci à @NielsKSchjoedt d’avoir créé le ticket, et à @boomer196 d’avoir testé les solutions. PR#1876CI : cible JRuby 9.4.2.0
L’agent est désormais activement testé avec JRuby 9.4.2.0. NOTEZ que cette sortie ne contient aucune modification non liée à la CI pour JRuby. Les anciennes versions de l’agent devraient toujours fonctionner avec les versions plus récentes de JRuby et la version la plus récente de l’agent devrait toujours fonctionner avec les anciennes versions de JRuby.