> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://respan.ai/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://respan.ai/docs/_mcp/server.

# Monitors & notifications

A monitor watches one metric, such as error rate, cost, latency, tokens, or volume, over a rolling window. When the metric crosses your threshold, Respan sends an alert to every destination you picked. To find a sensible threshold first, look at the trend in [Metrics](/docs/documentation/features/monitoring/metrics).

## Create a monitor

#### Open Monitors

Go to **Observability** › **Monitors** and click **New monitor**, or press **C**. Respan creates an **Untitled monitor** and opens it. To rename it later, open the row's **⋯** menu and choose **Edit title & description**.

![The Monitors list with name, tags, status (Deployed, Deployed v3, or Draft), version, last update, and author for each monitor](/docs/_fern-img/6c27772bfa112d72acea74e29b5f776edd962616137f3f8942b5d21f96878bd1.webp)![The Monitors list with name, tags, status (Deployed, Deployed v3, or Draft), version, last update, and author for each monitor](/docs/_fern-img/291164d7c0305fe6e13ae3546b8625c03b6394f00f686496dec77868e0aba6ff.webp)

**Status** shows **Draft** until you deploy, and **Deployed** when the latest version is live. A version number, such as **Deployed v3**, means an older version is live and newer versions aren't deployed yet.

#### Set the trigger

Under **Trigger**, the **When** row reads as a sentence: *metric* of *source*, *operator*, *threshold*, over *window*. The example below alerts when more than 5% of gpt-5.5 spans fail in a 15-minute window.

![The monitor editor: When Error rate of spans ≥ 5% over 15m, Where Model is gpt-5.5, with Slack and email notifications, and Send test alert and Deploy in the top bar](/docs/_fern-img/dbe66acdf0580270cc8669cd30d425ca4fcd816fec2a815d267a0c8b9bd03ad0.webp)![The monitor editor: When Error rate of spans ≥ 5% over 15m, Where Model is gpt-5.5, with Slack and email notifications, and Send test alert and Deploy in the top bar](/docs/_fern-img/dffef3b05f78454470539ec6f69d13f09dd66a04879a78215cc8638f4583ff44.webp)

| Control  | Options                                                                                                                                                              |
| -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Metric   | **Count**, **Errors** (error count or error rate), **Tokens**, **Cost**, and **Latency** (total, average, or peak, depending on the metric)                          |
| Source   | **spans** or **full traces**. Cost monitors always count spans.                                                                                                      |
| Operator | **≥**, **≤**, **=**, **≠**, or **rises by** / **drops by** a percentage vs the previous window. The percentage operators don't work with peak metrics or error rate. |
| Window   | 5, 10, 15, or 30 minutes; 1, 4, or 12 hours; 1 or 7 days                                                                                                             |

Cost thresholds are in dollars, latency in seconds, and error rate in percent.

Click **+** next to **Where** to count only matching spans or traces. You can filter by **API key**, **Model**, **Provider**, **Customer ID**, **Prompt**, **Behavior**, **Error issue**, **Error type**, **Fault domain**, or a custom metadata field.

#### Choose where alerts go

Under **Notifications**, pick a channel on the **Send** row, then its destination. Click **More** to add another destination.

![A notification row's channel menu with Email, Slack, Microsoft Teams, and Webhook](/docs/_fern-img/7701f6ff271eb1928da3c4bb5c8f59a2634b1ec64c264c1a74a205c89d1dcb9f.webp)![A notification row's channel menu with Email, Slack, Microsoft Teams, and Webhook](/docs/_fern-img/bbfdeaa50ec0161f1cc19838ee892de6e9855ef3f6ebed608533603a5da789da.webp)

| Channel             | Destination                                                                                                                                  |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| **Email**           | Pick an address, or choose **Create new** to add one. **Manage** lists every saved destination.                                              |
| **Slack**           | Click **Connect Slack** the first time, then pick a channel. See [Slack](/docs/integrations/slack).                                          |
| **Microsoft Teams** | Click **Connect Microsoft Teams** the first time, then pick a team and a channel. See [Microsoft Teams](/docs/integrations/microsoft-teams). |
| **Webhook**         | Paste a URL that starts with `http://` or `https://`.                                                                                        |

The preview below the destinations shows the alert Respan sends: the value that crossed the threshold, the totals for the window, and the top users, API keys, and models behind it. Error monitors also get a short summary of what failed. You can't edit the alert text.

#### Test and deploy

Your edits save to a draft as you go. Click **Send test alert** to check that the alert reaches your destinations.

Click **Deploy** in the top bar, add an optional note in the **Deploy version** dialog, and click **Deploy**. **Deploy** stays disabled until the threshold is set and every destination is filled in.

Once deployed, the monitor checks every window and sends at most one alert per window, so a 15-minute monitor alerts at most every 15 minutes.

You can also create a monitor from a chart in [Metrics](/docs/documentation/features/monitoring/metrics), an [error group](/docs/documentation/features/pulse/errors), or a [behavior](/docs/documentation/features/pulse/behaviors). Those monitors start as drafts, so review them and deploy.

## Pause, resume, or roll back

Every deploy saves a version. Click the **versions** button in the top bar (**⇧ H**) and select a version:

* On the live version, click **Pause** to stop alerts. Click **Resume** to turn them back on.
* On an older version, click **Deploy** to make it live again.

**⇧ D** deploys, pauses, or resumes the selected version. If you edit an old version while a draft exists, Respan asks before it overwrites the draft.

## Check a monitor's runs

Switch the **Editor** dropdown to **Metrics** to see each run of the monitor over time and open the spans behind it. **JSON** shows the workflow configuration the editor generates.

Monitor webhooks send alerts. To stream every span to your own endpoint instead, use [Data webhooks](/docs/documentation/admin/webhooks).