Application Metric Reporting


An often overlooked phase in the Software Development Cycle is System Performance Monitoring. This phase starts during the development cycle and continues through the life of the application. Usually the simpliest form of Performance Monitoring is through Application Metrics.

There are 3 groups of metrics that we will discuss in this article these are system, support application and network metrics.

System metrics

System Metrics deal with system uptime and hardware utilization. This usually includes cpu utilization, system load, memory utilization but can also include other statistics from the operating system including file handle counts.

Application Support Metrics

Application Metrics focus on the applications installed on the servers these usually deal with the number of system transactions, response times or some other application specific measurement of how much work the system is doing.

Network Metrics

Network Metrics focus on how much data or network utilization the application is using.

We are going to focus on the first two and describe some best practices of Application Monitoring. Network Metrics are really relevant for internet facing applications.

System metrics alone don't give you the full picture they can tell you if a box is under a heavy volume of traffic but can't tell you if the system is designed efficiently for the hardware or how the system is performing under stress. However by overlaying the two metrics on top of each other we can get a really good idea of how the system as a whole is behaving.

Example 1 - CPU vs Response Time
This is a common kind of report that gives you an idea how your system is reacting to a high cpu utilization. If normally you get a response time to your request within 100ms but you can see that as the system's cpu utilization increases the responsive time is growing linearly or exponentially you can predict at what point your system becomes unusable.

Example 2 - CPU vs Response Time vs # of Transactions
We are now going to revisit the example we had previously but this time we are going to look at another metric as well the total number of transaction. There are several ways we can use this information.

1. Lets make sure that the number of transactions that we are looking at is within the planned range of transactions for the live system.

2. This will help us determine the ratio of system transactions per CPU percentage point.

3. System planning we can determine how to scale our application by looking at the number of system transactions we want to be able to handle.

4. Resource planning if our application is an end user application we can compare past years application metrics for a specific day let's say the new years and predict about what the metric would be this year. This kind of resource planning is not applicable for all applications but for some it can make accurate predictions.

Metric Monitoring Rate

One important facet of Metric Monitoring is with what frequency do you want to capture the data? Capturing the data to quickly might cause a performance issue on your box, not often enough will you will not be able to generate a full picture of what happening in the application. Find a happy medium probably somewhere between 5-15 minute intervals.

Effective monitoring of application and system metrics usually takes some up front planning however the investment in application supportability is well worth the cost. It is important to find a tool that meets your needs.

SpyGlass Monitoring has a built in metric reporting engine and generates hourly and daily summary records based on your metrics. It supports different ways to view your data from yearly averages, monthly, daily, hourly and by the minute. And most importantly the metric feature is SpyGlass Monitoring is free to use no license required.