One of the first metrics people often notice when they login to Atatus is the Apdex score. Apdex is an industry standard to measure users' satisfaction experience with the response time of web applications and services. It's a simplified Service Level Agreement (SLA) solution that helps you see how a user is satisfied with your app.
Apdex measurements
To calculate the apdex, we start by measuring how long your application takes to respond to each request. So we call response time R
and then we filter those response times to a threshold that you specify.
It converts many measurements into one number on a uniform scale varies from 0 to 1.
- 0 = no users satisfied
- 1 = all users satisfied
To define your apdex you first need to define a response time threshold T
. It calculates the ratio of satisfactory response times to unsatisfactory response times.
Apdex levels
With one threshold you can then define three sections:
- Satisfied requests have a response time that is less than or equal to that threshold value (i.e;)
(R <= T)
- Tolerated requests have a response time is greater than the threshold but less than 4 times the threshold (i.e;)
(R >T)
- Frustrated requests have a response time that is greater than the 4 times the threshold (i.e;)
R > (4 x T)
Once the threshold is defined and your requests are classified, the apdex is defined as:
Satisfied requests + (Tolerating requests /2)
Apdex = _______________________________________________
Total number of requests
For example,
- If T is 1.2 seconds and a response time completes in 0.5 seconds, then the user is satisfied.
- All responses greater than 1.2 seconds, it will dissatisfy the user.
- And if responses greater than 4.8 seconds, it will frustrate the user.
Apdex score
The Apdex score is based on the ratio value of satisfied and tolerating requests to the total requests made. Each satisfied request counts as one request, while each tolerating request counts as 1/2 a satisfied request. An apdex score scale varies from 0 to 1, with 0 as the worst possible score ( i.e., 100% of response times were frustrated), and 1 as the best possible score ( i.e., 100% of response times were satisfied).
An example of the Apdex score:
During a 1 minute period, a host handles 100 requests. The Apdex threshold T = 1.0 seconds (1000ms). This value is arbitrary and is selected by a user.
- 100 of the requests were handled within 1000ms, so they are classified as Satisfied.
- 20 of the requests were handled between 500ms and 2 seconds (2000 ms), so they are classified as Tolerating.
- The remaining 10 were not handled properly or it took longer than 2 seconds, so they are classified as Frustrated.
The resulting Apdex score is 0.5: (100 + (20/2))/200 = 0.5
.