---
title: View application performance analysis reports
source: https://docs.newrelic.com/docs/apm/reports/performance-reports
---

Our performance analysis reports provide simple and pre-defined views of your application's health and performance. Choose any report below to learn more:

**Background jobs analysis**

The **Background jobs analysis** report helps you analyze the performance of jobs and other [non-web transactions](https://docs.newrelic.com/docs/apm/transactions/intro-transactions/monitor-background-processes-other-non-web-transactions) running in production that use frameworks instrumented by New Relic, such as `DelayedJob` and `Resque`. The report shows comparison information from the past 24 hours back to the past 7 days, including the amount of time spent in throughput (requests per minute or **rpm**), total time spent in the job, and average time to execute it.

## View report in UI [#procedures]

To view the **Background jobs analysis** report for your app: Go to **[one.newrelic.com > All capabilities](https://one.newrelic.com/all-capabilities) > APM & services > (select an app) > Reports > Performance > Non-web transactions** tab. The default report compares the last 24 hours with the previous 24-hour period, 7 days ago, and averages over the last 7 days.

| **If you want to...**                   | **Do this**                                                                                                                                                |
| --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Change the amount of detail shown       | Select or clear the time period checkbox options.                                                                                                          |
| Limit the transactions that appear      | Use the **Filter** text box.                                                                                                                               |
| Change the sort order                   | Select one of the available options from the **Sort by** dropdown menu.                                                                                    |
| Select what data appears as a bar chart | Select a **Plotting** option.                                                                                                                              |
| View transaction details                | Select the transaction's title to go directly to the APM [**Transactions** page](https://docs.newrelic.com/docs/applications-menu/transactions-dashboard). |

**Capacity analysis**

APM's capacity analysis report shows how many instances of your app are running and how busy they are. This information is useful to analyze whether your app has enough instances deployed to support request loads. You can then use this information to fine-tune your configuration for optimal performance.

The capacity analysis report is only available for [Python](#agent-capacity-analysis) and Ruby language agents.

## View the capacity analysis report [#procedures]

To view the capacity analysis report for your app:

1.  Go to **[one.newrelic.com > All capabilities](https://one.newrelic.com/all-capabilities) > APM & services > (select an app) > Reports > Capacity**.
2.  Use any of New Relic's standard [page functions](https://docs.newrelic.com/docs/accounts-partnerships/education/getting-started-new-relic/standard-dashboard-features) to drill down into detailed information.

    ![Capacity analysis report](https://docs.newrelic.com/images/apm_screenshot-crop_capacity-reports.webp "Capacity report.png")

    The report includes three charts.

    | **Capacity chart**            | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
    | ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | App instance busy             | This chart shows how busy are your application's instances as the percentage of time to process requests. This includes the average, minimum, and maximum percentages for any time period on the chart. Use this information to determine if you have the right number of instances for your application. As application utilization approaches 100%, your application needs more instances to handle incoming requests.                                        |
    | App instance restarts by host | This chart shows the number of instance restarts for each time interval. Use this information to determine if your application instances are restarting too frequently. To isolate activity to a specific host, select other hosts' titles on the legend below the chart to hide or return them to the chart. OR: Select your choice from the **Hosts** list on the APM [Summary](https://docs.newrelic.com/docs/applications-menu/applications-overview) page. |
    | App instance analysis         | This chart shows the total number of instances running, along with the concurrent instance load. The concurrent instance load is the number of fully busy instances that would be needed to handle the load on the app. New Relic bases this on the average app instances value from the **App instance busy** chart, multiplied by the number of instances you have running.                                                                                   |

    ## Python single or multi-threaded apps [#agent-capacity-analysis]

    For the Python agent, capacity analysis reporting only works for traditional single or multi-threaded applications. This is because the way New Relic calculates a system load does not translate to co-routine based systems.

    When using a traditional single or multi-threaded application, the metric information generated by the Python agent is captured and reported only if the optional C extension component can be compiled and installed. When you use co-routine based systems such as gevent or eventlet in conjunction with a WSGI server, the capacity analysis report will not show any data except for agent restarts.

**Database analysis**

APM's database analysis report allows you to analyze your application's performance from the database viewpoint, from the past 24 hours back to the past seven days. It shows comparison information for transactions, including the amount of time spent in throughput (operation requests per minute or **rpm**), total time spent in the operation, and average time to execute it.

## View the database analysis report [#procedures]

To view the database analysis report for your app: Go to **[one.newrelic.com > All capabilities](https://one.newrelic.com/all-capabilities) > APM & services > (select an app) > Reports > Performance > Databases** tab. The default report compares the last 24 hours with the previous 24-hour period, 7 days ago, and averages over the last 7 days.

| **If you want to...**                   | **Do this**                                                                                                                                                      |
| --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Change the amount of detail shown       | Select or clear the time period checkbox options.                                                                                                                |
| Limit the transactions that appear      | Type the value in the **Filter** text box; for example, to show only transactions for `Model operations` that contain the value **User**.                        |
| Change the sort order                   | Select one of the available options from the **Sort by** dropdown menu.                                                                                          |
| Select what data appears as a bar chart | Select a **Plotting** option.                                                                                                                                    |
| View transaction details                | Select the transaction's title to go directly to APM's [Database and slow queries page](https://docs.newrelic.com/docs/applications-menu/database-and-slow-sql). |

**Scalability analysis**

APM's scalability analysis report shows response time, database time, and CPU time in relation to the application load. This helps you evaluate performance and identify potential hardware requirements as your app grows.

## View the Scalability analysis report [#procedures]

To view the report for your app:

Go to **[one.newrelic.com > All capabilities](https://one.newrelic.com/all-capabilities) > APM & services > (select an app) > Reports > Scalability**.

The Scalability analysis report includes three tabs: Response time, Database, and APM CPU. Each tab contains a billboard and a chart and represents a different aspect of performance.

![Scalability analysis report](https://docs.newrelic.com/images/apm_screenshot-crop_scalability-report.webp "Scalability analysis report.webp")

| **Tab**       | **Description**                                                                                                                                                                                                                                                                                                                |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Response time | The chart in this tab plots your application's response time, versus application load in terms of requests per minute. For an application that is scaling well, the response time should be at or close to horizontal. The billboard shows the average, minimum, and maximum response times, and average throughput.           |
| Database      | The chart in this tab plots your application's database time versus application load in terms of requests per minute. For an application that is scaling well, you should see a roughly linear pattern in the plotted points. The billboard shows the average, minimum, and maximum database times, and average throughput.    |
| APM CPU       | The chart in this tab plots your application's CPU time per request, versus application load in terms of requests per minute. For an application that is scaling well, you should see a roughly linear pattern in the plotted points. The billboard shows the average, minimum, and maximum CPU times, and average throughput. |

The charts feature two lines: the primary line, which connects the data points, and the secondary line, which is labeled as "Smoothed" and shows a smoothed version of the primary line. The secondary line helps visualize the application's performance without being concerned about unexpected fluctuations observed in the primary line.

These charts are constructed a bit differently from other New Relic charts and do not have the default chart actions commonly available.

## Select options for time periods [#time]

The Scalability report has a [time picker](https://docs.newrelic.com/docs/query-your-data/explore-query-data/dashboards/manage-your-dashboard/#dash-time-picker) that allows you to view data over different time periods. The minimum recommended time period is 30 minutes because when analyzing an application’s scalability, lower time ranges don’t give a full picture. The time picker uses the default value of the last 30 minutes.

## View data for individual instances [#instances]

Each tab includes an instance picker which allows you to select a specific instance and the chart and the billboard will filter to the data of that instance.

**Web transaction analysis**

APM's web transactions analysis report provides comparison information for web transactions, including the amount of time spent in throughput (requests per minute or **rpm**), total time in the web transaction, average time to execute it, and [Apdex](https://docs.newrelic.com/docs/site/apdex-measuring-user-satisfaction) score. You can compare the past 24 hours of data with the previous 24 hour period, 7 days ago, and averages over the last 7 days.

Use this information to analyze which web transactions consume the most time, have the most number of calls, have the greatest number of standard deviations, and more. This information can help you identify where to fine-tune your app.

## View the Web transactions analysis report [#procedures]

To view the web transactions analysis report for your app: Go to **[one.newrelic.com > All capabilities](https://one.newrelic.com/all-capabilities) > APM & services > (select an app) > Reports > Performance > Web transactions** tab.

The default report compares the last 24 hours with the previous 24-hour period, 7 days ago, and averages over the last 7 days. Apdex entries followed by an asterisk (\*) indicate that more than one Apdex threshold was set for the given time period.

| **If you want to...**                   | **Do this**                                                                                                                                                    |
| --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Change the amount of detail shown       | Select or clear the time period checkbox options.                                                                                                              |
| Limit the transactions that appear      | Use the **Filter** text box; for example, to report only on transactions that include `user` in the name.                                                      |
| Change the sort order                   | Select one of the available options from the **Sort by** dropdown menu.                                                                                        |
| Select what data appears as a bar chart | Select a **Plotting** option.                                                                                                                                  |
| View web transaction details            | Select the web transaction's title to go directly to the APM [**Transactions** page](https://docs.newrelic.com/docs/applications-menu/transactions-dashboard). |

**Weekly performance**

Every Monday, New Relic sends a weekly performance report via email to any of your account's users who have [selected to receive this report](https://docs.newrelic.com/docs/subscriptions/account-email-settings). The email report contains summary performance metrics for the past week for a select group of your applications. The weekly performance report is different than APM's [Service Level Agreement (SLA) reports](https://docs.newrelic.com/docs/apm/reports/service-level-agreements/apm-sla-reports).

> #### ⚠️ IMPORTANT
>
> At this time, weekly performance reports are not available for accounts in the EU region.

## View example report details [#report_detais]

To see an example of a weekly performance report for your account:

1.  From the [user menu](https://docs.newrelic.com/docs/accounts/accounts-billing/general-account-settings/intro-account-settings), select **User preferences**.
2.  Go down to **Weekly summary emails** and select **See a sample email**.

    ![Weekly performance report](https://docs.newrelic.com/images/apm_screenshot-crop_weekly-perf-report-apm.webp "Weekly performance report.png")

    The performance report is split into sections:

    | **Section**     | **Description**                                                                                                                                                                                                                                                                                                                                             |
    | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | Featured app    | This provides both [throughput pattern and performance metrics](https://docs.newrelic.com/docs/apm/applications-menu/monitoring/apm-overview-page#overview_charts) for the application with the highest call count in your account. Applications with linked browser monitoring will be prioritized over those that don't, even if the call count is lower. |
    | All apps report | This section provides important performance metrics for the 20 applications in your account with the highest call count. Metrics in this list include uptime, [Apdex](https://docs.newrelic.com/docs/apm/new-relic-apm/apdex/apdex-measuring-user-satisfaction), load time, and throughput.                                                                 |
    | Recent events   | This section contains any recent alerts, deployments you have made to your app, or other events that are recorded for applications in your account.                                                                                                                                                                                                         |

    ## Query your weekly report metrics with NRQL [#nrql-queries]

    These are the queries New Relic uses to generate the numbers in your weekly performance report email. They rely on APM timeslice data exposed through `newrelic.timeslice.value` on the `Metric` event, so you can run them in the [query builder](https://docs.newrelic.com/docs/query-your-data/explore-query-data/query-builder/introduction-query-builder) or pin them to a [dashboard](https://docs.newrelic.com/docs/query-your-data/explore-query-data/dashboards/introduction-dashboards) to reproduce any value in the email.

    Replace the variables with values for your application before running a query:

    | **Variable**                 | **Description**                                                                                                                                                                                                                                 |
    | ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | `<app_name>`                 | The `appName` of the APM application.                                                                                                                                                                                                           |
    | `<APP_GUID>`                 | The `entity.guid` of the APM application.                                                                                                                                                                                                       |
    | `<monday>` / `<next_monday>` | A pair of ISO 8601 timestamps marking the start and end of the reporting week. The weekly email uses Monday `00:00` UTC as the boundary. For example, `'2026-04-20T00:00:00Z'` for `<monday>` and `'2026-04-27T00:00:00Z'` for `<next_monday>`. |
    | `{N}`                        | The number of weeks to include in a time-series query. For example, `8` for the last 8 weeks.                                                                                                                                                   |

    > #### 💡 TIP
    >
    > Two constants appear in several queries: `10080` is the number of minutes in a week (used to convert summed timeslice counts into a per-minute throughput average), and `604800` is the number of seconds in a week (used in the CPU % calculation).

    ### App server metrics [#nrql-app-server]

    Each query in this group reports a single weekly value for one application, using `SINCE '<monday>' UNTIL '<next_monday>'` to scope the week and `appName = '<app_name>'` to select the app.

    **Requests (millions):** Total HTTP requests handled during the week, expressed in millions.

    ```sql
    SELECT sum(newrelic.timeslice.value[count]) / 1e6 AS 'Requests millions'
    FROM Metric
    WHERE metricTimesliceName = 'HttpDispatcher' AND appName = '<app_name>'
    SINCE '<monday>' UNTIL '<next_monday>'
    ```

    **Response time (ms):** Average response time in milliseconds across all HTTP transactions.

    ```sql
    SELECT sum(newrelic.timeslice.value) / sum(newrelic.timeslice.value[count]) * 1000 AS 'Resp time ms'
    FROM Metric
    WHERE metricTimesliceName = 'HttpDispatcher' AND appName = '<app_name>'
    SINCE '<monday>' UNTIL '<next_monday>'
    ```

    **Throughput (RPM):** Average requests per minute over the week.

    ```sql
    SELECT sum(newrelic.timeslice.value[count]) / 10080 AS 'Throughput RPM'
    FROM Metric
    WHERE metricTimesliceName = 'HttpDispatcher' AND appName = '<app_name>'
    SINCE '<monday>' UNTIL '<next_monday>'
    ```

    **Error rate (%):** Errors as a percentage of all web and non-web transactions.

    ```sql
    SELECT filter(sum(newrelic.timeslice.value[count]), WHERE metricTimesliceName = 'Errors/all') /
      (filter(sum(newrelic.timeslice.value[count]), WHERE metricTimesliceName = 'HttpDispatcher') +
       filter(sum(newrelic.timeslice.value[count]), WHERE metricTimesliceName = 'OtherTransaction/all')) * 100 AS 'Error rate'
    FROM Metric
    WHERE metricTimesliceName IN ('Errors/all', 'HttpDispatcher', 'OtherTransaction/all')
      AND appName = '<app_name>'
    SINCE '<monday>' UNTIL '<next_monday>'
    ```

    **Apdex:** The weekly [Apdex](https://docs.newrelic.com/docs/apm/new-relic-apm/apdex/apdex-measuring-user-satisfaction) score for the application.

    ```sql
    SELECT (sum(newrelic.timeslice.value[count]) + sum(newrelic.timeslice.value[total]) / 2.0) /
      (sum(newrelic.timeslice.value[count]) + sum(newrelic.timeslice.value[total]) + sum(newrelic.timeslice.value[exclusiveTotal])) AS 'Apdex'
    FROM Metric
    WHERE metricTimesliceName = 'Apdex' AND appName = '<app_name>'
    SINCE '<monday>' UNTIL '<next_monday>'
    ```

    **% Satisfied / % Tolerating / % Frustrated:** The three Apdex components as percentages. This complements the single Apdex score above by breaking it into its underlying request categories.

    ```sql
    SELECT sum(newrelic.timeslice.value[count]) /
      (sum(newrelic.timeslice.value[count]) + sum(newrelic.timeslice.value[total]) + sum(newrelic.timeslice.value[exclusiveTotal])) * 100 AS '% Satisfied',
      sum(newrelic.timeslice.value[total]) /
      (sum(newrelic.timeslice.value[count]) + sum(newrelic.timeslice.value[total]) + sum(newrelic.timeslice.value[exclusiveTotal])) * 100 AS '% Tolerating',
      sum(newrelic.timeslice.value[exclusiveTotal]) /
      (sum(newrelic.timeslice.value[count]) + sum(newrelic.timeslice.value[total]) + sum(newrelic.timeslice.value[exclusiveTotal])) * 100 AS '% Frustrated'
    FROM Metric
    WHERE metricTimesliceName = 'Apdex' AND appName = '<app_name>'
    SINCE '<monday>' UNTIL '<next_monday>'
    ```

    **CPU (%):** Average CPU user time for the week, expressed as a percentage.

    ```sql
    SELECT sum(newrelic.timeslice.value) / 604800 * 100 AS 'CPU %'
    FROM Metric
    WHERE metricTimesliceName = 'CPU/User Time' AND appName = '<app_name>'
    SINCE '<monday>' UNTIL '<next_monday>'
    ```

    **Memory (MB):** Average physical memory use in megabytes.

    ```sql
    SELECT average(newrelic.timeslice.value) AS 'Memory MB'
    FROM Metric
    WHERE metricTimesliceName = 'Memory/Physical' AND appName = '<app_name>'
    SINCE '<monday>' UNTIL '<next_monday>'
    ```

    **DB (%):** Time spent in web datastore calls as a percentage of total web transaction time.

    ```sql
    SELECT filter(sum(newrelic.timeslice.value), WHERE metricTimesliceName = 'Datastore/allWeb') /
      filter(sum(newrelic.timeslice.value), WHERE metricTimesliceName = 'HttpDispatcher') * 100 AS 'DB %'
    FROM Metric
    WHERE metricTimesliceName IN ('Datastore/allWeb', 'HttpDispatcher') AND appName = '<app_name>'
    SINCE '<monday>' UNTIL '<next_monday>'
    ```

    > #### 💡 NOTE
    >
    > Database percentage represents the ratio of database operation time to total web transaction response time. Formula: (database time / total response time) × 100. Percentages exceeding 100% indicate parallel or asynchronous database call execution.

    ### Traffic pattern [#nrql-traffic]

    These queries drive the two-month daily sparkline shown at the top of the report. They use `TIMESERIES 1 day` over `SINCE 2 months ago`. There are two variants depending on how the app is instrumented: app-server apps are keyed off `HttpDispatcher` timeslices (rpm), and browser-instrumented apps use `EndUser` timeslices (ppm).

    **Throughput — app-server apps (rpm):** Daily requests-per-minute rate for apps reporting `HttpDispatcher` timeslices.

    ```sql
    SELECT rate(sum(newrelic.timeslice.value), 1 minute) AS 'Throughput rpm'
    FROM Metric
    WHERE metricTimesliceName = 'HttpDispatcher' AND entity.guid = '<APP_GUID>'
    SINCE 2 months ago TIMESERIES 1 day
    ```

    **Throughput — browser-instrumented apps (ppm):** Daily page-loads-per-minute rate for apps reporting `EndUser` timeslices.

    ```sql
    SELECT rate(sum(newrelic.timeslice.value), 1 minute) AS 'Throughput ppm'
    FROM Metric
    WHERE metricTimesliceName = 'EndUser' AND entity.guid = '<APP_GUID>'
    SINCE 2 months ago TIMESERIES 1 day
    ```

    ### End-user browser metrics [#nrql-enduser]

    These queries power the browser section of the report for applications with [browser monitoring](https://docs.newrelic.com/docs/browser/browser-monitoring/getting-started/introduction-browser-monitoring) attached. They return a point per week over the most recent `{N}` weeks using `TIMESERIES 1 week`.

    **End-user response time (s):** Average page load time from the browser agent.

    ```sql
    SELECT average(newrelic.timeslice.value) AS 'End User Resp Time (s)'
    FROM Metric
    WHERE metricTimesliceName = 'EndUser' AND entity.guid = '<APP_GUID>'
    SINCE {N} weeks ago TIMESERIES 1 week
    ```

    **End-user Apdex (page load):** Apdex score for end-user page loads.

    ```sql
    SELECT apdex(newrelic.timeslice.value) AS 'End User Apdex'
    FROM Metric
    WHERE metricTimesliceName = 'EndUser/Apdex' AND entity.guid = '<APP_GUID>'
    SINCE {N} weeks ago TIMESERIES 1 week
    ```

    ## Selected applications [#featured_apps]

    New Relic selects the top 20 apps by call count that meet these criteria:

-   The app must have at least 25 requests per minute (rpm) throughput.
-   The app must include web transactions.

    Applications with linked browser monitoring will be prioritized over those that don't, even if the call count is lower.

    ## Opt in or out of report emails [#opting_out]

    To manage your weekly performance report emails, go to **[one.newrelic.com](https://one.newrelic.com/all-capabilities)**, click the [user menu](https://docs.newrelic.com/docs/accounts/accounts-billing/general-account-settings/intro-account-settings), and select **User preferences**. Note that you opt in/out separately for every New Relic account you have access to.

## Analyze your data [#insights]

APM includes several reports in the user interface. To gather, analyze, and visualize data about your software in other formats, use [query builder](https://docs.newrelic.com/docs/query-your-data/explore-query-data/query-builder/introduction-query-builder).
