Apdex configuration examples
Examples demonstrate how to configure and calculate Apdex scores for monitoring user satisfaction across different applications and scenarios.
Example 1: Application Apdex with custom threshold
Objective: Monitor user satisfaction for the E-commerce application by measuring the Apdex score with a threshold of 200 ms.
Configuration:
- Entity: E-commerce application
- Scope:
- Calls in scope: Inbound calls
- Include internal calls: false
- Include synthetic calls: false
- Custom filters: None
- Scope:
- Indicator:
- Threshold: 200 ms
Scenario: Over a 1-hour period, the application receives 10,000 calls with the following response times.
Apdex calculation:
- Satisfied calls (less than or equal to 200 ms): 8,500 calls
- Tolerated calls (greater than 200 ms and less than or equal to 800 ms): 1,200 calls
- Frustrated calls (greater than 800 ms): 300 calls
- Total calls: 10,000
Apdex score formula: Apdex = (Satisfied + (Tolerated / 2)) / Total
- Apdex = (8,500 + (1,200 / 2)) / 10,000
- Apdex = (8,500 + 600) / 10,000
- Apdex = 9,100 / 10,000
- Apdex score: 0.91 (Good)
Satisfaction level: Good (0.85-0.93)
Example 2: Website Apdex for HTTP requests
Objective: Monitor user satisfaction for HTTP requests to the Online Banking website with a threshold of 500 ms.
Configuration:
- Entity: Online Banking website
- Beacon: HTTP requests
- Custom filters: None
- Indicator:
- Threshold: 500 ms
Scenario: During a 30-minute period, the website receives 5,000 HTTP requests.
Apdex calculation:
- Satisfied requests (less than or equal to 500 ms): 4,200 requests
- Tolerated requests (greater than 500 ms and less than or equal to 2,000 ms): 650 requests
- Frustrated requests (greater than 2,000 ms): 150 requests
- Total requests: 5,000
Apdex score:
- Apdex = (4,200 + (650 / 2)) / 5,000
- Apdex = (4,200 + 325) / 5,000
- Apdex = 4,525 / 5,000
- Apdex score: 0.905 (Good)
Satisfaction level: Good (0.85-0.93)
Example 3: Application Apdex with filtered scope
Objective: Monitor user satisfaction specifically for checkout-related calls in the Retail App application with a 150 ms threshold.
Configuration:
- Entity: Retail App application
- Scope:
- Calls in scope: All calls
- Include internal calls: false
- Include synthetic calls: false
- Custom filters: endpoint.name contains "checkout"
- Scope:
- Indicator:
- Threshold: 150 ms
Scenario: Over a 2-hour period, checkout-related calls show the following distribution.
Apdex calculation:
- Satisfied calls (less than or equal to 150 ms): 2,800 calls
- Tolerated calls (greater than 150 ms and less than or equal to 600 ms): 180 calls
- Frustrated calls (greater than 600 ms): 20 calls
- Total calls: 3,000
Apdex score:
- Apdex = (2,800 + (180 / 2)) / 3,000
- Apdex = (2,800 + 90) / 3,000
- Apdex = 2,890 / 3,000
- Apdex score: 0.963 (Excellent)
Satisfaction level: Excellent (0.94-1.00)
Example 4: Comparing Apdex across different thresholds
Objective: Understand how threshold selection impacts Apdex scores for the same application.
Scenario: The API Gateway application receives 10,000 calls with the following latency distribution:
- 0-100 ms: 6,000 calls
- 101-200 ms: 2,000 calls
- 201-400 ms: 1,200 calls
- 401-800 ms: 600 calls
- 801+ ms: 200 calls
Configuration 1: Threshold = 100 ms
- Satisfied (less than or equal to 100 ms): 6,000
- Tolerated (101-400 ms): 3,200
- Frustrated (greater than 400 ms): 800
- Apdex = (6,000 + 1,600) / 10,000 = 0.76 (Fair)
Configuration 2: Threshold = 200 ms
- Satisfied (less than or equal to 200 ms): 8,000
- Tolerated (201-800 ms): 1,800
- Frustrated (greater than 800 ms): 200
- Apdex = (8,000 + 900) / 10,000 = 0.89 (Good)
Configuration 3: Threshold = 400 ms
- Satisfied (less than or equal to 400 ms): 9,200
- Tolerated (401-1,600 ms): 600
- Frustrated (greater than 1,600 ms): 200
- Apdex = (9,200 + 300) / 10,000 = 0.95 (Excellent)
Analysis: This example demonstrates the critical importance of setting appropriate thresholds based on the following factors:
- Application type and user expectations
- Business requirements
- Technical capabilities
- Industry standards
Understanding Apdex satisfaction levels
The Apdex score ranges from 0 to 1, with the following satisfaction levels:
| Score range | Level | Color | Description |
|---|---|---|---|
| 0.94-1.00 | Excellent | Dark green | Users are very satisfied with performance |
| 0.85-0.93 | Good | Light green | Users are generally satisfied |
| 0.70-0.84 | Fair | Yellow | Performance is acceptable but can be improved |
| 0.50-0.69 | Poor | Orange | Users are experiencing frustration |
| 0.00-0.49 | Unacceptable | Red | Performance is severely impacting user experience |
Troubleshooting Apdex configurations
The following suggestions can help you resolve commonly occurring problems with Apdex configurations:
Problem: Apdex score is consistently Excellent (0.94+) with no variation.
Solution: Your threshold might be too lenient. Review the actual latency distribution and consider lowering the threshold to better differentiate performance levels.
Problem: Apdex score is consistently Poor or Unacceptable (less than 0.70).
Solution: Your threshold might be too aggressive for your application's capabilities. Review the latency distribution and consider the following actions:
- Increase the threshold to match realistic performance expectations.
- Investigate performance issues if the threshold is appropriate.
- Optimize the application to meet the desired threshold.
Problem: Apdex score shows high variability throughout the day.
Solution: This variability is often normal and reflects varying load patterns. Consider the following actions:
- Create separate Apdex configurations for peak and off-peak hours.
- Investigate if variability exceeds expected patterns.
- Implement auto-scaling to maintain consistent performance.
Problem: No data is being collected for the Apdex configuration.
Solution: Verify the following conditions:
- The selected application or website is receiving traffic.
- Custom filters are not too restrictive.
- The entity still exists and is properly configured.
Problem: Apdex score does not match perceived user experience.
Solution: Consider the following actions:
- Review the threshold to ensure it aligns with user expectations.
- Check if filters are excluding important traffic segments.
- Verify that the scope includes all relevant calls.
- Consider creating multiple Apdex configurations for different user segments.