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
  • 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"
  • 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.

Configuration:
  • Entity: Robot-shop application
    • Scope:
      • Calls in scope: Inbound calls
      • Include internal calls: false
      • Include synthetic calls: false
    • Custom filters: None
  • 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.