many other products available on the market.
New Relic, along with AppDynamics and Dynatrace, is a leader according to Gartner (Magic Quadrant for Application Performance Monitoring, October 28, 2014) As an example, we will use New Relic to showcase the interesting features for test and development environments.
The installation is very simple. After registering on the site, you can download a zip file. Specifically, it contains the settings file named newrelic.yml already customised with your license key and the java agent: newrelic.jar. Extract the zip to a directory on your server and add Directive -javaagent:/<path to new directory Relic>/newrelic.jar
in your application’s start settings. That's it. After having used your application, you can directly view its behavior.
In our case, our application publishes RESTs services. Without changing any settings, the product is able to analyse various requests sent to the application and provide an activity overview.
With a simple click, it is possible to perform a drill down on a query and get the longest functions and the number of calls over a period of time. Modern APMs have a very intuitive interface for fast handling.
Drill down processing an HTTP request
The tool can capture database queries and identify the most load intensive ones. At a glance, the timing analysis shows whether the queries are performed regularly or only at certain times. Here, for example, 'vat Insert' is executed at the start of the application.
List of SQL queries and their execution time
The tool lets you to visualise the evolution of memory usage within its different spaces. This helps diagnose problems like memory leaks or caches that never empty.
The time spent in Garbage Collection can help identify application’s slowdown problems due to excessive memory activity that are not necessarily memory leaks.
It is also possible to look at thread use information:
The APM captures very useful information such as JVM start parameters, the various Jars used as well as their software version.
JVM parameters and dependencies
In production environments, an APM is an essential component to monitor applications execution and to diagnose and understand the performance issues that may arise. Specialised developments will never be able to compete with features provided by any APM software. Note that there are also solutions to specific technologies, such as Javamelody for JEE, that integrate part of APM functionality in the application itself. On test or development environments, APM serves as the Swiss Army knife of performance. It allows teams to analyse an application execution without going through tedious settings, time-consuming logs analysis and other tools that require specialised expertise.
Finally, An APM is a great communication tool for stakeholders to gather a complete view of an application’s execution or the outcome of performance tests execution.