Prudence
Problèmes connus: Cette sortie présente un problème connu avec certaines utilisations de Netty Reactor qui peuvent provoquer des fuites de mémoire. Veuillez envisager d'utiliser une autre version.
Nouvelle fonctionnalité et améliorations
- Améliore la visibilité des appels Reactor
Mono.flatMap2308 - Ajoute une nouvelle instrumentation pour Spring-Kafka et le traçage distribué lors de l'utilisation du client Kafka de base (bibliothèque 2312).
- Ajoute la prise en charge de
KafkaConsumerConfigévénements pour Kafka 3.7+ 2358
Corrections
Corrige la configuration
distributed_tracing.sampler2330Corrige une erreur d'accès illégal pouvant survenir lors de l'utilisation de Scala 2.12 et JDK 11. Dans les cas où Scala 2.12 n'est pas détectable par l'agent (nous vérifions le chargeur de classes système à cet effet - notamment, sbt charge les classes Scala dans des chargeurs Scala personnalisés), il existe également un indicateur de fonctionnalité permettant d'activer manuellement le correctif via la propriété système
-Dnewrelic.config.class_transformer.illegal_access_fix=true2334Correction des transactions « Inconnues » de netty : 2274 et 2355
- Ce correctif déplace les modifications d'instrumentation Netty précédentes derrière un indicateur de fonctionnalité, ce qui offre une visibilité supplémentaire dans certains cas impliquant des transactions HTTP2. Pour réactiver cette granularité (au prix possible de voir des transactions « inconnues »), utilisez le paramètre de configuration :
netty:http2:frame_read_listener:start_transaction: true- La version 8.20 comporte une erreur logique dans la configuration de l'agent ; le correctif n'est donc officiel que pour la version 8.21 et les versions ultérieures.
Ajoute une restriction sur le moment où il faut ajouter des en-têtes tracedistribuée pour les messages SQS. Cela dépend de la taille du contenu d'un message en octets et de la taille de l'attribut. Les messages d'une taille supérieure à 251 Ko et/ou comportant 9 attributs ou plus sont exclus du calcul traceen-têtes distribués ajoutés (ligne 2353).
Permet de masquer le fichier JAR
org.cracafin d'éviter les conflits avec les environnements clients. 2344Intégration des modifications apportées dans la PR #1927 pour empêcher
NullPointerExceptionsvers les anciennes versions de l'instrumentationvertx-core2327Empêche la création de segments de transaction excessifs par les appels de méthode
HttpUrlConnection(par exemplegetInputStream) lorsqu'ils ne sont pas associés à un appel externe. Ce comportement peut être contrôlé par les options de configuration suivantes :NEW_RELIC_CLASS_TRANSFORMER_COM_NEWRELIC_INSTRUMENTATION_HTTPURLCONNECTION_VERBOSE=false, sys prop-Dnewrelic.config.class_transformer.com.newrelic.instrumentation.httpurlconnection.verbose=false, ou strophe équivalente dansnewrelic.yml. La valeur par défaut esttrue(c'est-à-dire Les méthodes de gestion des réponses non externesgetInputStreamet autres seront signalées comme précédemment). 2365
Sécurité
- Améliore la sécurité grâce à la traçabilité infinie (2339)
com.newrelic.agent.java:infinite-tracing-protobuf - Remplace
snakeyamlparcom.konloch:safeyamlpour corriger une faille de sécurité 2333
Dépréciations
Les modules d'instrumentation suivants sont obsolètes et seront supprimés lors de la prochaine sortie majeure :
aws-wrap-0.7.0java.completable-future-jdk8play-2.3netty-3.4Struts v1
IAST
Mise à jour de la version CSEC vers la version 1.7.0 2348\ Log des modifications : https://github.com/newrelic/csec-java-agent/releases/tag/1.7.0
Mise à jour vers la dernière version
Pour identifier la version de l’agent Java que vous utilisez actuellement, exécutez java -jar newrelic.jar -v. Votre version d'agent Java sera imprimée sur votre console.
Ensuite, pour mettre à jour vers la dernière version de l'agent Java :
- Sauvegardez l’ intégralité du répertoire racine de l’agent Java vers un autre emplacement. Renommez ce répertoire en
NewRelic_Agent#.#.#, où#.#.#est le numéro de version de l'agent. - Téléchargez l'agent..
- Décompressez le nouveau fichier de téléchargement de l'agent, puis copiez
newrelic-api.jaretnewrelic.jardans le répertoire racine de l'agent Java d'origine. - Comparez votre ancien
newrelic.ymlavec lenewrelic.ymlnouvellement téléchargé à partir du zip et mettez à jour le fichier si nécessaire. - Redémarrez votre répartiteur Java.
Si vous rencontrez des problèmes après la mise à jour de l'agent Java, effectuez la restauration à partir du répertoire de l'agent New Relic sauvegardé.
Différences de configuration de l'agent de mise à jour
Nous ajoutons de nouveaux paramètres à newrelic.yml à mesure que nous sortons de nouvelles versions de l'agent. Vous pouvez utiliser diff ou un autre utilitaire de comparaison pour voir ce qui a changé et ajouter les nouveaux paramètres de configuration à votre ancien fichier. Assurez-vous de ne pas écraser les personnalisations que vous avez apportées au fichier, telles que votre clé de licence, le nom de l'application ou les modifications apportées aux paramètres par défaut.
Par exemple, si vous diff les fichiers par défaut newrelic.yml pour les versions 7.10.0 et 7.11.0 de l'agent Java, les résultats imprimés sur la console seront comme suit :
➜ diff newrelic_7.10.0.yml newrelic_7.11.0.yml...107a108,119> # Whether the log events should include context from loggers with support for that.> include_context_data:>> # When true, application logs will contain context data.> enabled: false>> # A comma separated list of attribute keys whose values should be sent to New Relic.> #include:>> # A comma separated list of attribute keys whose values should not be sent to New Relic.> #exclude:>125a138>128c141< enabled: false---> enabled: true...Dans cet exemple, ces lignes ont été ajoutées à la valeur par défaut newrelic.yml dans la version 7.11.0 de l'agent Java. Si vous passez à la version 7.11.0 ou supérieure, vous devez ajouter ces nouvelles lignes à votre newrelic.yml d'origine.
Déclaration de soutien :
- New Relic vous recommande de mettre à niveau l'agent régulièrement pour vous assurer de bénéficier des dernières fonctionnalités et avantages en termes de performances. De plus, les anciennes sorties ne seront plus prises en charge lorsqu'elles atteindront leur fin de vie.