Improvements
gRPC
The Java agent now supports gRPC. You will now see transactions, errors, external calls, and distributed traces for all of your gRPC-based clients and services.
Vert.x-3.7
The Java agent now supports Vert.x 3.7. The agent instruments Vert.x Web, Vert.x Core, and Vert.x HTTP client. With this instrumentation, the agent will identify and name your transactions based on Vert.x web routing paths. The agent will also time web handlers, track async handlers, and external calls made with Vert.x HTTP client.
OkHttp 3.14.0
This release adds support for OkHttp 3.14.x. You will now see OkHttp 3.14 calls as external calls in New Relic.
spray-can
The Java agent now supports the spray-can client. The agent will now capture outbound http calls made with the spray-can client and report them as external calls and/or distributed traces.
Embedded Derby 10.15.1.3
The Java agent has expanded support for Derby JDBC up to and including version 10.15.1.3.
JVM monitoring
The Java agent now reports JMX stats for off-heap direct byte buffers. These metrics are available via the JVM page
recordCustomEvent API
The recordCustomEvent API has been updated to accept Map<String,?> as a second parameter instead of Map<String,Object>, allowing maps such as Map<String,String> to be passed without having to cast the type of the map's value.
Fixes
- The agent no longer requires a newrelic.yml even when the
app_name
andlicense_key
configuration options are set via environment variables and/or system properties. For more information, see the Java environment variables documentation. - HttpSessions JMX metrics were not reporting for Websphere Liberty Profile applications.
- The
transaction_events.max_samples_stored
configuration value in thenewrelic.yml
would incorrectly override the system properties or environment variable values. - Applications running on WildFly 12 - 15 would fail start with
NoClassDefFound
errors for Java agent classes. - Play applications where external calls inside of future callbacks using
async-http-client
would not be recorded. - Setting
log_limit_in_kbytes
would result in the agent not logging to the agent log file iflog_file_count
was also set to less than 2. - Webflux status codes which were not recognized by Spring Webflux caused a 500 status code to be returned and an exception in application logs.
Known Issues
gRPC: Fixed in 5.1.1
This release contains two bugs in the Java agent's gRPC instrumentation. We highly recommend customers using gRPC instrumentation to upgrade to this and/or later agent versions.
- References to transaction segments were not being removed correctly, which can cause a memory leak.
- The agent could cause the gRPC server listeners to fail to execute its
completed
and/orcancelled
methods, which can cause unexpected behavior.
Deprecation Notes
Self installer
The New Relic Java agent's self-installer has been removed in order to provide a more consistent user experience. To install the Java agent, add the full path to the newrelic.jar
to the -javaagent
flag in your JVM options. For more information on installing the agent on specific application servers, Docker, Maven, or Gradle, see the JVM argument documentation.
Deprecated instrumentation
The following instrumentation modules have been moved out of the default Java agent, and are now provided as a separate download. To continue using these modules, just add them to the agent's extensions directory in your newrelic
folder or wherever your extensions directory is configured.
- Akka 2.0
- Akka 2.1
- Akka-http 1.0
- Akka-http 2.0 - 2.4.1
- Akka-http 2.4.2 - 2.4.4
- Hystrix 1.2
- Hystrix 1.3
- Play 1 (instrumentation for Play-1.x is not available as an extension.)
- Play 2.0
- Play 2.1
- Play 2.2
- Solr 3.1 - 3.4
- Solr 3.5
- Solr 3.6