In addition to continuous integration, a major aspect of DevOps also includes continuous monitoring to ensure that your system and your applications work to the best of their abilities. This is where application performance management (APM) comes into the picture, APM involves performance, availability and user experience management. APM provides several benefits to operation and development teams. New Relic is a great DevOps tool that can help you measure your performance metrics and also share visibility that is important for a successful DevOps project. This is just one of the many different DevOps tools that can help you build a more successful DevOps project. Let’s learn more about APM in detail including its many benefits, before we start talking about New Relic and how it can revolutionize your DevOps projects.
- APM enables discovery and mapping of the application topology
- APM enables collection of application performance and availability metrics
- APM enables monitoring of user interaction with an application
- APM enables identification of performance problems and opportunities that can be used to improve performance
APM has reached a maturity level where there is not merely the preserve of operation and system administrators. APM is relevant throughout the application lifecycle from pre to post-deployment activities. Benefits of APM can be realized by development, business, operations and testing teams. For example, APM software enhances development and operations collaboration by promoting better quality work through code troubleshooting and progress reports. Testing team benefits from higher testing accuracy, load testing and fast identification of performance problems. Common measure teams can collaborate more efficiently.
An APM software tool needs to have the broad capabilities listed below:
- Capacity to monitor user experience – this capability provides the results that enable optimization aimed at improving the user experience
- Capacity to discover, model and display the runtime architecture of the application. This capability provides the results that enable identification of performance problems. This capability provides the highest value from an APM tool. The tool should be able to discover application topology and track user navigation.
- Capacity to provide application analytics – this capability enables identification and resolution of problems
For a product to be considered an APM tool there are core features that need to be provided. The first core feature required is providing time series metrics. Metrics such as the number of requests, error rates and response time need to be provided. These metrics are important for identifying and understanding trends. By understanding trends, you can take corrective action before end user experience deteriorates. The metrics are captured and analyzed at application, service, transaction and cross-dependency level.
The second core feature required is providing infrastructure metrics on CPU, memory, disk and network I/O usage. These metrics provide an understanding of the infrastructure where applications are running. If there is a sudden rise in any infrastructure application problem, then the problem needs to be resolved. Another benefit of infrastructure metrics is, they help to discriminate between the infrastructure problems and the other problems.
The third key feature required is distributed tracing which is critical in identifying performance problems. Distribution tracing enables you to identify elements that makeup application response time. Requests are tracked across tiers and dependencies and performance in each tier are reported to provide an understanding of the contribution of each element to total response time. By breaking up the total response time it becomes possible to identify a specific problem. In the absence of specific information, you will know there is a problem but you cannot identify it. An important requirement of distributed tracing is it must have low overhead. It is of no value of having detailed information at the cost of application performance.
The fourth key feature required is intelligent alerting. The APM tool needs to have email notification, visualizations and integration with problem ticketing systems.
The last key requirement of an APM tool is the ability to create custom dashboards. Although APM tools have prebuilt dashboards the ability to create dashboards relevant to a specific business process is critical.
The first part of this tutorial focused on discussing APM in general. The second part of this tutorial will focus on demonstrating how to use NewRelic for application performance management.
Before you can start using NewRelic you need to create an account. Navigate to their website https://newrelic.com/ and sign up. After signing up you will be directed to a page showing the tools provided. In this tutorial, our focus is on APM.
Before monitoring, we need to set up an agent on a target server. Click on account profile and select account settings.
You will be shown a page listing all available agents. In this tutorial, we would like to set up a Java agent so download it.
On Windows unzip the downloaded file to a directory of the server that you would like to monitor. Navigate to the directory where you unzipped the agent and install it. The commands to complete this are shown below:
java -jar newrelic.jar install
After installation is complete, restart your application and wait for about 10 minutes for the agent to collect the data. Click on the name of your application and monitoring, events, reports and settings dashboards will be available.
The first metric provided on monitoring dashboard is response time. The average response time of all requests is provided. By looking at average response time it is possible to identify sharp changes and identify their source. Besides the average, you can also visualize transactions using histograms. Other summary measures are available on percentiles to feature where you can see 95th percentile, 99th percentile, median and mean.
The selected window of time feature enables you to select a custom time period and visualize metrics. The Apdex score shows you the extent to which slow site performance harms user experience. The error rate shows the percentage of errors that have occurred. The servers feature shows resource utilization.
Real user monitoring enables you to capture data on time spent on the browser and in the backend, operating system, browser and geographic region. The results are visualized on time series maps and charts. The transaction traces feature provides detailed diagnostics without the need to dig into log files.
In this tutorial, we have introduced the benefits of APM to development, operations and testing teams. The key capabilities and features required in an APM tool were discussed. Setting up a new relic account and installing an agent on a target server were demonstrated. Finally, the dashboards and metrics available were discussed.
While New Relic only caters to monitoring projects already built on DevOps, there are many other tools that can help you when you are actually building your DevOps Projects. These popular tools are great to help create more efficient projects. You can check out these tools below: