---
title: Synthetic monitoring: SLA report
source: https://docs.newrelic.com/docs/synthetics/synthetic-monitoring/pages/synthetic-monitoring-aggregate-monitor-metrics
---

Use SLA reports to view summary performance metrics across time or multiple monitors. Compare your current performance to historical metrics with daily, weekly, and monthly reporting.

## View synthetic monitoring SLA reports [#viewing]

To view your account-wide SLA report: Go to **[one.newrelic.com > Synthetic monitoring > SLA Report](https://one.newrelic.com/synthetics-nerdlets/global-sla)**. Choose from reports aggregated by day, week, or month by selecting **Daily**, **Weekly**, or **Monthly** as appropriate.

You can also view SLA reports for individual monitors: Go to **[one.newrelic.com > Synthetic monitoring > SLA](https://one.newrelic.com/synthetics-nerdlets/global-sla)**.

![screen-synthetics-sla-report.png](https://docs.newrelic.com/images/synthetic_screenshot-full_SLA-report.webp "screen-synthetics-sla-report.png")

**[one.newrelic.com > Synthetic monitoring > SLA](https://one.newrelic.com/synthetics-nerdlets/global-sla)**: Use SLA reports to understand your monitors' performance over time.

## Understand SLA report metrics [#understanding]

Use SLA reports to view aggregated performance metrics for a single monitor, or for all your monitors from the account-wide **SLA Reports** page. SLA reports include the following metrics:

-   **Duration**: The average duration across all monitor results.
-   **Uptime**: The percentage of all monitor results that ended successfully. For example, Monitor A might check 50 times per day, and Monitor B might check 150 times per day. If Monitor A has 29 successes out of 50 and Monitor B has 148 successes out of 150, the **Uptime** would be 88.5:

    (29+148)/(50+150)=88.5

    For individual SLA reports, the uptime score only includes the selected monitor.
-   **Apdex**: The average [Apdex](https://docs.newrelic.com/docs/apm/new-relic-apm/apdex/apdex-measuring-user-satisfaction) across all monitors. Monitors have a default [Apdex T](https://docs.newrelic.com/docs/apm/new-relic-apm/getting-started/glossary#apdex_t) of 7 seconds that can be modified when creating or updating your Synthetics monitors. [Apdex F](https://docs.newrelic.com/docs/apm/new-relic-apm/getting-started/glossary#apdex_f), which defines a frustrating result, is always four times Apdex T. For more information about Apdex, see [Apdex: Measuring user satisfaction](https://docs.newrelic.com/docs/apm/new-relic-apm/apdex/apdex-measuring-user-satisfaction). To view Apdex scores for your synthetic monitors using a different Apdex T value, please use the [NRQL apdex function](https://docs.newrelic.com/docs/query-your-data/nrql-new-relic-query-language/get-started/nrql-syntax-clauses-functions/#func-apdex) and the [SyntheticCheck event](/attribute-dictionary/?event=SyntheticCheck).

    For individual SLA reports, the Apdex score only includes the selected monitor.
-   **% Satisfied**: The percentage of monitor results which complete in a ["satisfying" time](https://docs.newrelic.com/docs/apm/new-relic-apm/apdex/apdex-measuring-user-satisfaction#bullet-satisfied). A satisfying time is defined as a monitor result that completes in [Apdex T](https://docs.newrelic.com/docs/apm/new-relic-apm/getting-started/glossary#apdex_t) or less.
-   **% Toleration**: The percentage of monitor results which complete in a ["tolerable" time](https://docs.newrelic.com/docs/apm/new-relic-apm/apdex/apdex-measuring-user-satisfaction#bullet-tolerating). A tolerable time is greater than [Apdex T](https://docs.newrelic.com/docs/apm/new-relic-apm/getting-started/glossary#apdex_t), but less than [Apdex F](https://docs.newrelic.com/docs/apm/new-relic-apm/getting-started/glossary#apdex_f) (four times [Apdex T](https://docs.newrelic.com/docs/apm/new-relic-apm/getting-started/glossary#apdex_t)).
-   **% Frustrated**: The percentage of monitor results which complete in a ["frustrating" time](https://docs.newrelic.com/docs/apm/new-relic-apm/apdex/apdex-measuring-user-satisfaction#bullet-tolerating). A frustrating time is greater than [Apdex F](https://docs.newrelic.com/docs/apm/new-relic-apm/getting-started/glossary#apdex_f) (four times [Apdex T](https://docs.newrelic.com/docs/apm/new-relic-apm/getting-started/glossary#apdex_t)).

The account-wide SLA report includes all monitor types (ping, simple browser, scripted browser, and API test).

## Use page functions [#using]

SLA reports support the following features:

| **If you want to...**                           | **Do this...**                                                                                                                                                         |
| ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| View the report in Excel or an external program | Select **Download this report as .csv** to download a copy of your SLA data. Open the file in Excel, Google Drive, or another spreadsheet editor to analyze your data. |
| Change the time frame                           | Choose from daily, weekly, or monthly aggregation by selecting the appropriate tab.                                                                                    |

## Generate SLA values [#generating_sla_in_insights]

The values in the SLA report are generated from NRQL queries against the available synthetic monitoring data. You can easily recreate these values and modify the queries to meet your needs.

This query returns the average duration, the apdex, and the uptime. Substitute your values for the variables highlighted and described below.

```sql
SELECT average(duration), apdex(duration, t:), percentage(count(*), WHERE result='SUCCESS') FROM SyntheticCheck FACET timeperiod
```

| Variable     | Value                                                                                                                                                                                                                                                                                                 |
| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `t:`         | Supply the [Apdex T](https://docs.newrelic.com/docs/site/apdex-measuring-user-satisfaction#what-is) that you would like to calculate your apdex against. The duration attribute in the `SyntheticCheck` event is stored in milliseconds, so an Apdex T value of 7 seconds should be included as 7000. |
| `timeperiod` | This is the period that you would like to calculate on. For a **daily report**, facet on `dateOf(timestamp)`, for a **weekly report** facet on `weekOf(timestamp)` and for a **monthly report** facet on `monthOf(timestamp)`.                                                                        |

[NRQL queries](https://docs.newrelic.com/docs/query-your-data/nrql-new-relic-query-language/get-started/introduction-nrql-new-relics-query-language) default to querying against the last hour of data. In order to widen the scope of your data you will need to include a [`SINCE` clause](https://docs.newrelic.com/docs/insights/new-relic-insights/using-new-relic-query-language/nrql-reference#sel-since) at the end of your query.

**Example #1: Daily report for the last week**

To generate a daily report for the last week you would add `SINCE 1 week ago`:

```sql
SELECT average(duration), apdex(duration, t:7), percentage(count(*), WHERE result='SUCCESS') 
FROM SyntheticCheck FACET dateOf(timestamp) SINCE 1 week ago
```

**Example #2: Report for a particular monitor**

To scope the results to a particular monitor you can edit the below query to include a specific monitor name:

```sql
SELECT average(duration), apdex(duration, t:7), percentage(count(*), WHERE result='SUCCESS') 
FROM SyntheticCheck FACET dateOf(timestamp) WHERE monitorName = 'mymonitor1'
```

**Example #3: Report for multiple monitors**

To scope the results to a collection of monitors:

```sql
SELECT average(duration), apdex(duration, t:7), percentage(count(*), WHERE result='SUCCESS') 
FROM SyntheticCheck FACET dateOf(timestamp) WHERE monitorName IN ('mymonitor1', 'mymonitor2', 'mymonitor3')
```
