• EnglishEspañol日本語한국어Português
  • Log inStart now

Java agent release notesRSS

July 1, 2015
Java agent v3.18.0

Download this agent version

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 messages for allow list

    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 your allow list with the following configuration property:

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

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

    strip_exception_messages:
    enabled: true

June 30, 2015
Java agent v3.17.1

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!”

June 11, 2015
Java agent v3.17.0

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.

May 14, 2015
Java agent v3.16.1

Improvements:

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.

March 31, 2015
Java agent v3.15.0

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.

February 25, 2015
Java agent v3.14.0

Improvements:

  • Synthetic transaction tracing

    Synthetic monitors lets you monitor your site from around the world. When you use synthetic monitoring 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.

January 20, 2015
Java agent v3.13.0

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.

January 8, 2015
Java agent v2.21.7

Fixes

Important

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 New Relic Java agent.

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

Known issues

  • 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 may require a workaround.

  • This release contains some inconsistencies in the instrumentation of Hibernate across versions.

  • This release requires a workaround 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.

Workaround

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

December 22, 2014
Java agent v3.12.1

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 section 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.

November 6, 2014
Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.