Version 8.21.0
New features and improvements
- Enhances visibility into Reactor
Mono.flatMapcalls by @deleonenriqueta in #2308 - Adds new instrumentation for Spring-Kafka and distributed tracing when using the core Kafka client library by @obenkenobi in #2312
- Adds
KafkaConsumerConfigevent support for Kafka 3.7+ by @nrlkirby in #2358
Fixes
-
Fixes the
distributed_tracing.samplerconfig by @jbedell-newrelic in #2330 -
Fixes an Illegal Access Error that can occur when using Scala 2.12 and JDK 11. In cases where Scala 2.12 is not detectable by the agent (we check the system classloader for this - notably, sbt will load Scala classes into custom Scala loaders), there is also a feature flag to manually enable the fix via system property
-Dnewrelic.config.class_transformer.illegal_access_fix=trueby @kanderson250 in #2334 -
Fix netty 'Unknown' transactions 2274 2355
- This fix moves previous netty instrumentation changes behind a feature flag, which provides additional visibility in some cases involving HTTP2 transactions. To reenable this granularity (at the possible cost of seeing ‘Unknown’ transactions), use the config setting:
netty: http2: frame_read_listener: start_transaction: true
- 8.20 has a logic error in the agent config so the fix is only official in agent version 8.21 and up.
-
Adds a restriction on when to add distributed trace headers for SQS messages. This is based on how large the contents of a message is in bytes and the and the size of attributes. Messages with size greater than 251 KB and/or with 9 or more attributes are excluded from getting distributed trace headers added by @obenkenobi in #2353
-
Allows the
org.cracJAR to be shadowed to prevent conflicts with customer environments. by @jbedell-newrelic in #2344 -
Backports changes made in PR #1927 to prevent
NullPointerExceptionsto older versions of thevertx-coreinstrumentation by @jgoulard in #2327 -
Prevents excessive transaction segments from being created by
HttpUrlConnectionmethod calls (e.g.getInputStream) when they are not associated with an external call. This behavior can be controlled by the following config options:NEW_RELIC_CLASS_TRANSFORMER_COM_NEWRELIC_INSTRUMENTATION_HTTPURLCONNECTION_VERBOSE=false, sys prop-Dnewrelic.config.class_transformer.com.newrelic.instrumentation.httpurlconnection.verbose=false, or equivalent stanza innewrelic.yml. Default setting istrue(i.e. non-externalgetInputStreamand other response handler methods will be reported as before). by @kanderson250 in #2365
Security
- Upgrades the
com.newrelic.agent.java:infinite-tracing-protobuffor better security with infinite tracing by @jtduffy in #2339 - Replaces
snakeyamlwithcom.konloch:safeyamlto address a security vulnerability by @jtduffy in #2333
Deprecations
The following instrumentation modules are deprecated and will be removed in the next major release:
aws-wrap-0.7.0java.completable-future-jdk8play-2.3netty-3.4Struts v1
IAST
CSEC Version Update to 1.7.0 by @lovesh-ap in #2348
Changelog: https://github.com/newrelic/csec-java-agent/releases/tag/1.7.0
Full Changelog: v8.20.0...v8.21.0