Java Release Notes

Recent Java agent release notes are listed below. If you would like a release that has been used extensively with a list of known issues, see Established releases (Java) for download link and version information.

2016, July 20 - 15:24 Download

Fixes

Fixed a security issue that could send external HTTP request parameters to New Relic via transaction traces for applications that do all of the following:

*For Java agent versions 3.6.0-3.25.0, this issue only affects cross-application traces.

Recommended for applications that may include sensitive information in external service call request parameters.

If you can’t upgrade the agent immediately, there are a few workarounds:

You can also delete existing transaction traces.

2016, June 28 - 09:55 Download

Improvements

  • Mule ESB 3.4 - 3.6

    This release adds instrumentation for Mulesoft Mule ESB Server versions 3.4 through 3.6. Requests to an HTTP Transport will show in New Relic as web transactions. Mule ESB Server instances will appear as "dispatchers" on the overview page and the JVM metrics page. All of the usual features of New Relic APM are supported including alerting, error reporting, JMS puts and takes, cross application tracing, transaction traces, key transactions, external services, and database call reporting.

    NOTE: The newer HTTP operation-based Connector is not yet supported.

  • Play 2.5

    This release adds instrumentation for the Play 2.5 framework. The previous Java Agent release supports versions of Play up to 2.4.

  • Cassandra async 2.1.2+ and 3.x

    This release adds instrumentation for asynchronous queries in versions 2.1.2+ and 3.x of the Datastax Cassandra driver, including slow query support. You’ll see relevant breakdowns in the overview chart, entries on the Databases page, and segments in transaction traces.

  • Async Http Client 2.x

    This release adds instrumentation for external service calls made using Async Http Client versions 2.x. If the called external service is also running New Relic, you will see cross application tracing details as well. This instrumentation will also capture external calls made from Play WSAPI (which uses Async Http Client).

  • Transaction traces for key transactions

    If you set an Apdex value for a key transaction, the agent will now capture transaction traces based on that key transaction's Apdex value if it's smaller than the application’s Apdex value.

  • JDBC performance and overhead improved

    This release offers better performance and lower overhead of JDBC instrumentation, especially in situations with large numbers of connections.

Fixes:

  • Fixed multiple issues related to Java Agent logging including:

    • ClassCastExceptions thrown into customer application logs
    • Agent logging being diverted into customer application logs
  • Fixed a bug where transactions could timeout during agent harvest, resulting in missing metrics and logging: "Traced activity timed out after 600 seconds. The traced_activity_timeout configuration parameter can be used to adjust this timeout.”

  • Resolved Metric grouping issue in Spray/Akka tell instrumentation. The agent now names temporary actors "temp".

  • In rare cases a ClassCircularityError could be induced by the agent when running with a custom security manager.

  • Fixed issue where a database connection can get labeled as "JDBC" instead of the more specific, supported database type such as "MySQL" or "PostgreSQL". This issue specifically affects customers running with a proxying or delegating JDBC connection.

2016, May 24 - 11:39 Download

Improvements

  • JDBC instrumentation

    • JDBC ResultSet instrumentation performance has been improved.
    • Instrumentation has been added for:
    • i-Net Merlia 7.0.3 database driver
    • Generic JDBC drivers
  • Cassandra

    This release adds instrumentation for the Cassandra Datastax 3.0 Driver including slow query support. You’ll see relevant breakdowns in the overview chart, entries in the Databases tab, and segments in transaction traces.

    Note: Uses of the client's async API are not currently supported.

Fixes:

  • Fixed a bug which caused some applications that use Play and Ning AsyncHttpClient to miss transactions.
  • Fixed an issue which would cause the thread profiler to not report data while profiling some Scala classes.
  • Fixed a rare bug where a RuntimeException is thrown during class transformation which can prevent some instrumentation from being applied.
  • Fixes a rare case where Tomcat ClassLoaders could leak memory when using a JDBC driver bundled in your application after reloading a web application.
2016, April 20 - 09:13 Download

Improvements

  • Cassandra

    This release adds slow query tracking to Cassandra queries made via the Datastax driver. You’ll now see slow CQL queries on the Databases page and within Transaction Traces. You must add the following to your newrelic.yml configuration to enable this feature in High security mode:

      transaction_tracer:
          slow_query_whitelist: 
           'com.newrelic.instrumentation.cassandra-datastax-2.1.2'
    
  • MongoDB

    The Java agent now reports synchronous calls made via MongoDB Java driver 2.14. You will see MongoDB represented on the Overview page, on the Databases page, and in Transaction traces. Note: The asynchronous driver is not yet supported.

  • Apache Tomcat

    This release adds support for Tomcat 8.5

  • Akka

    • This release adds support for Akka forwarding and Akka broadcasting. The agent will now trace messages broadcast or forwarded to actors.
    • When the system sends a message to an Actor, the agent now reports the name of the actor system that sent the message. Previously, the agent reported “deadletters” under these circumstances.
  • Async performance

    This release adds performance enhancements for asynchronous frameworks, especially Hystrix. Performance in Hystrix will noticeably improve for most applications, and will be up to 3x faster when tracing low-latency requests (response time <3ms). Performance for low-latency Play applications will be up to 30% faster.

  • JDBC

    This release adds support for the following JDBC drivers:

    • MySQL 6.0.2 and higher
    • i-Net Oranxo 3.06
    • i-Net MERLIA 8.04.03 and 8.06

Fixes

  • Fixed a bug that could cause Akka Http instrumentation to throw a NullPointerException into customer code.

  • Fixed a bug in the Spymemcached instrumentation that would report operations with the name “None” instead of the correct operation name.

  • Fixed a bug that could cause highly asynchronous applications to experience a memory leak in the NewRelic TransactionService.

2016, March 30 - 13:24 Download

Improvements

  • Spymemcached

    The Java agent now provides visibility into your applications’ usage of Memcached when using the Spymemcached client versions 2.11 to 2.12. You will see the calls in the application breakdown, in trace details, on the Databases page, in Transaction maps, and in Service maps.

  • JDBC Drivers

    This release adds support for the following JDBC drivers:

    • INet Oracle Driver (Oranxo) 3.14
    • Sybase (jConnect) JDBC 3 driver

Fixes

  • Fixed an issue where the agent treated HTTP headers as being case sensitive, causing CAT to miss under certain conditions.

  • Fixed an issue where error data could be dropped, causing 413 status code errors to be reported in the agent log.

  • Fixed a bug in spray-http and akka-http routing libraries where response times and/or route names could be reported incorrectly when using Futures within the route.

  • Fixed various issues related to the proper handling of multibyte character encoding.

  • Fixed a bug in Java agent version 3.26.x that could cause the Thread Profiler to time out.

  • Fixed a bug where an error could get printed to the agent log when making SQL queries from an asynchronous framework.

Notes

In support of an upcoming feature, the Java agent is now capable of reporting class metadata including class method signatures, method annotations, class annotations, field annotations, field types, and field names.

This reporting is off by default and can be explicitly disabled in the agent by setting the following property in your newrelic.yml configuration file:

  command_parser:
    blacklist: send_module_metadata
2016, February 25 - 10:34 Download

Improvements

  • PostgreSQL

    This release adds improved support for PostgreSQL 8.0+ with jdbc3+. All of these versions now include support for explain plans.

2016, February 23 - 11:47 Download

Improvements

  • Spray Client

    The agent now identifies external calls when Spray Client is used. You will see your Spray Client calls with the hostname and port of the destination. The calls also have support for Cross Application Tracing, and are shown in Service Maps and Transaction Maps.

  • The agent now tracks Futures started in Spray routes.

  • The agent now identifies transactions when spray-can is used without spray-routing.

  • Slick

    The agent now tracks async activity created by Typesafe/Lightbend's functional-relational-mapper, Slick. If the underlying database driver is supported by the agent the database activity will be traced.

  • Improvements for JDBC

    The Java agent’s JDBC instrumentation now provides more consistent and complete data for supported JDBC drivers. The Java agent supports the following drivers:

    • MySQL 5.1.4 - 5.1.x
    • PostgreSQL 8.2-504 - 9.4-1206 (jdbc4 and jdbc41 drivers only)
    • Oracle ojdbc14, ojdbc5, ojdbc6, ojdbc7
    • Microsoft SQLServer 2.0 - 4.2
    • jTDS 1.2 - 1.3.x
    • DB2 9.1 - 10.x
    • Derby 10.6.1.0 - 10.x
    • H2 1.0.x - 1.4.x
    • HSQL 1.7.2.2 - 2.x
    • MariaDB 1.1.7 - 1.3.x

    Note Previous versions of the Java Agent had partial “generic” support for other JDBC drivers. The new, improved JDBC instrumentation replaces the “generic” JDBC instrumentation.

Fixes

  • Fixed a bug where CXF would name transactions based on auto-generated proxy classes. The agent now normalizes CXF transaction names.

  • Fixed a bug in EJB instrumentation that could cause a NullPointerException in application code.

  • Fixed a bug where the EJB instrumentation erroneously set transaction names. In this version, the agent records a metric.

  • Fixed a bug in the Cross Application Tracing API that caused Application Response time to be attributed to other transaction time, and prevented linking of transaction traces when doing CAT.

  • Fixed a bug in request queueing calculations where queueing time could show up as a steadily increasing value instead of the correct time.

  • Fixed a bug that prevented HttpURLConnection External metrics from reporting on the IBM J9 JVM.

  • With Spray routing, fixed a bug that incorrectly set the transaction name of similar route names or set them to "Unknown Route".

  • Fixed a bug where some transaction traces would report external segments for non I/O calls in Apache HttpClient.

  • The Java Agent will now read Cross Application Tracing HTTP header names regardless of case.

  • Fixed a bug that could cause cross application tracing between the New Relic Java Agent and non-Java New Relic Agents to fail.

Known Issues

  • Postgres JDBC

    This release does not contain support for some versions of the PostgreSQL jdbc3 drivers supported in previous releases. We recommend that you use 3.26.1.

2016, January 18 - 13:34 Download

Improvements

  • Performance improvements

    The Java agent now starts up to 50% faster. Your applications will be available that much sooner.

Fixes

  • In some cases JAX-RS annotations on interfaces were not being observed, causing transactions using JAX-RS services to be named on the servlet rather than the web servicepath and method.
  • Fixed an issue that prevents Spray and Akka-HTTP instrumentation from applying when using Scala 2.10.
  • Fixed an issue that caused Play 2.x requests to produce empty responses when the circuit breaker is tripped.
  • Fixed an issue where setting enable_custom_tracing to false could inadvertently disable Netty instrumentation.

Known Issues

  • Fixed in 3.29.0

    • Applications that use Play and Ning AsyncHttpClient may miss transactions.

    • The thread profiler may not report data while profiling certain Scala classes.

  • Fixed in 3.28.0

    • Fixed a bug that could cause Akka Http instrumentation to throw a NullPointerException into customer code.
  • Fixed in 3.27.0

    • Fixed an issue where the agent treated HTTP headers as being case sensitive, causing CAT to miss under certain conditions.

    • Fixed various issues related to the proper handling of multibyte character encoding.

  • Fixed in 3.26.x

    • CXF instrumentation can name transactions based on auto-generated proxy classes. Later agents now normalizes CXF transaction names.

    • EJB instrumentation may cause a NullPointerException in application code, and erroneously set transaction names. In later versions, the agent records a metric.

    • The Cross Application Tracing API caused Application Response time to be attributed to other transaction time, and prevented linking of transaction traces when doing CAT.

    • Request queuing calculations could show queuing time as a steadily increasing value instead of the correct time.

    • HttpURLConnection External metrics may not report on the IBM J9 JVM.

    • Transaction traces may report external segments for non I/O calls in Apache HttpClient.

    • The Java agent will now read Cross Application Tracing HTTP header names regardless of case.

    • Fixed a bug that could cause cross application tracing between the New Relic Java agent and non-Java New Relic agents to fail.

2015, December 21 - 10:00 Download

Fixes

  • Fixed an issue that caused Play 2.x requests to produce empty responses when the circuit breaker is tripped.
2015, December 15 - 12:19 Download

Improvements:

  • MongoDB

    The Java agent now reports synchronous calls to the Mongo Java Driver 2.12 through 3.1. You will see the Mongo operations in breakdowns in the Applications Overview chart, entries in the Databases tab, and segments in transaction traces. Note: The asynchronous driver is not supported.

  • Akka HTTP and Spray

    The Java agent now reports and names transactions received through Akka HTTP 1.0, Akka HTTP 2.0 and Spray. Transactions are named intuitively based on route DSLs. This instrumentation also supports Cross Application Tracing from calling systems. With our previously released support for Akka, your Akka HTTP and Spray applications will now include activity of those transactions all the way through your actor systems.

Fixes:

  • In rare cases the Java agent's EJB instrumentation could cause a StackOverflowException to appear in application logs.
  • In some cases the Java agent's Netty instrumentation could throw a NullPointerException to application code.
  • Improve performance when using Cross Application Tracing and a large number of threads.
  • In some cases the transaction would not be reported when using Akka with mutable messages.

Known Issues:

  • Play 2.x requests will produce empty responses when the circuit breaker is tripped. We recommend Play 2.x users disable the circuit breaker when using Java agent versions 3.22 or higher.
2015, December 1 - 11:38 Download

Improvements

  • Hystrix instrumentation

    This release contains support for versions 1.0.2 through 1.4 of the Hystrix framework. You will now see timing information related to each Hystrix Command's run and getFallback methods. Chained Hystrix commands will be linked into one transaction.

Fixes

  • This release fixes a bug in New Relic's Cross Application Tracing (CAT) that could cause incorrect service and transaction maps.

    The problem would happen when non-identical applications, with identical transaction names, would appear to be communicating (in the Transaction / Service maps), when in fact, they were not.

    Note: Using a combination of pre-3.23.0 and 3.23.0+ can result in external calls between the old and new agents to not show up in the map. To fix this, upgrade all of your agents to 3.23.0+ at the same time

  • Resolved an issue where an application running on Tomcat and containing a large number of static JSPs (5000+) could cause a memory leak within the agent.

2015, November 16 - 14:15 Download

Fixes

  • Fixed an issue that caused Ning's AsyncHttpClient WebSockets requests to fail, or the application not to start.

  • Fixed an issue that could cause an extra transaction to be created, a background transaction named NettyDispatcher.

  • Removed the deprecated bootstrap.classpath configuration, as it could result in the Java agent's instrumentation failing to load.

2015, November 6 - 10:25 Download

Improvements

  • Play Framework 2.4 Instrumentation, and Play Framework 2 Improvements

    Previous Java Agent releases supported the Play Framework up to version 2.3. This release includes instrumentation for Play 2.4.x. This release provides more insight than ever before for all versions of Play 2, including improved segment names, and better signal-to-noise ratio in transaction details.

    This instrumentation also takes advantage of the new response time line in the New Relic UI. Because Play is a reactive framework that encourages concurrent activity, your total time for transaction components will often be greater than the response time. If the total time is less than response time, it may indicate resource exhaustion. By separating the total time from the response time, you get a clear picture of when you are getting the benefit of concurrency.

    If you have used the Java Agent to monitor Play before this release, you may see a decrease in response time. The new response time metric more accurately reflects the time from initial request to response.

    We support Play applications written in Java or Scala 2.9.3 - 2.11.x.

    Note: The deprecated -Dnewrelic.bootstrap_classpath system property can result in missing instrumentation and should not be used.

  • Netty 3.4 - 4.x Instrumentation

    This release updates our Netty support to include versions from 3.4 to 4.x. Previous release supported up to Netty 3.9. The agent will start transactions for server inbound I/O. The agent will instrument Netty HTTP methods to enable cross application tracing (CAT) in Netty transactions.

  • AsyncHttpClient Instrumentation 1.0.2 - 1.9.x

    In this release, you will see the time spent in external service calls made using AsyncHttpClient (also known as Ning Http Client). If the external service is also running New Relic, you will see cross application tracing (CAT) details as well. This includes external calls made from Play WSAPI, which uses AsyncHttpClient.

    Note: As in previous releases, Play 1 applications will not report AsyncHttpClient activity.

  • Akka Instrumentation 2.0 - 2.4

    This release enhances our Akka instrumentation by linking an actor message sender to an actor message receiver in the same transaction. In order to avoid over-instrumentation, our Akka instrumentation does not actually start transactions. If you would like a given actor call to mark the beginning of a transaction, you will need to use the @Trace(dispatcher=true) annotation, or some other form of custom instrumentation.

Notes:

This release supports core Akka, not all Akka extensions. In particular, it does not identify transactions that have been routed by Spray, Akka HTTP, or Akka Streams. We have heard from customers that these frameworks are important, and we expect to support them soon! Stay tuned to the Java agent incubator, since we may provide an early access instrumentation module for these frameworks before we release them in the agent.

Known Issues:

  • If your application uses AsyncHttpClient's WebSockets, do not use this version. AsyncHttpClient WebSockets requests will fail, or the application will not start.
  • In some cases, calls to NewRelic's getBrowserTimingHeader and getBrowserTimingFooter are ignored.
2015, October 1 - 16:09 Download

Improvements

Fixes

  • Fixed a memory leak in async continuations instrumentation for Jetty 7 and 8.
  • Improved error handling with invalid JMX .yml extension files.
  • Improved Circuit Breaker logging in the event of a Circuit Breaker trip.
  • Fixed a bug in Tomcat 7+ instrumentation where request parameters could occasionally get stripped when using an async servlet with capture_params set to true.

Notes

The Java Agent now collects the following information for web transactions:

  • Accept, Host, User-Agent, Content-Length HTTP request headers
  • HTTP request method, for example POST or GET
  • Content-Type HTTP response header

Known issues

  • Fixed in 3.25.0:
    • Setting enable_custom_tracing configuration flag to false can inadvertently disable Netty instrumentation.
    • In some cases JAX-RS annotations on interfaces are not observed, causing transactions using JAX-RS services to be named on the servlet rather than the web servicepath and method.
  • Fixed in 3.24.1:
    • The Java agent's Play 2 transaction tracing instrumentation may be incomplete and cause gaps in cross application tracing.
  • Fixed in 3.24.0:
    • The Java agent's EJB instrumentation may cause a StackOverflowException to appear in application logs.
    • Applications may continue to experience the additional Circuit Breaker overhead even when disabled.
    • The Java agent may experience increased overhead when using Cross Application Tracing and a large number of threads.
  • Fixed in 3.23.0
    • This release may experience a memory leak within the agent for Tomcat containing a large number of static JSPs (5000+).
    • When a transaction makes multiple calls to a database with the same obfuscated SQL, a NullPointerException is may get thrown in the agent.
    • This release contains a bug in New Relic's Cross Application Tracing (CAT) that can cause incorrect service and transaction maps.

The problem happens when non-identical applications, with identical transaction names, would appear to be communicating (in the Transaction / Service maps), when in fact, they were not.

Using a combination of pre-3.23.0 and 3.23.0+ can result in external calls between the old and new agents to not show up in the map. To fix this, upgrade all of your agents to 3.23.0+ at the same time.

2015, September 1 - 13:18 Download

Improvements:

  • JCache

    The Java Agent now instruments the JCache API. The instrumentation times cache operations of implementations of the JCache API.

    To get additional information about your operations in the Databases page, enable com.newrelic.instrumentation.jcache-datastore-1.0.0 in your newrelic.yml. This will incur additional overhead.

     class_transformer:
       com.newrelic.instrumentation.jcache-datastore-1.0.0:
         enabled: true
    

Fixes:

  • Circuit Breaker alerts now better align with data displayed in JVMs tab.

  • In some cases the Java Agent's HttpURLConnection instrumentation could report incorrect external response time metrics

  • The Java Agent's MongoDB instrumentation no longer reports errors due to runtime exceptions that are caught and handled by applications.

  • Fixed an issue where Guice dynamic proxies could be instrumented, potentially causing MGI issues.

  • In rare cases a deadlock would occur at startup on some WebSphere applications.

  • Fixed an issue that could cause missing Cross Application Tracing information on WebLogic 12 when using HttpURLConnection.

2015, August 13 - 10:43 Download

Fixes

  • Fixed an issue that could cause NoClassDefFoundErrors when using JDBC ResultSet instrumentation on JBoss.
2015, August 7 - 12:12 Download

Fixes

  • In some cases JBoss 4.x could fail to start due to a NullPointerException.

  • In some cases Dropwizard appservers could fail to start due to a ClassCastException during log initialization.

2015, July 29 - 16:17 Download

Improvements

  • Redis

    The agent’s Redis instrumentation is now more efficient.

Fixes

  • In some cases the HttpClient 3 instrumentation could overstate the external call count.

  • In rare cases the agent would report errors that it was configured to ignore.

  • Some line numbers did not display correctly in stack traces.

2015, July 1 - 14:42 Download

Improvements

  • Jetty

    Updated Jetty instrumentation to support Jetty 9.3.

  • Thrift

    Added support for Apache Thrift 0.8 and greater. This instrumentation automatically adds timing to Thrift calls and sets transaction names based on Thrift method names. It can be disabled in the newrelic.yml by adding:

    com.newrelic.instrumentation.thrift-0.8:
        enabled: false
    
  • Resin

    The New Relic Resin Instrumentation now reports errors as HttpErrors, allowing them to be ignored.

  • Heap Alerting

    A new heap utilization metric has been created for alerting purposes. This metric tracks the percentage of heap in use as a number between 0 and 1, where 0 means no heap usage and 1 means a full heap. The new metric is: Memory/Heap/Utilization

  • Exception Whitelisting

    Java Exception messages will now be obfuscated when high security mode is enabled. If specific exception messages should be allowed through they can be added to the whitelist with the following configuration property:

    strip_exception_messages:
        whitelist: 'java.lang.NullPointerException,java.lang.IllegalStateException'
    

    The whitelist is a comma-delimited string of exception class package + class name. This can be enabled/disabled independently of high security mode with the following property:

    strip_exception_messages:
        enabled: true
    
2015, June 30 - 14:14 Download

Fixes

  • Fixed a bug in 3.17.0, that in rare cases could cause an application thread to die. In this case, the agent log has many messages, “ERROR: Inconsistent state!”
2015, June 11 - 13:19 Download

Improvements

  • Websphere Liberty Profile

    The Java agent now provides instrumentation for WebSphere Liberty Profile. This includes web transaction visibility, Cross Application Tracing, and app server stats.

  • Performance improvements

    The Java agent now starts more quickly so applications are available sooner. This release also reduces agent overhead at run time.

  • Customize hostname displayed in APM

    A new configuration setting has been added: process_host.display_name. When set in the newrelic.yml configuration file, the display name identifies the host in the APM UI, along with the hostname that the agent automatically captures.

    process_host:
        display_name: hostname
    

    In addition, the display name can be set using the NEW_RELIC_PROCESS_HOST_DISPLAY_NAME environment variable. This property can be viewed in all Insights transaction events.

  • WebLogic and WebSphere instance name available

    The instance name for WebLogic and WebSphere application servers is now available in transaction traces, traced errors, and Insights transaction events.

  • Custom instrumentation of transaction attributes is disabled by default

    Custom attributes defined using the Instrumentation tab in the UI are now disabled by default. In order to enable these attributes, you must have High Security mode disabled and you must place the following text in the common: block of your newrelic.yml:

    reinstrument:
        attributes_enabled: true
    

Fixes

  • Very large thread profiles were failing to report to RPM, causing the site to display a time out message. The agent will now truncate the size of the profile before sending.
  • Cross application tracing date was failing to report when using Jersey 2 endpoints.
  • Spring AOP instrumentation is now disabled by default. It was exercising a bug in certain versions of Java 8 that caused the JVM to crash. To re-enable, include the following in your newrelic.yml:

       com.newrelic.instrumentation.spring-aop-2:
           enabled: true
    
  • RabbitMQ metrics could double-report for some versions of RabbitMQ. This was introduced in Java agent version 3.16.1 and is fixed in this version.

  • In rare cases the agent would report a LinkageError.
2015, May 14 - 15:49 Download

Improvements:

  • Redis

    Added support for the Jedis client versions 1.4.0 or higher. You can now see your Redis calls in breakdowns in the overview chart, entries in the Databases tab, and segments in transaction traces.

  • RabbitMQ

    Updated RabbitMQ instrumentation to support RabbitMQ 3.5 and higher.

  • Cross Application Tracing API

    Use the cross application tracing API when the agent does not provide cross application tracing support for your application. See the documentation

  • Play 2 Framework

    Improved instrumentation for Play controller classes.

  • Circuit Breaker

    Starting in this release, the New Relic Java agent detects when memory is nearly exhausted and trips a “circuit breaker” that limits the agent’s memory usage. The agent won’t report transactions while the circuit breaker is tripped, so throughput will be understated. In the rare case that the circuit breaker trips, the New Relic UI will provide more information. For more details, see the documentation.

  • Added configuration to disable Deadlock Detection

    Under very heavy load conditions with many threads, the Deadlock Detector service may slow response time. You can now disable this feature with the following setting:

      deadlock_detector:
        enabled: false
    
  • Reduced the memory overhead of the Java agent

Fixes:

  • Play 2 Framework

    The Java Agent now honors the segment_limit setting for async traces, and can now handle much deeper async traces. This is useful to decrease if you're experiencing slower response time or high memory overhead when executing large async transactions.

    Cross-application requests from other New Relic-instrumented applications will reliably appear in the App and Transaction maps.

  • The proxy_host name is no longer sent to New Relic.

  • Fixed issue where external transactions were reported twice when using HttpURLConnection. Previously, this caused throughput to appear doubled.

2015, March 31 - 11:45 Download

Improvements:

  • Labels and Rollups

The New Relic Java agent now supports the ability to apply labels to applications, so that you can easily sort, filter, and page through all of the applications on your account's Applications list.

Configuration can be done in the newrelic.yml file:

    labels: Server:One;Data Center:Primary

More information on using labels to categorize your applications can be found in the New Relic APM documentation.

  • With this version of the Java Agent, you can update Custom instrumentation XML in the extensions folder and it will be reloaded within a minute.

Fixes:

  • Prior to this version, some thread profiles would time out and not display. Thread profiles will now complete reliably.

  • The Java Agent now works around IBM JVM bug IV25688. The agent will scale back a small amount of its instrumentation on old IBM JVMs to avoid inducing the bug. The workaround should leave most customers unaffected. Loss of instrumentation caused by the workaround can be fixed by upgrading the JVM to the latest service release.

2015, February 25 - 11:23 Download

Improvements:

  • Synthetics transaction tracing

    New Relic Synthetics monitors your site from around the world. When you use Synthetics to monitor your Java application, up to 20 detailed transaction traces will now be captured every minute when the application is probed from Synthetics. To learn more about this feature, visit our documentation

  • EJB Session Beans

    The Java agent now monitors Enterprise Java Beans (EJB) 3.0 session beans. The agent instruments @Stateless and @Stateful EJBs, and those that extend java.ejb.SessionBean. The agent traces methods declared by corresponding interfaces annotated with @Remote and @Local.

  • Unified view for SQL database and NoSQL datastore products.

    The response time charts in the application overview page will now include NoSQL datastores, such as Cassandra and MongoDB,and also the product name of existing SQL databases such as MySQL, Postgres, Oracle, etc. For existing SQL databases, in addition to the existing breakdown of SQL statements and operations, the queries are now also associated with the database product being used. For NoSQL datastores, such as Cassandra and MongoDB, we have now added information about operations performed against those products, similar to what is being done for SQL databases.

    This new unified Databases page will enable the filtering of metrics and operations by product, and includes a table listing all operations.

    Because this introduces a notable change to how SQL database metrics are collected, it is important that you upgrade the agent version on all hosts.If you are unable to transition to the latest agent version on all hosts at the same time, you can still access old and new metric data for SQL databases, but the information will be split across two separate views.

  • Datastax Cassandra client

    Added support for the Datastax Cassandra client versions 2.1.2 or higher. This will include breakdowns in the overview chart, entries in the Databases tab, and segments in transaction traces. Note: uses of the client's async API will not be captured in transaction traces.

  • MongoDB client

    Added support for MongoDB client versions 2.12.0 up to but not including 3.0+. This will include breakdowns in the overview chart, entries in the Databases tab, and segments in transaction traces.

  • API Reported Errors

    API reported errors can now be prioritized on a transaction over tracer reported errors. Add the following config to allow prioritizing:

    error_collector:
      ignoreErrorPriority: false
    

Fixes:

  • The Java Agent may now capture traces for transactions that resulted in an error (4xx or 5xx response code). Prior to this release, the agent would only capture traces for successful responses.

  • Updated default newrelic.yml to use transaction_events.max_samples_stored instead of deprecated analytics_events.max_samples_stored property.

  • JBoss dispatcher reports correctly for clustered environments where jboss.home and jboss.home.dir are not set.

  • Resolved a bug which caused certain Jetty configurations to stop sending metric data.

  • Under very light load, the Agent could send incorrect transaction timestamps.

  • Fixed parsing error in log_file_count setting. Prior to this release, this setting produced one more log file than expected.

2015, January 20 - 09:46 Download

Improvements:

  • Custom Insights events API

    In addition to attaching custom attributes to the events that the Java agent generates automatically for each transaction, you can now record custom event types into Insights with the new NewRelic.getAgent().getInsights().recordCustomEvent API.

  • The agent now captures and reports thread profiles in XRay Sessions for non-web transactions.

Fixes:

  • Incorrect JMS transaction names for users of Oracle ATG Web Commerce
  • In rare cases, application code would encounter a NoClassDefFoundError for one or more classes contained in the newrelic.jar.
2015, January 8 - 12:06 Download

Fixes

**Note**: This is a bugfix release for the legacy Java SE5 version of the agent. Unless you are a Java SE5 user, use the latest version of the agent.

  • Fixed an issue that in rare cases could cause the agent to cease reporting data until JVM restart.

Known issues

If you require a work-around for one of these issues, please open a ticket at support.newrelic.com.

  • X-Ray Sessions sometimes return no transaction traces. Many X-Ray Session runs can cause a memory leak.
  • Play Framework

    • Higher overhead with Play 2 than later releases.
    • Does not work properly with Play 2.2
    • Counts akka.actor.ActorKilledException as an error.
    • Play transaction does not complete until timeout expires
    • When using Play, ignoreTransaction call does not take effect
  • In some cases running Weblogic, the Java Agent fails certificate validation when connecting to New Relic.*
  • This release contains some inconsistencies in the instrumentation of Hibernate across versions.
  • This release requires a work-around to use SSL with WebSphere.*
  • Potential memory leak when app continually creates ClassLoaders
  • Rare memory leak if agent does not report to New Relic for an extended period
  • When running IBM JVM without WebSphere, you must set the sync_startup flag set to true in the common section of newrelic.yml: sync_startup: true
2014, December 22 - 15:58 Download

Improvements

  • Play 2 async activity is no longer tracked when transaction is ignored.
  • Reduced GC overhead when monitoring Play 2 applications.
  • Reduced memory usage when inspecting slowest SQL statements.

Config Changes

  • stack_based_naming now false by default.

    The stack_based_naming in the transaction_tracer stanza is now false by default. Stack-based naming caused significant overhead in many Scala applications, so it now must be set to true explicitly. Set to true for better naming of trace detail segments in Scala Play applications.

      transaction_tracer:
        stack_based_naming: true
    

Fixes

  • Memory leak when applications using servlets are continuously reloaded inside the JVM.
  • Memory leak with long running transactions performing a high number of external calls.
  • In some cases for JBoss application servers, two JVMs were being displayed in the UI when there was actually only one.
2014, November 6 - 09:25 Download

Fixes

  • Various bug fixes
2014, September 30 - 17:13 Download

Improvements

  • Spring Web Services
    • The Java Agent now supports Spring Web Services. Transactions are named based on the SOAP method name. The agent also reports the SOAP version, content type, and SOAP Action.
  • Support for Auto-RUM and precompiled JSPs
    • The Java agent now provides auto rum support when precompiling JSPs. To use auto rum when precompiling JSP files, add the agent as a java agent to your pre-compilation process.

Fixes

  • Fix: Under some circumstances the agent would report a LinkageError
  • Fix: Grails 2 transaction names had extra slash
  • Fix for auto-RUM
    • In some cases when a script tag is before a head tag in a JSP file, the auto RUM instrumentation was failing to place the initial New Relic header script in the page.
  • Fix: Reduce overhead of Akka instrumentation when not used in conjunction with Play/Netty
  • Fix: RabbitMQ instrumentation reported unnecessary transactions
    • basicPublish, basicGet, and nextDelivery no longer start short-lived  transactions.
2014, August 26 - 07:43 Download

Improvements

  • Full support for Java SE 8

    The New Relic Java agent now supports Java SE 8! Applications can now run on a Java 8 JVM, including those compiled to target Java 8 (i.e. -target 1.8). The system property newrelic.enable.java.8 is no longer necessary.

  • @RequestMapping annotation used to name web transactions

    Where available, Spring Web Transactions are now named using the URI path pattern defined in the @RequestMapping annotation. This generally provides even more meaningful transaction names than controller methods. To disable this and revert back to naming using controllers, add this config to your newrelic.yml:

    instrumentation:
        spring_annotations:
           enabled: false
    
  • WebSphere JMX metrics reported when global security is enabled

    Prior to this version, JMX metrics could not be pulled by the agent with WebSphere when global security was enabled. This means custom JMX metrics in a yaml file and default JMX metrics displayed on the JVM Threads and Http Sessions tabs were not reported.

  • Servlet UserPrincipal name can be reported as an attribute

    With this release, you can enable the capturing of the UserPrincipal name so that it is available in New Relic Insights and as a transaction trace attribute. To enable:

    class_transformer:
        com.newrelic.instrumentation.servlet-user:
          enabled: true
    
  • Non-Web Transactions can now be made Key Transactions with a custom apdex T

    This feature will be available in the RPM UI very soon. It requires this or a higher version of the agent.

Fixes

  • Fix: Web transactions not always reported.

    In some unusual cases the Agent stopped reporting web transactions. The agent would log an error that included the phrase "Inconsistent state"

  • Fix: WebSphere 7 reports active thread count on the JVM tab

    The thread pool active count being displayed in the UI was actually the pool size.

  • Fix: Excess error reporting in Play apps

    In Scala/Play apps, the agent was incorrectly logging errors when promises were resolved with a Failure.

  • Fix: Request headers are not read when cross application tracing is disabled

    Disabling cross application tracing using these config settings did not stop the Agent from reading request headers.

    cross_application_tracer:
    enabled: false
    
  • Fix: NewRelic API methods prematurely deprecated

    In 3.9.0, some API calls in com.newrelic.api.agent.NewRelic were prematurely deprecated. We are in the process of providing a more complete API for the New Relic agent. In an upcoming release, these methods may become deprecated, but with a stable and superior API alternative.

2014, July 31 - 19:36 Download

New Features

  • Support for new Cross Application Trace map

    This release enhances cross application tracing with the new trace map visualization of your app's cross application calls. The new visualization helps you spot bottlenecks in external services within transaction traces and gives you an end-to-end understanding of how the transaction trace is used by other applications and services. This leads to faster problem diagnosis and better collaboration across teams. All agents involved in the cross application communication must be upgraded to see the complete graph. You can view cross application traces in the transaction trace drill-down.

  • Support for RabbitMQ

    You can now see messages sent to and received from RabbitMQ 2.7.0 or higher. The time spent processing a dequeued message is shown as a Message transaction.

  • Support for SOAP over CXF

    In this release, we provide automated instrumentation of your SOAP calls when using CXF 2.7.

Improvements

  • Absolute maximum for max_samples_stored lifted

    In previous versions of the agent, max_samples_stored could not be set to more than 10000. This restriction has been lifted, which can help avoid sampling.

Fixes

  • Enable Cross Application Tracing for all valid uses of HttpURLConnection

    Prior to this, certain uses of HttpURLConnection between two New Relic apps would fail to be recognized as Cross Application Traces and instead show up as external calls.

  • Allow customers to set the system property logback.ContextSelector

    Prior to this fix, the agent would throw a ClassNotFoundException when the system property logback.ContextSelector was set.

  • Wrong Application name in App Map when Auto App Naming is enabled

    When the enable_auto_app_naming config setting is set to true, the auto-named apps are incorrectly identified as the default app in the App Map.

2014, July 28 - 15:50 Download
  • Fixed: Instrumentation missing including browser monitoring

    There was a bug in the agent that caused several instrumentation modules to not be loaded. This bug occurred when no extensions directory existed or the extensions directory was empty. This fix will allow auto-RUM to report normally. This bug was introduced in 3.8.0.

  • Fix: Missing metrics with Java 2 Security

    When Java 2 Security was enabled, the agent failed to report some metrics. This bug was introduced in 3.8.0.

  • Fix: Agent could stop reporting transactions

    For Jetty applications, the agent could stop reporting transactions if an uncaught exception was thrown. This bug was introduced in 3.6.0.

  • Fix: Agent not reporting external services in Play 2.3

    The Java Agent was not reporting calls to external services.

2014, July 10 - 20:46 Download

Notes

  • Fix: EJB application transaction metrics reporting correctly for WebLogic

    In version 3.8.0 of the agent, EJB application transaction metrics for WebLogic were reporting the data as the average value per a bean instead of the total value per an application. This has been fixed and the data can now be found under the JVM tab.

  • Fix: App Map incomplete

    If a web request made an external call to another app, the app making the web request did not appear in the App Map. Moreover, subsequent external calls to other apps did not appear in the App Map either.

2014, June 30 - 14:16 Download

Notes

  • Experimental support for Java SE 8

    This version includes experimental support for Java 8. Code that is known to work with Java SE 8 and compiled for Java 6 or 7 (such as Tomcat 8, Play Framework 2.3, etc) should work fine. We would like your feedback if you run into any trouble running code compiled for Java SE 8.

    Please only try this in non-production environments. We are eager for your feedback as we work to make Java 8 support production-ready. To enable Java SE 8 compatibility, set the following system property on your system:

    -Dnewrelic.enable.java.8

  • Support for Hibernate 4.3

    The Java agent now reports details on calls to Hibernate 4.3 as well as previous versions.

  • Fix: Cross-Application Tracing didn't trace when caller used WLS 11g and SOAP.

    In Oracle WebLogic Server 11g, cross-application tracing (CAT) failed for external calls originating in the default SOAP pipeline, producing an exception in the log. This bug has been fixed.

  • Fix: Old DocumentationBuilderFactory can cause agent to disable itself

    When using a DocumentBuilderFactory implementation compiled with Java 1.4 or below an abstract method error was being thrown, causing the agent to disable itself.

  • Fix: Agent not detecting async servlets in WebSphere 8.x

    The Java Agent was not detecting the call to AsyncContext.complete(), so it was not reporting async servlet calls.

2014, June 11 - 14:27 Download

Notes

  • Support for Play 2.3

    The Java Agent now provides full support for Play 2.3. In particular, transaction naming is based on the controller action.

2014, June 3 - 21:06 Download

Notes

  • Fix: NewRelic.setRequestAndResponse API call was not backward-compatible

    Implementation classes of the com.newrelic.api.agent.Request and com.newrelic.api.agent.Response interfaces compiled with a pre-3.5.0 version of newrelic-api.jar threw a java.lang.AbstractMethodError when used with a 3.5.0 or higher version of the Agent.

  • Fix: NewRelic.setRequestAndResponse can cause LinkageError

    For some app servers, calling NewRelic.setRequestAndResponse API caused a java.lang.LinkageError: loader constraint violation

  • Fix: ignoreTransaction attribute ignored

    The ignoreTransaction="true" attribute in custom xml had no effect. The transaction was not ignored even with "true" set.

  • Fix: In rare cases, Auto-RUM failed to add the New Relic header script to JSP pages.

  • Fix: Naming of CGLib classes

    Improved the fix in 3.7.0 for excluding the random part from the name of CGLib generated class.

  • Fix: Agent works properly inside a folder with + in the path

    Improved the fix in 3.7.0 for a directory path with a + character.

2014, May 20 - 22:09 Download

Notes

  • Flexible capturing of attributes

    The Java agent offers the ability to fine tune the attributes being sent to New Relic. Please see our docs site for more information on configuring attributes: https://docs.newrelic.com/docs/java/java-agent-attributes

  • Agent-Side High Security Configuration

    If your account is set to high security in the New Relic UI, you must add the following to your local newrelic.yml configuration file:

    high_security: true 
    

    Without this property, the agent will stop collecting data when high security is enabled in the New Relic UI. See https://docs.newrelic.com/docs/subscriptions/high-security

  • Discovery of hostname reported to New Relic

    If New Relic reports an IP address for your hostname, you can now control whether the host name is an IP version 4 or 6 address by setting the following property in your newrelic.yml configuration file:

    process_host: 
      ipv_preference: {4 or 6}
    
  • Improved JMX metric naming

    You can now set the metric name when configuring JMX metrics through a custom yaml file using the property "root_metric_name". Note, all of the JMX metrics will still be prefixed with "JMX" and end with the name of the attribute. See https://docs.newrelic.com/docs/java/custom-jmx-yaml-examples

  • Fix: Naming of CGLib classes

    CGLib auto generated classes with Spring resulted in poor metric names. The agent now excludes the random part from the name.

  • Fix: JMS transaction naming

    JMS onMessage instrumentation now uses a lower priority for naming transactions and honors the enable_auto_transaction_naming config.

  • Improved Jetty coverage

    Jetty versions 9.04 through 9.06 were not instrumented. This has been fixed.

  • Fix: Potential memory leak from database calls

    In some cases when database work is performed outside of a New Relic transaction, a memory leak could occur. This bug has been present in the agent since 3.5.0.

  • Fix: VerifyError can occur when using Nevado JMS.

2014, April 24 - 12:45 Download

Notes

  • Enhanced XML for custom instrumentation

    The custom XML xsd has been enhanced to support the instrumentation of interfaces, subclasses, and method annotations. These enhancements give you much more flexibility to identify transactions and add monitoring of components without changes to your source code.

  • Fix: Agent could cause VerifyError

    In specific cases, the agent could cause verification errors.

  • Fix: Embedded Jetty instrumentation

    Starting with the 3.3.1 agent, transactions were not reported for some configurations of embedded Jetty.

  • Fix: Exceptions incorrectly reported

    In some cases exceptions were reported even if configured to be ignored.

  • Fix: Embedded Tomcat not reporting JMX Builtin metrics

    In newer versions of embedded Tomcat the agent wasn't collecting JMX metrics properly.

  • Fix: Apache HttpClient 4.3 not consistently reported

    The Java agent now instruments Apache HttpClient 4.3 calls, including the new call patterns introduced in 4.3.

  • Fix: RESTEasy transactions

    In certain instances, transactions between applications were not getting linked correctly when RESTEasy was used.

  • Fix: JBoss 7 port not reported correctly

    The port was not reported correctly for some JBoss users.

  • Fix: Auto-RUM bug

    Starting in version 3.5.0 of the Java agent, in rare cases Auto-RUM could cause the New Relic footer script to be placed within a script tag.

  • Fix: Errors not reporting with some versions WebSphere 7.0

    In some Fix Packs of WebSphere 7.0, the agent did not report errors properly.

  • Fix: Agent works properly inside a folder with + in the path

    The Java agent did not initialize properly when in a folder with a + character in the pathname.

  • Fix: Agent HttpClient logging

    The Agent's HttpClient was writing to the app server's log when it discovered a log4j appender.

  • Fix: Inconsistent State with Play 1.2.x

    In some cases the agent was logging an "Inconsistent state!" message and not reporting a transaction.

  • Fix: Invalid errors for Stripes

    The Agent was erroneously reporting spurious 404 errors for web apps using Stripes.

  • Fix: Hanging threads in the Agent with SQL Prepared Statements

    Under rare circumstances, threads could hang in the Agent when an application with multiple threads made heavy use of SQL Prepared Statements.

  • Fix: Request queue time was incorrect for some versions of nginx

    Nginx fractional second header values for queue and server start times are now parsed correctly.

  • Fix: XML entity expansion with non-SSL connection to New Relic

    Fixed an XML entity expansion vulnerability that only occurs when the agent is configured with ssl: false; the default is true. The agent already has other protection against unauthorized entity expansion. This fix is an additional layer of protection.

  • Fix: In rare case, agent can cause application thread to hang

    Under rare circumstances, an application thread could hang when an application with multiple threads made heavy use of SQL Prepared Statements.

2014, April 24 - 12:42 Download

Notes

Note: This is a bugfix release for the legacy Java SE5 version of the agent. Unless you are a Java SE5 user, use the latest version of the agent.

The 3.x agent works with Java SE 6 and 7. If you are using Java SE 5, this is the release for you.

  • Fix: XML entity expansion with non-SSL connection to New Relic

    Fixed an XML entity expansion vulnerability that only occurs when the agent is configured with ssl: false; the default is true. The agent already has other protection against unauthorized entity expansion. This fix is an additional layer of protection.

2014, March 27 - 15:06 Download

Notes

  • Fix: Auto-RUM bug

    Starting in version 3.5.0 of the Java agent, in rare cases Auto-RUM could cause the New Relic header to be placed within a script tag. This bug has been fixed.

  • Fix: In rare cases, agent stops reporting

    In rare cases, the Java Agent hung on socketRead while performing an SSL handshake and would not report data until JVM restart. This bug has been fixed.

  • Fix: Occasionally missed web transaction when using ResultSet

    In version 3.5.0 of the agent some transactions that use a JDBC ResultSet were missing in the UI. The agent log would show an "Inconsistent State" error. This bug has been fixed.

  • Fix: X-Ray Sessions bugs.

    X-Ray Sessions sometimes returned no transaction traces. A memory leak with X-Ray Sessions when many sessions were run was also fixed.

2014, March 5 - 17:49 Download

Notes

  • New Relic supports WildFly 8.0

    The Java Agent now provides instrumentation for WildFly 8.0. You will see the same great visibility into your web transactions, app server stats, and frameworks that you have with previous versions of JBoss.

  • Fix: PostgreSQL explain plan bug

    Fixes PostgreSQL bug that allowed parameters to be sent in explain plans under some circumstances. Parameters are now masked prior to sending when explain plans are enabled (explain_enabled: true) and record_sql is set to 'obfuscated'.

  • Fix: SQL parameter obfuscation didn't work if the parameter value contained a newline

    The record_sql: obfuscated config setting did not properly mask parameters when it included a newline character. This bug has been fixed.

  • Agent no longer supports obfuscation of individual fields

    Previous versions of the agent allowed an obfuscated_sql_fields option to select specific field names to obfuscate when record_sql: raw. We have discovered rare cases in which this feature would not mask SQL parameters correctly, so we have removed the configuration option. Now, if obfuscated_sql_fields is set, the setting of record_sql: raw is ignored and all fields are masked.

  • Fix: In some cases, an agent could fail to reconnect to New Relic

    Fixed several issues that in rare cases could cause the agent to cease reporting data until JVM restart.

  • Fix: Transaction name specified in XML configuration was being ignored

    In some cases transaction names set in XML files in the extensions folder were being ignored. This bug has been fixed in this release.

  • Fix: Jetty 9.1 transactions were not showing up in 3.3.x or higher agents

    Starting with the 3.3.1 agent, customers were not seeing transactions from Jetty 9.1. This bug has been fixed.

  • Fix: Websphere 7.0 was not being instrumented

    Starting in agent version 3.3.0, WebSphere 7.0 was not being instrumented. This bug has been fixed.

  • Fix: Solr tabs in UI not always appearing

    If you are running a Solr application and not seeing any tabs, please update to this version.

2014, March 5 - 17:43 Download

Notes

The 3.x agent works with Java SE 6 and 7. If you are using Java SE 5, this is the release for you.

  • PostgreSQL explain plan bug

    There was a PostgreSQL bug that allowed parameters to be sent in explain plans under some circumstances. To avoid this issue, the New Relic agent now does not report explain plans for PostgreSQL.

  • Agent no longer supports obfuscation of individual fields

    Previous versions of the agent allowed an obfuscated_sql_fields option to select specific field names to obfuscate when record_sql: raw. We have discovered rare cases in which this feature would not mask SQL parameters correctly, so we have removed the configuration option. Now, if obfuscated_sql_fields is set, the setting of record_sql: raw is ignored and all fields are masked.

  • Fix: SQL parameter obfuscation didn't work if the parameter value contained a newline

    The record_sql: obfuscated config setting did not properly mask parameters when it included a newline character. This bug has been fixed.

  • Fix: Private trust store location for use_private_ssl flag

    The 2.21.4 agent did not properly load a private trust store used with the use_private_ssl flag. This bug has been fixed.

2014, January 23 - 16:53 Download

Notes

  • Fix: Solr caches and Solr updates data not appearing

    Starting with version 3.4.1, Solr caches and updates were not appearing in the UI. This bug has been fixed.

  • Fix: JVM tab thread pool, session, and transaction data not appearing

    Starting with version 3.4.1, some data was not appearing under the JVM tab. This bug has been fixed.

2014, January 21 - 01:39 Download

Notes

  • Fix: In some cases, Play 2.2 didn't report transactions

    When a chain of promises resolved, specifically using Future.flatMap(), lingering promises prevented the transaction from completing, in which case the transaction wouldn't be reported for the app. This is now tracked correctly.

  • Fix: Improved performance when instrumented code is not running in a transaction

    Avoids unnecessary work when code instrumented by the Java agent is not running in the scope of a transaction.

2014, January 16 - 18:42 Download

Notes

  • Fix: Java agent should honor enable_auto_app_naming

    Starting with Java agent 3.3.1, the enable_auto_app_naming flag was being ignored. This bug has been fixed.

  • Fix: Setting configuration properties in newrelic.yml configuration file.

    Starting with version 3.0, some properties such as max_stack_trace_lines could not be set in the newrelic.yml configuration property. This bug has been fixed.

  • Fix: Java agent should honor JAX-RS annotations with New Relic annotations

    New Relic's Java agent should handle methods that contain a New Relic annotation along with a JAX-RS annotation correctly. Previously the New Relic annotation was being ignored.

  • Fix: Play transaction does not complete until timeout expires

    New Relic's Java agent now handles firstCompletedOf to Futures correctly.

  • Additional functionality to API call addCustomParameter

    New Relic's API call addCustomParameter will now add the custom parameters to New Relic Insights. For more information, see http://newrelic.com/software-analytics

2014, January 10 - 21:38 Download

Notes

  • Fix: Duplicate annotation exception

    In some rare cases involving generated a proxy class, the application may encounter an exception

    AnnotationFormatError: Duplicate annotation for class

    That bug has been fixed in this version.

  • Fix: VerifyError

    In certain cases such as the Wildfly app server, the application may encounter a VerifyError. That bug has been fixed in this version.

2014, January 7 - 22:53 Download

Notes

  • JMS Messaging

    New Relic now gives you insight into the performance of your JMS message processing, both incoming and outgoing messages.

    New Relic now shows transactions initiated via JMS 1.1 message receipt. These transactions show up in the New Relic UI as background tasks of type "Message". In addition, JMS 1.1 message creation is shown in transaction traces.

  • Grails 1.3.7 to 2.3.x

    New Relic now provides first-class visibility into your Grails applications. Grails web transactions are now named based on the Grails controller. The transactions track the details of your calls to JDBC, Hibernate, and other important frameworks, and provides full access to the New Relic Java agent API from Groovy. Grails installation instructions can be found here

  • Updated instrumentation for supported app servers

    New Relic has updated the instrumentation of the application servers we support. In the process, we have updated the list of app servers that we instrument. For a current list of supported app server versions, see https://docs.newrelic.com/docs/java/new-relic-for-java

  • Fix: New Relic did not instrument Apache HttpClient 4.3

    Previous versions of the agent did not instrument HttpClient 4.3.x. That version is now properly supported.

  • Fix: Java Agent failed on Weblogic with a certicate exception

    In some cases running Weblogic, the Java Agent would fail certificate validation when connecting to New Relic. That bug has been fixed.

  • Fix: Java Agent suppressed application logging

    In version 3.2.3, the Java agent sometimes suppressed application logging. That bug has been fixed in this version.

  • Fix: Java Agent was logging error messages regarding "weaved classes"

    In version 3.2, the Java agent wrote innocuous error messages to its log similar to the following:

    ERROR: javax/servlet/ServletOutputStream is marked as a weaved class, but no methods are matched to be weaved.

    That bug has been fixed in this version.

  • Fix: Text instructions in the sample newrelic.yml file were improved

    If you are upgrading from a previous version of the agent, consider applying your configuration to this new version of the yml file.

2013, December 16 - 16:20 Download

Notes

  • Fix: JBoss 7 fails to start with Java 1.6

    Starting with version 3.2.0 of the Java agent, JBoss 7 application servers fail to start when running Java 1.6. An IllegalStateException is printed to System.out. This bug has been fixed.

2013, December 12 - 01:30 Download

Notes

  • Fix: Play 2.2 instrumentation in action methods

    In version 3.2.0 and 3.2.1, the Java agent failed to instrument calls present in a controller's action method. This means database calls, external calls, and custom instrumented calls within the action method were not being reported to New Relic. This bug has been fixed.

  • Fix: Invalid exclusive time errors with Play 2.2

    In version 3.2.0 and 3.2.1, the Java agent sometimes reported error messages to the newrelic log indicating an "Invalid exclusive time". This error has been fixed.

  • Fix: Inaccurate async wait time with Play 2.x

    In version 3.2.0 and 3.2.1, the Java agent reported an async wait time for Play 2.x transactions that was too large. This bug has been fixed.

2013, December 6 - 23:06 Download

Notes

  • Fix: Exceptions thrown from conflicting JAXB versions

    The New Relic Java agent now supports customers using any JAXB or Xerces version. This bug was introduced in version 3.1.0.

  • Fix: Usage of the newrelic.bootstrap_classpath system property

    In version 3.2.0, the newrelic.bootstrap_classpath system property caused an IllegalAccessError. That bug has been fixed. Note also that this system property has been deprecated and should not be used.

  • Fix: Data collection for customers using the IBM JVM without WebSphere

    New Relic now supports customers using an IBM JVM without running WebSphere. In this scenario, you must set the sync_startup flag set to true in the common section of their newrelic.yml.

    sync_startup: true
    
2013, December 3 - 00:05 Download

Notes

  • Glassfish 4 metrics for JVM Memory, Thread Pool, and Transactions

    New Relic now displays JVM memory, thread pool, and transaction metrics for Glassfish 4. To expose these metrics, please set http-service, transaction- service, and web-container monitoring within Glassfish to high. To see the metrics in New Relic, go to Monitoring > JVMs.

  • Decreased agent overhead for Play 2

    This version of the agent reduces the overhead that it incurs on Play 2. Play 2 users should upgrade for improved performance.

    In addition to general overhead improvements, New Relic has introduced a new setting to reduce overhead even more for particularly low-latency applications. Note that this setting will make the call info in Trace Details more generic.

    transaction_tracer:
      stack_based_naming: false
    
  • Manually disable auto RUM instrumentation for specific pages

    For supported JSP engines, New Relic automatically adds RUM (Real User Monitoring) elements to the response HTML. If you like auto-RUM, but do not want to apply it to all pages, you can now disable it for select pages. The configuration property disabled_auto_pages in the browser_monitoring section can now be used to disable auto RUM instrumentation for a comma delimited list of pages. For example,

    browser_monitoring:
      disabled_auto_pages: page1.jsp, page2.jsp
    
  • akka.actor.ActorKilledException is now ignored by default

    The ActorKilledException is commonly thrown in Play applications as a control mechanism in normally functioning applications. In previous versions, this exception inflated the reported error rate. These exceptions are now ingored by default. You can override the default ignore_errors list to provide your own exceptions or to omit the ActorKilledException.

    error_collector:
      ignore_errors: some.other.MyException
    
  • New Relic reports host capacity information

    New Relic now reports physical CPU cores, logical CPU cores (hyperthreads), and physical memory. On non-Linux platforms, the agent runs a subprocess to retrieve this information. To see the info in New Relic, go to Settings > Environment > Environment Snapshot.

  • Report JVM name and revision to New Relic as part of JVM description

    Recording the JVM name in addition to the vendor allows differentiation between different JVMs from the same vendor. To see these values in New Relic, go to Settings > Environment > Environment Snapshot and look for the "Java VM" and "Java VM Version" settings.

  • Fix: Support for Play 2.2

    Web transactions were not being correctly captured under some circumstances for Play 2.2 applications. Web transactions are now correctly reported. Also note the change in command line syntax as of Play 2.2: https://docs.newrelic.com/docs/java/play-installation-for-java

  • Fix: Background tasks created by an @Trace annotation with a 'metricName' element did not show up in the New Relic UI.

2013, November 5 - 21:04 Download

Notes

  • Fix: In some cases, metrics were not reported in Play 2 apps

    The Java Agent now reports all metric data consistently.

  • Fix: The Java Agent was unable to instrument classes in WSO2 API Manager

    The Java Agent now reports data for WSO2 applications.

2013, October 21 - 22:49 Download
  • Percentiles and Histograms

    The Java Agent now captures data that provides percentile and histogram views in the New Relic UI.

  • JAX-RS annotation instrumentation

    The Java Agent now instruments and names web transactions based on javax.ws.rs annotations.

  • JAX-WS instrumentation

    The Java Agent now instruments methods on classes that are marked with the javax.jws.WebService annotation.

  • Fix: In some cases, agent had excessive overhead on Spring AOP apps

    The agent should now perform well for any Spring AOP application.

  • Fix: Play Framework instrumentation was ignoring the ignoreTransaction call

    The Play Framework 2.x instrumentation now honors the New Relic API ignoreTransaction call.

  • Fix: Potential memory leak when app continually creates ClassLoaders

    The Java Agent now handles applications where ClassLoaders are continuously created.

  • Fix: Agent zip distribution did not include the API source jar

    The newrelic-api-sources.jar is now included in the zip file.

2013, October 3 - 22:13 Download

Notes

  • Fix: Issue at startup with JBoss and Glassfish

    An issue in the 3.0.0 version caused startup of some versions of JBoss and Glassfish to fail. This version fixes that issue.

  • Fix: RUM not auto-instrumented for JSPs

    The Java Agent should auto-instrument RUM header and footer in JSPs when using the Jasper engine. This did not work in 3.0.0. This version fixes that issue.

2013, October 1 - 21:09 Download

Notes

  • Spring AOP instrumentation

    This version instruments any call that passes through an AOP pointcut that you have declared in your Spring application. This gives your additional insight into the call time of key Spring beans.

  • Performance Improvements

    This version contains optimizations that reduce agent overhead.

  • Fixes: Hibernate improvements

    In this version, we provide more consistent detail into Hibernate calls across supported version of Hibernate (3.3 - 4.2).

  • Fix: Removed need for WebSphere SSL work-around

    Previous versions sometimes required a work-around when using WebSphere. This version removes the need for a work-around.

  • NOTE: Requires Java SE 6 or 7

    Java Agent 3.0 requires Java SE 6 or 7. At signup or in your Account Settings page, you have the option to download a version of the agent that works with Java SE 5.

2013, September 10 - 21:21 Download

Notes

  • Fix: Metric Grouping Issue with Netty

    The request URL was referenced in some metric names, causing Metric Explosion. The URL is no longer included in the metric name.

  • Fix: Make Cookie parsing more robust when running on Netty

    Cases where the Cookie header was malformed were causing exceptions to be thrown. Agent now makes a better effort to capture the individual valid parts.

  • Fix: Agent could not connect to New Relic in non-DNS environments

    Fixed an issue which caused the agent to only be able to connect to New Relic in environments where DNS was used for hostname resolution.

  • Fix: In 2.21.2 and 2.21.3 an @Trace annotation ignored the transaction for Apdex

    An @Trace annotation on a method called in a web transaction had the side-effect of ignoring the transaction for calculating the Apdex score.

2013, August 13 - 16:38 Download

Notes

  • Fix: Agent did not run with J2SE 5.0 (aka JDK 1.5)

    Release 2.21.0 - 2.21.2 did not run correctly on J2SE 5.0. On startup, the agent reports:

    Unable to start New Relic agent: java.lang.UnsupportedClassVersionError: Bad version number in .class file

    If you are running J2SE 5.0, please update to agent version 2.21.3.

2013, August 10 - 00:22

Notes

  • Fix: Longer application startup time

    Release 2.21.0 introduced an issue that could cause application startup to be slower than in previously releases. This fix returns application startup time to normal.

  • Fix: File location changes

    Release 2.21.0 introduced a change to file locations within the newrelic zip file. This fix reverts the locations to what they were previously.

2013, August 9 - 17:35 Download

Notes

  • Fix: In 2.21.0, calls to NewRelic class can cause NoClassDefFoundError

    In 2.21.0, if your application calls the NewRelic class and does not include the newrelic-api.jar, the application would throw a NoClassDefFoundError. With this fix, the separate newrelic-api.jar is not required. However, it is recommended that your application include the newrelic-api.jar so that calls to the NewRelic API resolve with or without the agent installed.

2013, August 7 - 13:39 Download

Notes

  • X-Ray sessions

    Adds support for X-Ray sessions. An X-Ray session collects Transaction Traces and a thread profile for a Key Transaction.

  • Fix: In 2.20.0 an @Trace annotation ignored the transaction for Apdex

    An @Trace annotation on a method called in a web transaction had the side-effect of ignoring the transaction for calculating the Apdex score.

  • Fix: HTTP status code for Errors

    If the HTTP status code for a web transaction was less than 400, the HTTP status code reported in the error was 500. The actual status code for the web request is now reported.

  • Fix: Spring exception handling

    The Exception argument in the Spring DispatcherServlet processHandlerException method was reported as an Error with an HTTP status code of 500. The actual status code in the HTTP response is now reported.

  • Fix: Reading Post Parameters for Resin 3

    Prior to this fix, post parameters in Resin 3 were always read using the default properties even if the application tried to read the post parameters using non-default properties or by just grabbing the request input stream.

  • Fix: JVM Tab Metrics Not Showing up for Tomcat Applications

    Prior to this fix, if the service name in service.xml was not Catalina, then metrics would not appear under the JVM tab. Additionally, if you are using an embedded Tomcat 5/6, metrics should now appear under the JVM tab.

  • Fix: Improved compatibility with Java 1.5

    In the custom xml validator, there were references to String.isEmpty() which was not available until Java 1.6. Those have been removed.

  • Fix: Reducing DNS problems by not automatically adding '.' to the domain name

    By default the '.' is included. But if changed, then the '.' won't be added.

  • Fix: JVM tab metrics showing for all Applications In JVM

    Metrics under the Thread, Session, and Transaction tabs used to only appear under the main application. The data will now be shown for all applications running in the specific JVM.

  • Fix: Using a Proxy now works with SSL Enabled

    In prior releases proxy authentication would fail when SSL was enabled. We now do proxy authentication using the java.net.Authenticator.

  • Fix: Akka error reporting

    If an actor throws an exception or the message times out, an error is reported. Previously, no error was reported.

2013, July 1 - 20:07 Download

Notes

  • Glassfish 2.1 JVM Tab

    The JVM tab will now show thread, session, and transaction metrics for Glassfish 2.1.

  • Fix: Solr Cache Metrics

    The solr cache metrics do not appear with versions 2.18 and 2.19 of the agent. This has been fixed and all solr metrics should now appear.

  • Fix: NullPointerException in New Relic Logs When NewRelic API called

    In certain circumstances, a call to a method on the NewRelic class can generate a NullPointerException in the agent logs. It does not cause a NullPointerException in your application.

  • Fix: Support Custom Extension XML File for WebSphere with JRE

    Prior to this fix, an attempt to use a custom extension XML file with a IBM JRE would lead to a ClassNotFoundException.

2013, June 14 - 15:58 Download

Notes

  • Fix for 2.19.0 known issue: Play now captures GET and POST parameters correctly if capture_params is enabled.

  • Disabled overly ambitious instrumentation used to time template rendering for Play 2. Resulted in unintended classes being instrumented.

2013, May 29 - 17:23 Download

Notes

  • Play 2 Instrumentation

    Provides insight into Play 2.x Java and Scala applications. Adds instrumentation to Netty server, Akka actor calls, Scala Promises and Futures, and the WS API calls.

    Known issue: Request parameters are not captured properly even if capture_params is enabled.

  • Support added for Jetty 9 (tested on 9.0.0 through Jetty 9.0.3).

  • Fix: Agent can cause java.lang.VerifyError on code compiled with Java 7

    In certain cases, if your application code or third party libraries are compiled with Java 7, you may get a java.lang.VerifyError. This fix allows the agent to work correctly in those cases.

  • Fix: The Java Agent detects status codes for Apache Felix correctly by default. The property take_last_status is now deprecated.

2013, May 7 - 20:07 Download

Notes

  • New metrics are displayed under the JVM tab

    While the metrics displayed differ between application servers, common metrics include loaded class count, active thread count, active thread count per thread pool, active session count per application, and active transaction count. In order to see these metrics, JMX must be enabled on your app server.

  • Fix: When naming transactions, the property enable_auto_transaction_naming should be honored

    There was an issue where transactions using the Spring Framework were ignoring the property.

  • Fix: Strip query string from HTTP Referer

    Query strings can potentially contain sensitive information. To prevent that data from being sent to New Relic, only the host and path portion of the referer are captured.

2013, April 17 - 21:33 Download

Notes


  • Fix: Fixed bug in which application code can throw NoSuchMethodError

    In some cases using Java agent 2.17.0 and 2.17.1, application code was throwing an exception

    java.lang.NoSuchMethodError: java.lang.Boolean.valueOf(B)Ljava/lang/Byte;

    This usually occurred when calling a ResultSet implementation.

2013, April 12 - 21:17

Notes

  • Fix: Reverted transaction naming change on ColdFusion, introduced in 2.17.0.

    That change caused issues with certain modes of ColdFusion.

2013, April 11 - 22:43

Notes

  • Agent reports JDBC ResultSet query time

    This change gives you deeper insight into your database time by displaying ResultSet processing time in aggregate metrics and transaction traces.

  • Fix: Avoid retransform exception on IBM JREs

    In some IBM JRE versions, the agent logged an INFO level exception and did not instrument select classes. This fix allows these classes to be instrumented properly.

  • Adds a stack trace in a transaction trace for all methods taking longer than stack trace threshold. This differs from 2.16 which only provided stack traces for a limited number of methods.

  • Better transaction naming on ColdFusion

2013, March 25 - 22:03 Download

Notes

  • Adds a stack trace in the transaction trace for slow methods.

    This change provides additional insight into your slowest transactions.You can adjust how slow a method is before it generates the stack trace by setting stack_trace_treshold (in seconds).

    transaction_tracer:
      stack_trace_threshold: 1.0
    
  • Cross Application Tracing support for HttpURLConnection.

    Adds request and response headers to external calls using the HttpURLConnection library to provided better performance data when calling applications monitored by other New Relic Agents (Java, .NET, and Ruby, with others coming soon).

  • Fix: Cross Application Tracing does not correlate consistently when using WebSphere, WebLogic, Resin, and Glassfish.

    Cross Appplication Tracing did not correlate calling and called applications when the HTTP response was large.

  • Queuing time more broadly supported.

    The 'X-Queue-Start' and 'X-Request-Start' request headers for Heroku and other front-end web servers are interpreted and reported. Previously, queuing time was not reported for Heroku.

  • Work-around for Oracle JVM bug that in rare cases causes a native memory leak

    In rare cases, the Oracle JVM can leak native OS memory (not heap space) when classes are intercepted by the agent. This setting turns off interception of classes that are loaded after the given number of seconds. The agent will continue to monitor classes loaded before this time.

    class_transformer:
      shutdown_delay: 3600
    
2013, March 13 - 21:43 Download

Notes

  • Fix: Cross Application Tracing does not correlate consistently when using Tomcat 6+

    Cross Appplication Tracing did not correlate calling and called applications when the called application ran in Tomcat 6 or later and the HTTP response was greater than about 7k.

2013, February 28 - 23:06 Download

Notes

  • Cross Application Tracing

    The Cross Application Tracing feature adds request and response headers to external calls using the Apache HttpClient libraries to provided better performance data when calling applications monitored by other New Relic Agents (Java, .NET, and Ruby, with others coming soon).

    The 2.14.0 release links aggregated data across applications. This release also links transaction traces.

    The configuration setting introduced in 2.14.0 to enable/disable Cross Application Tracing in newrelic.yml has changed. The old setting: 'cross_application_tracing: true' is deprecated. The new setting is

    cross_application_tracer:
       enabled: true

    The default setting is true. Set to false to disable Cross Application Tracing.

  • Instrumentation added for the AmazonS3Client version 1.x

    The New Relic Agent now offers support for version 1.0 to current of the com.amazonaws.services.s3.AmazonS3 interface.

  • New Relic Java Agent support a daily roll over log

    To roll over the agent log every day, set the property log_daily to true. Set the property log_file_count to the number of day logs you would like to keep.

  • New Relic Java Agent now communicates with New Relic via HTTPS by default rather than HTTP

    If you have an existing installation and wish to use HTTPS to communicate with New Relic, edit your newrelic.yml file to include

    ssl: true

    in the common section. We recommend this for existing customers in order to improve the security of your communications with New Relic.

  • Java Agent installer improvements

    The Java Agent installer now supports JBoss 7.x AS and JBoss 6.x EAP in standalone mode. Instructions for manually installing the Java Agent on JBoss 7.x AS and JBoss 6.x EAP can be found at https://newrelic.com/docs/java/installing-the-java-agent-on-jboss.

  • Fix: Default hostname reported

    This release reverts the change in 2.14.0 that effected the way that the hostname is reported. With this release, the agent reports the default hostname rather than short form in order to correlate with New Relic server monitoring.

  • Fix: Web transactions naming in Spring MVC version 3.x

    This bug caused customers using Spring 3.0.1 and above to often have web transactions named by the servlet rather than controller method. This has been fixed such that a separate metric is created for each controller method.

2013, February 15 - 23:38 Download

Notes

  • Fix: Application errors using java.net.HttpURLConnection. The bug, introduced in 2.14.0, could cause errors in code that uses java.net.HttpURLConnection. Possible errors could occur in XML parsing, incorrect http response status, or BeanCreationException in Spring. As part of this fix the agent does not add a 'X-NewRelic-ID' header to outbound requests using java.net.HttpURLConnection.
2013, February 8 - 00:03 Download

Notes

  • Fix: New Relic includes property take_last_status to only grab the final http status code.

    By default, New Relic reports any error status code. However, when this property is set to true, only the last http status code will be reported. This property should be set when using Apache Felix.

  • Fix: New Relic now correctly patches Apache Felix ClassLoaders.

  • Fix: Time will now display correctly for the first hour of the day when using log4j.

  • Fix: RUM header was missing a semicolon at the end of the last statement. Some browsers prefer semicolons everywhere.

  • Adds a 'X-NewRelic-ID' header to outbound requests using the Apache HttpClient or HttpURLConnection libraries. This change helps improve the correlation of performance between services in a service-oriented architecture for a forthcoming feature. In the meantime, if you wish to disable the header, set 'cross_application_tracing: false' in newrelic.yml.

  • Fix: Java agent now reports hostnames consistent with the output of "hostname -s" to match all other agents

  • Add report of physical server memory (in addition to JVM memory) on Unix/Linux machines

2013, January 16 - 19:42 Download

Notes

  • Agent can be configured to not send JVM arguments to the New Relic server

    The property send_jvm_props can be set to false, which will cause JVM arguments to no longer be sent to the server. Use this setting if you set sensitive system properties on the command line.

  • Agent reports full URL in external service calls for transaction traces

    The agent now will provide the full URL if available in transaction traces for external calls.

  • Fix: ResinServletTracerFactory no longer causing SkipServletTracerFactory errors

    When hitting the ResinServletTracerFactory inside a transaction, a SkipServletTracerFactory excetion will no longer be thrown.

  • Agent logging improvements

    We have improved the clarity of logging messages, adjusted logging levels to be more appropriate, and increased logging performance.

2012, December 6 - 22:56 Download

Notes

  • Agent reports jars used by applications to the Environments tab in the UI

    The Environments tab in the New Relic UI now shows the jars used by your application.

  • Fix: In certain cases, auto-RUM of JSP breaks HTML

    An angle-bracket in quotes in a META tag causes the agent to produce invalid HTML for JSP. The fix produces valid HTML for this case.

  • Fix: Key Transaction ApdexT value not used

    In v2.10 - v2.11, the application-level ApdexT value is used for Key Transactions rather than the ApdexT for the Key Transaction itself. In this release, the ApdexT for the Key Transaction is used.

  • Fix: With OC4J using PolicyClassLoader, no metrics displayed

    In the case where OC4J uses the PolicyClassLoader, the agent generates a java.lang.StackOverflowError in the log and does not provide metrics. In this release, the error does not occur.

  • Fix: External metrics for HttpClient include port if host is an IP address

    In the case where an external service call uses HttpClient with an IP address rather than a hostname, the port number is also included. In this release, the port number is not displayed.

2012, November 28 - 17:00 Download

Notes

  • Support Jetty Continuations
  • Support Servlet 3.0 async API for WebSphere
  • Bug fix: java.lang.ClassCircularityError in JBoss
  • Bug fix: Agent does not detect Solr 4.0
  • Bug fix: NewRelicIgnoreApdex annotation ignored
2012, November 13 - 21:40 Download

Notes

  • Remove stall detection
2012, October 31 - 16:39 Download

Notes

  • Instrumentation of Servlet 3.0 async processing. Processing initiated by startAsync is included in metrics and transaction traces.
  • Custom instrumentation configured through an XML file. For details see the documentation.
  • Request attribute for setting app name now allows multiple app names
  • Bug fix: auto RUM inserts header and footer into script tags
2012, October 9 - 16:21 Download

Notes

  • Support for Key Transactions. Key Transactions let you closely monitor these important key business transactions and receive alerts when they are performing poorly. For more information see the full documentation.
  • More metrics available in Custom Dashboards
2012, September 11 - 21:50 Download

Notes

  • Supports basic proxy authentication for the case where there is a proxy server between the agent and the internet. The configuration uses proxy_user and proxy_password settings.
  • To avoid reporting the same transaction trace repeatedly, the agent reports a number of the slowest transactions.
  • Bug fix: Transaction trace reported to wrong app if enable_auto_app_naming and browser requested a transaction trace
2012, July 31 - 15:57 Download

Notes

  • Add skipTransactionTrace element to @Trace annotation to tell Agent to drop method from transaction trace
  • Add -Dnewrelic.bootstrap_classpath=true system property to append newrelic.jar to bootstrap classpath
  • Support RUM reporting to multiple applications (RUM3)
  • Bug fix: Asynchronous processing time not reported correctly in Play 1.2.4
  • Bug fix: CXF transaction names not set to URI path if protocol is https
2012, June 6 - 17:33 Download

Notes

  • Java 7: Native support for instrumenting classes compiled to Java 7 bytecode
  • Audit Mode: mode which logs all data sent to New Relic in the newrelic_agent.log
  • Bug fix: Prevent agent instrumentation from changing the Serial Version UID (introduced in 2.2.0)
  • Bug fix: Prevent memory leak when client applications start and subsequently stop a thread before completing a transaction (introduced in 2.2.0)
  • Bug fix: Prevent stack overflow exception when executing queries using the Postgres 9.0.x JDBC driver
  • Bug fix: Fix dispatch handler instrumentation for Jetty 7.5.* (introduced in 2.5.0)
  • Bug fix: Set the application port correctly under Jetty 4.*
  • Bug fix: Make the transacation_tracer configuration settings respect command line and environment overrides
2012, May 1 - 16:26 Download

Notes

  • Browser traces
  • Bug fix: OC4J does not start (introduced in 2.2.0)
  • Bug fix: AbstractMethodError calling getRemoteUser in Tomcat and Glassfish
  • Bug fix: Deployment does not use SSL port if SSL is configured (introduced in 2.2.0)
  • Bug fix: NullPointerException getting request URI in Jetty 4.x and 5.x
  • Bug fix: JSP compiler error with auto RUM in Tomcat 5
  • Bug fix: Transaction parameters removed if error is reported but response status < 400
  • Bug fix: No request parameters in Resin 3.x
  • Bug fix: AbstractMethodError calling getContextPath() with Tomcat 5.x (introduced in 2.2.0)
  • Bug fix: Ignore transaction before transaction started stops transaction reporting
2012, April 18 - 15:54

Notes

  • Bug fix: ClassLoader.loadClass deadlock (introduced in 2.4.0)
2012, April 2 - 18:39

Notes

  • Bug fix: AssertionError in WebLogic (introduced in 2.2.0)
2012, March 27 - 10:52

Notes

  • Bug fix: ClassNotFoundException with JBoss AS 7 (introduced in 2.2.0)
  • Bug fix: NoClassDefFoundError with Glassfish 3.1.2 (introduced in 2.2.0)
  • Bug fix: ClassCastException with Glassfish 3.1.1 (introduced in 2.2.0)
  • Bug fix: Agent stops reporting web transactions (introduced in 2.2.0)
  • Bug fix: Instrumentation error in Jetty 7.5.4 (introduced in 2.2.0)
  • Bug fix: possible unknown host for external call with HttpClient 3.0.1 (introduced in 2.3.0)
  • Bug fix: stall error reporting broken
  • Bug fix: agent_enabled setting not working
  • Add stall_threshold setting for reporting stall errors
2012, February 13 - 00:07

Notes

  • Bug fix: Agent logging breaks webapp log4j configuration (introduced in 2.3.0)
2012, February 1 - 17:52

Notes

  • Play! framework support
  • Create web transactions using custom instrumentation
  • Use log4j instead of Java API logging
  • Bug fix: RUM auto instrumentation fixes
  • Bug fix: multiple app names in app_name setting out of order (introduced in 2.2.0)
  • Bug fix: possible java.lang.IllegalArgumentException with parameterized SQL (introduced in 2.2.0)
  • Bug fix: WebSphere instrumentation broken (introduced in 2.2.0)
2011, December 29 - 18:00

Notes

  • Bug fix: ClassFormatError and NoClassDefFoundError instrumenting proxy classes
  • Bug fix: transaction trace threshold not working (introduced in 2.2.0)
  • Bug fix: infinite loop instrumenting parameterized SQL statements
2011, December 6 - 18:06

Notes

  • Performance improvements
  • Support server-side configuration
  • Bug fix: byte-code instrumentation causes class loading deadlock and OS memory explosion
2011, November 7 - 18:17

Notes

  • Performance improvements
  • Bug fix: parse inner select SQL statements
  • Bug fix: execute SQL statement not recognized
2011, October 7 - 18:23

Notes

  • Report slow SQL statements
  • Performance improvements
  • Continue to record metrics after transaction trace limit is reached
  • Bug fix: never drop data
  • Bug fix: Agent destructively reads request parameters in Resin
  • Bug fix: default transaction trace threshold should be apdex_f
  • Bug fix: Don't obfuscate digits in SQL statements that are part of table name
2011, August 30 - 18:25

Notes

  • Bug fix: RUM: handle duplicate injection of our JS header and footer
  • Bug fix: fix the license key hint that is inserted into the auto-generated configuration file
  • Allow logging to standard out
  • Allow configuration of the agent via environment variables
2011, August 4 - 18:28

Notes

  • Bug fix: RUM: Tag files not compiling in Jasper
  • Bug fix: RUM: header not always inserted after meta tags
  • Bug fix: NullPointerException if filter config is null
  • Bug fix: Fix IE measurement problem in RUM footer
  • Bug fix: API calls should not throw exceptions
2011, June 16 - 18:30

Notes

  • Bug fix: Auto RUM compiler error instrumenting some JSPs
  • Bug fix: Auto RUM should inject header after meta tags
  • Bug fix: Installer does not modify start script if another javaagent switch is present
  • Bug fix: Agent breaks request URI parsing in Tomcat: JSESSIONID not removed (introduced in 1.4.0)
  • Bug fix: Some compilers unable to compile JSP with auto RUM
  • Installer support for Glassfish
2011, May 23 - 18:34

Notes

  • Bug fix: JBoss fails to start with JMX errors (introduced in 1.4.0)
2011, May 9 - 18:35

Notes

  • Auto Real User Monitoring
  • Support for X-Request-Start, X-Queue-Start, and X-Queue-Time request headers
  • Bug fix: newrelic-api.jar does not work with Java 1.5
  • Bug fix: NullPointerException instrumenting HttpClient
  • Bug fix: setting request attribute "com.newrelic.agent.TRANSACTION_NAME" not working (broken in 1.4.0)
  • Bug fix: uncaught exceptions not logged during startup
  • Bug fix: thread profiling fails if CPU time not supported
  • Bug fix: error is ignored only if it is the root cause
2011, April 11 - 18:38

Notes:

  • Real User Monitoring
  • Bug fix: setting 'ignore_status_codes' to a single value is ignored
2011, March 17 - 18:40

Notes:

  • Component-based transaction naming
  • Agent API
  • Multiple applications enhancements
  • Send data to RPM in UTF-8 format
  • Bug fix: ClassCastException setting record_sql: off