DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
Securing Your Software Supply Chain with JFrog and Azure
Register Today

Trending

  • 5 Key Concepts for MQTT Broker in Sparkplug Specification
  • Web Development Checklist
  • Deploying Smart Contract on Ethereum Blockchain
  • How To Integrate the Stripe Payment Gateway Into a React Native Application

Trending

  • 5 Key Concepts for MQTT Broker in Sparkplug Specification
  • Web Development Checklist
  • Deploying Smart Contract on Ethereum Blockchain
  • How To Integrate the Stripe Payment Gateway Into a React Native Application
  1. DZone
  2. Coding
  3. Languages
  4. 8 Key Application Performance Metrics and How to Measure Them

8 Key Application Performance Metrics and How to Measure Them

We've put together a list of 8 great tools developers can use to help them measure the performance of their application to make sure it hits the market in tip top shape.

Matt Watson user avatar by
Matt Watson
·
Jul. 06, 17 · Opinion
Like (4)
Save
Tweet
Share
17.55K Views

Join the DZone community and get the full member experience.

Join For Free

If you are trying to figure out how to measure the performance of your application, you are in the correct place. We spend a lot of time at my company, Stackify, thinking about application performance, especially about how to monitor and improve it. In this article, we cover some of our most important application performance metrics you should be tracking.

Key Application Performance Metrics

1. User Satisfaction/Apdex Scores

The application performance index, or Apdex score, has become an industry standard for tracking the relative performance of an application.

It works by specifying a goal for how long a specific web request or transaction should take.

Those transactions are then bucketed into satisfied (fast), tolerating (sluggish), too slow, and failed requests. A simple formula is then applied to provide a score from 0 to 1.

Developers Need Smart Application Metrics, Not Server Monitoring

An example of an application that allows your to measure these scores is Retrace, which automatically tracks satisfaction scores for every one of your applications and web requests. It then converts the number to a 0-100 instead of 0-1 representation to make it easier to understand.

Retrace Satisfaction Chart

Image title

2. Average Response Time

Let me start by saying that averages suck. I highly recommend using the aforementioned user satisfaction Apdex scores as a preferred way to track overall performance. That said, averages are still a useful application performance metric.

Application Performance Metrics Averages

3. Error Rates

The last thing you want your users to see are errors. Monitoring error rates is a critical application performance metric.

There are potentially 3 different ways to track application errors:

  • HTTP Error % – Number of web requests that ended in an error.
  • Logged Exceptions – Number of unhandled and logged errors from your application.
  • Thrown Exceptions – Number of all exceptions that have been thrown.

It is common to see thousands of exceptions being thrown and ignored within an application. Hidden application exceptions can cause a lot of performance problems.

4. Count of Application Instances

If your application scales up and down in the cloud, it is important to know how many server/application instances you have running. Auto-scaling can help ensure your application scales to meet demand and saves you money during off-peak times. This also creates some unique monitoring challenges.

For example, if your application automatically scales up based on CPU usage, you may never see your CPU get high. You would instead see the number of server instances get high (not to mention your hosting bill going way up!).

5. Request Rate

Understanding how much traffic your application receives will impact the success of your application. Potentially all other application performance metrics are affected by increases or decreases in traffic.

Request rates can be useful to correlate to other application performance metrics to understand the dynamics of how your application scales.

Monitoring the request rate can also be good to watch for spikes or even inactivity. If you have a busy API that suddenly gets no traffic at all, that could be a really bad thing to watch out for.

A similar, but slightly different metric, to track is the number of concurrent users. This is another interesting metric to track to see how it correlates.

6. Application and Server CPU

If the CPU usage on your server is extremely high, you can guarantee you will have application performance problems. Monitoring the CPU usage of your server and applications is a basic and critical metric.

Virtually all server and application monitoring tools can track your CPU usage and provide monitoring alerts. It is important to track them per server but also as an aggregate across all the individually deployed instances of your application.

7. Application Availability

Monitoring and measuring if your application is online and available is a key metric you should be tracking. Most companies use this as a way to measure uptime for service level agreements (SLA).

If you have a web application, the easiest way to monitor application availability is via a simple scheduled HTTP check.

Retrace can run these types of HTTP “ping” checks every minute for you. It can monitor response times, status codes, and even look for specific content on the page.

8. Garbage Collection

If your application is written in .NET, C#, or other programming languages that use garbage collection, you are probably aware of the performance problems that can arise from it.

When garbage collection occurs, it can cause your process to suspend and can use a lot of CPU.

Garbage collection metrics may not be one of the first things you think about when considering key application performance metrics. It can be a hidden performance problem that is always a good idea to keep an eye on.

For .NET, you can monitor this via the Performance Counter of “% GC Time.” Java has similar capabilities via JMX metrics. Retrace can monitor these via its application metrics capabilities.

application Metric (unit) Measure (physics) garbage collection

Published at DZone with permission of Matt Watson, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Trending

  • 5 Key Concepts for MQTT Broker in Sparkplug Specification
  • Web Development Checklist
  • Deploying Smart Contract on Ethereum Blockchain
  • How To Integrate the Stripe Payment Gateway Into a React Native Application

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com

Let's be friends: