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