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
Example 5: Apdex with team associations
Objective: Assign the Apdex configuration to one or more teams that are associated with the user. These team associations are then utilized to enforce access restrictions.
- Entity: Robot-shop application
- Scope:
- Calls in scope: Inbound calls
- Include internal calls: false
- Include synthetic calls: false
- Custom filters: None
- Scope:
- Indicator:
- Threshold: 100 ms
- Details:
- Name: Checkout Apdex
- Tags (optional): Checkout
- Teams: Team 1, Team 2
Scenario: The user creates an Apdex configuration that is assigned to Team 1 and Team 2. The corresponding team labels are visible in the Apdex table and on the configuration page. Only members of the associated teams can view the Apdex configuration.
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 the Apdex configurations:
Problem: The 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 required threshold.
Problem: The 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 that it aligns with user expectations.
- Check whether filters are excluding important traffic segments.
- Verify that the scope includes all relevant calls.
- Consider creating multiple Apdex configurations for different user segments.