Analytics reports timing out

Symptom

The Analytics dashboards (Proxy Performance, Target Performance, Custom Reports, etc.) in the Edge UI timeout.

Error messages

You see the following error message when the Analytics dashboards timeout:

The report timed out: Try again with a smaller date range or a larger aggregation interval.

Possible causes

The following table lists possible causes of this issue:

Cause For
Inadequate hardware configuration Edge Private Cloud users
Large amount of Analytics data in Postgres Database Edge Private Cloud users
Insufficient time to fetch Analytics data Edge Private and Public Cloud users

Inadequate hardware configuration

Diagnosis

If any of the Edge components are under capacity (if they have less CPU, RAM, or IOPS capacity than required), then the Postgres Servers/Qpid Servers may run slowly causing Analytics dashboards to timeout.

Resolution

Ensure that all the Edge components adhere to the minimum hardware requirements as described in Hardware Requirements.

Large amount of Analytics data in Postgres Database

Diagnosis

  1. On the Postgres node, login to PostgresSQL:
    psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
    
  2. Check the duration for which the data is available in the Postgres Database using the following SQL query:
    select min(client_received_start_timestamp), max(client_received_start_timestamp) from
      analytics."orgname.envname.fact";
    
  3. Get the sizes of all the tables in the Postgres Database:
    SELECT relname as "Table",pg_size_pretty(pg_total_relation_size(relid)) As "Size",
      pg_size_pretty(pg_total_relation_size(relid) - pg_relation_size(relid)) as "External Size"
      FROM pg_catalog.pg_statio_user_tables ORDER BY pg_total_relation_size(relid) DESC;
    

Based on the output obtained in step #2 and #3, if you notice that either the duration for which the data has been stored is long (longer than your retention interval) and/or the table sizes are very large, then it indicates that you have large amounts of analytics data in the Postgres database. This could be causing the Analytics dashboards to time out.

Resolution

Prune the data that is beyond your required retention interval:

  1. Determine the retention interval, that is the duration for which you want to retain the Analytics data in the Postgres Database.

    For example, you want to retain 60 days worth of Analytics data.

  2. Run the following command to prune data for a specific organization and environment:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql pg-data-purge
        org env num_days_to_purge_back_from_current_date
    
  3. For more information, see Pruning Analytics data.

If the problem persists, then proceed to Insufficient time to fetch Analytics data.

Insufficient time to fetch Analytics data

Diagnosis

  1. Check if you are able to view the data in the Hour/Day Tab of Analytics dashboard (Proxy Performance/Target Performance).
  2. If you are able to view the data in the Hour tab alone or Hour and Day tabs, but are getting report timeout errors only when attempting to view the Week or Custom tabs, then this indicates that the volume of data that needs to be fetched from the Postgres database is very large. This could be causing the Edge UI to time out.

Resolution

The Edge UI has a default timeout of 120 seconds for fetching and displaying the Analytics data. If the volume of Analytics data to be fetched is very large, then 120 seconds may not be sufficient. Increase the Edge UI timeout value to 300 seconds by following the instructions in Set the timeout used by the Edge UI for Edge API management calls.

Reload any of the Analytics dashboard and check if you are able to view the data for all the tabs - Hour, Day, Week and Custom.

If the problem persists, contact Apigee Support.