Releases: newrelic/newrelic-java-agent
Version 9.1.0
New features and improvements
-
The Java Hybrid Agent: offering a "best-of-both-worlds" experience by combining New Relic’s deep visibility with OpenTelemetry API compatibility. This release includes comprehensive support for the OpenTelemetry Tracing, Metrics, and Logs APIs, as well as standalone library and native framework instrumentation. Key enhancements like Span Links and Events on Spans are now available, ensuring seamless interoperability in mixed-mode environments.
-
Update hybrid agent config based on spec changes by @jasonjkeller in 2738
-
Hybrid Agent OpenTelemetry API Support by @jasonjkeller in 2711
-
-
Enhancements to coroutine ignores by @dhilpipre in 2726
Fixes
- Fix broken trace propagation with w3c headers by @jasonjkeller in 2299
- Fix multihost preference config @jtduffy in 2720
- Fixed problem where suspend ignores was not being read by @dhilpipre in 2663
New Contributors
Full Changelog: v9.0.0...v9.1.0
Version 9.0.0
New features and improvements
- Add config to delete stale agent temp jars on startup by @jtduffy in 2676
- Add "inclusion" option to compliment the exclude configuration for selectively instrumenting applications @jtduffy in 2638
- To use this feature, set the environment variable
NEW_RELIC_STARTUP_JAVA_ARTIFACT_INCLUDESor system propertynewrelic.config.startup_java_artifact_includes. Specify the artifacts that should be instrumented as a comma-separated list.
- To use this feature, set the environment variable
Fixes
- Resolve IllegalAccessError by moving wrapper class out of S3AsyncClient_Instrumentation by @jtduffy in 2503
- Fix mislabeled instrumentation version on log events in logback-classic-1.5.20 by @jasonjkeller in 2594
- Fixed logging message for max attribute value by @jeffalder in 2680
- Corrected Trace ratio and Probability sampler priorities by @jtduffy in 2583
Removals
- Removes deprecated jdbc-inet-* modules by @obenkenobi in 2572
- Removes deprecated java.completable-future-jdk8 instrumentation by @obenkenobi in 2562
- Removes aws wrap instrumentation by @obenkenobi in 2567
- Removes jdbc-sybase-6 module by @obenkenobi in 2614
- Removes play 2.3 instrumentation by @obenkenobi in 2568
- Removes deprecated thrift-0.8 module by @obenkenobi in 2569
- Removes deprecated solr 4.0 & 5.0 modules by @obenkenobi in 2570
- Removes deprecated module grails-1.3 by @obenkenobi in 2573
- Removes deprecated module hibernate-3.3 by @obenkenobi in 2574
- Removes deprecated footer injection API by @sharvath-newrelic in 2620
- Removes deprecated Struts 1 pointcuts by @obenkenobi in 2561
- Removes deprecated module glassfish-3 by @sharvath-newrelic in 2575
- Removes deprecated rabbit-amqp modules 2.5.0, 2.4.1, 1.7.2 by @obenkenobi in 2571
- Removes deployment marker function by @jtduffy in 2589
Full Changelog: v8.25.0...v9.0.0
v8.25.1
Fixes
- Fixes Kotlin Coroutine error about third party implementation of CancellableContinuation @dhilpipre in 2582
Full Changelog: v8.25.0...v8.25.1
Version 8.25.0
What's Changed
- Adds Java 25 Support by @deleonenriqueta in 2512
- Adds support for Logback-1.5.20 by @jtduffy in 2535
- Introduces a config option to disable the execution of the
callandexecSQL parser regular expressions by @jtduffy in 2490 - Adds support for Kotlin Coroutines v1.4+ by @dhilpipre in 2454
- Adds support for Kotlin Coroutines Suspend Functions generated outside of Kotlin Coroutines by @dhilpipre in 2456
- Introduces a preference config for multiple hosts during datastore detection by @jbedell-newrelic in 2508
- Adds a system property to configure the artifact skip function by @jtduffy in 2509
- Adds a configuration option allowing Spring Controller transactions to be named using the controller class name and method name by @sharvath-newrelic in 2532
- Implement SamplerConfig, centralizing all
distributed_tracing.samplerconfigs into theSamplerConfigby @jasonjkeller in 2529 - Updated
kafka-clients-spans-0.11.0.0producer instrumentation to use modern distributed tracing API’s with W3C Trace Context support by @sharvath-newrelic in 2516
Fixes
- Fixes parsing of error class names by @sharvath-newrelic in 2497
- Fixed a potential memory issue caused by excessively large stack traces in error logging by @jtduffy in 2498
- Clarify logging messages for invalid attributes on custom events and logging events by @sharvath-newrelic in 2501
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 v1spring-3.0.0thrift-0.8solr-4.0.0solr-5.0.0jdbc-inet-merliajdbc-inet-oranxograils-1.3rabbit-amqp-1.7.2rabbit-amqp-2.4.1rabbit-amqp-2.5.0rabbit-amqp-2.7.0glassfish-3hibernate-3.3hibernate-3.5jdbc-jtds
New Contributors
- @sharvath-newrelic made their first contribution in #2491
Full Changelog: v8.24.0...v8.25.0
Version 8.24.0
What's Changed
- Support MongoDB Reactive Streams 5.2.0 and up by @obenkenobi in #2465
- Jedis 6 support by @kanderson250 in #2466
- CouchBase: Add skip class to prevent double instrumentation by @jtduffy in #2462
- Spring WebClient 5.x: Only wrap headers instead of the entire response by @jtduffy in #2464
Full Changelog: v8.23.0...v8.24.0
Version 8.23.0
New features and improvements
- Update to support v24 of graphql by @jtduffy in 2425
- Add lettuce 6.5 instrumentation by @kanderson250 in 2430
- Bump commons-lang version to 3.18.0 by @jtduffy in 2421
- Add lettuce dbName to datastore params where available by @kanderson250 in 2423
- Add an environment variable to skip implementing certain applications. The environment variable name is
NEW_RELIC_STARTUP_JAVA_ARTIFACT_SKIPS. The value of it is a comma separated list of main classes, executable jar files or Java based tools/apps that the agent should NOT instrument (e.g.NEW_RELIC_STARTUP_JAVA_ARTIFACT_SKIPS=keytool,myapp.jar,IgnoreThisClass) by @jtduffy in 2433
Fixes
- Fix a bug where SQS messages with 8 attributes are not sent to AWS. SQS messages need less then 8 attributes to pass distributed trace headers by @obenkenobi in 2422
- Trim the "Subscriptions" bit off the end of the topic name in azure service bus client by @jbedell-newrelic in 2440
- Fix AutoConfiguredOpenTelemetrySdk config by @jasonjkeller in 2451
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
New Contributors
- @souhailaS made their first contribution in 2424
Full Changelog: v8.22.0...v8.23.0
Version 8.22.0
New features and improvements
- Azure ServiceBus 7.15.0 instrumentation by @jbedell-newrelic in 2384
- Linking metadata for Azure App services by @jbedell-newrelic in 2399
- Connection errors now logged at SEVERE by @jtduffy in 2377
- Log and obfuscate invalid keys added as attributes to logs and events by @jtduffy in 2388
- Remove MonoFlatMapMain Instrumentation by @deleonenriqueta in 2400
Fixes
- Relocate IntelliJ annotations library by @meiao in 2383
- Support server side sampling_target configuration by @jtduffy in 2386
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
Full Changelog: v8.21.0...v8.22.0
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
Version 8.20.0
New features and improvements
-
Support for CRaC 2250
-
Support for JDK24 2284
-
Add sampling options when an inbound traceparent exists 2279
- These options define how the agent should handle sampling of spans, depending on sampling decisions that were made for their parent span by an upstream entity. The configuration options
remote_parent_sampledandremote_parent_not_sampledspecify what to do in the case the parent span was sampled or not sampled, respectively. See the documentation for full configuration details.
- These options define how the agent should handle sampling of spans, depending on sampling decisions that were made for their parent span by an upstream entity. The configuration options
-
Support for Undertow as a stand-alone module 2269
- This instrumentation is disabled by default to avoid conflicts with existing Wildfly instrumentation. To enable this instrumentation for stand-alone Undertow server apps, use the configuration setting:
class_transformer: com.newrelic.instrumentation.undertow-server-1.1.0: enabled: true
-
Support for Couchbase Client 2203
- If the Couchbase Client Experimental Module is currently in use, remove it from your extensions directory before upgrading to this version of the Java Agent.
Fixes
-
Fix netty 'Unknown' transactions 2274This 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
-
Refactor AWS docker id fetch to use 5s timeout 2275
-
Feature flag to apply Kotlin
ArrayIndexOutOfBoundsExceptionfix to all methods 2307- This fix addresses errors that may be seen when running the Java Agent in an environment where Kotlin suspends functions are used. To use this fix, set the system property
-Dnewrelic.config.class_transformer.clear_return_stacks=true
- This fix addresses errors that may be seen when running the Java Agent in an environment where Kotlin suspends functions are used. To use this fix, set the system property
-
Prevent cache lock for long DB statement parsing 2294
-
Add config to specify whether java.sql is loaded by platform classloader 2267
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
New Contributors
- @gsidhwani-nr made their first contribution in #2280
Full Changelog: v8.19.0...v8.20.0
Version 8.19.0
New features and improvements
- 2238 Support Adding Labels to APM Forwarded Logs by @deleonenriqueta
- 2246 Update Config File to Include APM Forwarded Log Labels Options by @deleonenriqueta
- 2243 Add response attributes for http4s server modules by @kanderson250
- 2230 Default proxy_scheme setting to "http" by @jtduffy
- 2259 Add support for server-side application logging configs by @obenkenobi
Fixes
- 2228 invokeSuspend edge case fix by @kanderson250
- 2258 Rename and reenable aws sqs modules by @kanderson250
- 2245 Update JFR service to run as a daemon by @kanderson250
IAST
- CSEC Version bump to 1.6.1 2252
- Changelog: https://github.com/newrelic/csec-java-agent/releases/tag/1.6.1
New Contributors
- @hmstepanek made their first contribution in #2179
Full Changelog: v8.18.0...v8.19.0