From 7ba7f5f515a19ae734747e697720db07415b6ae9 Mon Sep 17 00:00:00 2001 From: Nick Meisenheimer Date: Sat, 15 Aug 2026 00:25:15 -0400 Subject: [PATCH 01/13] docs(alerts): move alert creation to its own page Split the per-option detail out of the Alerts index into a dedicated Creating an Alert page, and document the new "alert on all issues in all projects" source option. - Add docs/product/monitors-and-alerts/alerts/create-alerts.mdx covering sources, environment, triggers, filters, actions, and throttling - Trim the Alerts index to a high-level summary plus permissions - Point legacy /product/alerts/create-alerts/ redirects at the new page - Update inbound links from the Monitors and uptime pages Co-Authored-By: Claude Opus 5 (1M context) --- .../alerts/create-alerts.mdx | 169 ++++++++++++++++++ .../monitors-and-alerts/alerts/index.mdx | 39 ++-- docs/product/monitors-and-alerts/index.mdx | 2 +- .../monitors/crons/job-monitoring.mdx | 2 +- .../monitors/uptime-monitoring/index.mdx | 2 +- .../uptime-monitoring/troubleshooting.mdx | 2 +- redirects.js | 6 +- 7 files changed, 190 insertions(+), 32 deletions(-) create mode 100644 docs/product/monitors-and-alerts/alerts/create-alerts.mdx diff --git a/docs/product/monitors-and-alerts/alerts/create-alerts.mdx b/docs/product/monitors-and-alerts/alerts/create-alerts.mdx new file mode 100644 index 0000000000000..812ce2878b907 --- /dev/null +++ b/docs/product/monitors-and-alerts/alerts/create-alerts.mdx @@ -0,0 +1,169 @@ +--- +title: Creating an Alert +sidebar_order: 10 +description: >- + Learn about every option available when you create an Alert, including + sources, environments, triggers, filters, actions, and throttling. +--- + +Alerts let you configure how you want to learn about issue activity like creation, resolution, or when Seer completes tasks. This page walks through each step of the **New Alert** form and the options available in each one. + + + +To get started, go to **Monitors > [Alerts](https://sentry.io/monitors/alerts)** and click **Create Alert**. + +## Permissions + +Alerts are an organization-level feature. Owners, Managers, Admins (and Team Admins) can always create and edit Alerts. Members and Team Contributors can too, as long as **Let Members Create and Edit Monitors and Alerts** is enabled in your [organization settings](https://sentry.io/settings/organization/), which it is by default. Learn more about [roles and permissions](/organization/membership/). + + + Alerts scoped to [all projects](#alert-on-all-projects) can only be managed by Owners and Managers. + + +## Step 1: Select a Source + +The **Source** determines where issues that can trigger an Alert come from: + +- **Alert on all issues in selected projects**: Pick one or more projects. The Alert evaluates every issue in those projects, no matter which Monitor created it. +- **Alert on specific monitors**: Connect individual [Monitors](/product/monitors-and-alerts/monitors/) so the Alert only evaluates issues those Monitors create. Click **Connect Monitors** to search all Monitors, filter by project, and select the ones you want. Use **Edit Monitors** to change your selection later, or **Create New Monitor** to set up a new one. +- **Alert on all issues in all projects**: The Alert evaluates every issue in the organization. See [Alert on All Projects](#alert-on-all-projects) below. + +Pick selected projects when you want coverage for a single service, specific Monitors when the Alert only makes sense for a particular set of Monitors such as a single cron job or set of uptime checks, and all projects when the Alert should apply organization-wide. + +### Alert on All Projects + +Selecting **Alert on all issues in all projects** scopes the Alert to your whole organization instead of a set of projects. Sentry evaluates it against every issue in the organization and issues from projects created after you save the Alert are covered automatically. + +This is the best choice for teams with simple alerting needs like feed channels in Slack or high level monitoring of newly detected issues. + +## Step 2: Filter Issues by Environment + +Select the environment the Alert evaluates. This filters on the `environment` tag in your events, so you can send production alerts somewhere different from staging or QA alerts. + +The dropdown defaults to All Environments, which applies no environment filter. Otherwise you can select an environment from the list of distinct environment tags across your projects. It's possible also possible to filter environment tag values in the IF section of the Alert Builder, consider this option for complex routing configurations. + +## Step 3: Build the Alert + +The **Alert Builder** has three sections: **When** (triggers), **If** (filters), and **Then** (actions). + +### When: Triggers + +Triggers are the issue events that start an Alert evaluation. Triggers use `ANY` logic — the Alert evaluates as soon as one of them happens — and each trigger can only be added once. + +| Trigger | Runs when | +| -------------------------------------------------- | ------------------------------------------------------------------------------------------------- | +| **A new issue is created** | An issue is created. | +| **An issue escalates** | An event on an issue caused it to move from a lower priority to a higher one, or causes it to be [flagged as escalating](/product/issues/states-triage/escalating-issues). | +| **A resolved issue regresses** | An resolved issue regresses when it's seen again (cannot be triggered by manually unresolving). | +| **An issue is resolved** | An issue is marked as resolved. | +| **An event is captured** | Any event is captured for an issue, including events on existing issues. | +| **Seer runs on an issue and reaches the stage...** | [Seer](/product/ai-in-sentry/seer/) finishes one of the stages you select. | + +For the Seer trigger, select one or more stages: **Root cause analysis completed**, **Planning completed**, **Coding completed**, or **Pull request created**. + +Learn more about issue lifecycle in [Issue States and Triage](/product/issues/states-triage/) and the [Seer Autofix process](/product/ai-in-sentry/seer/autofix/#how-issue-autofix-works). + +### If: Filters + +Filters decide which actions will run when issue triggers occur. + +An Alert can have many **If** blocks and each **If** block evaluates filters matching with `all`, `any`, or `none` logic: + +- **all**: every filter must match. +- **any**: at least one filter must match. +- **none**: no filter may match. + +If you don't add any filters, every issue trigger matches (the block reads **Any event**). + +#### Filter by Issue Attributes + + + +Event attribute, release, and frequency filters only apply to occurrence-based monitors (errors, N+1, and replay), and only to the **A new issue is created** and **An event is captured** triggers. The builder marks these filters with a warning icon. + + + +| Filter | Options | +| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Issue age** | The issue is **older than** or **newer than** a value in **minutes**, **hours**, **days**, or **weeks**. | +| **Issue assignment** | The issue is assigned to **No One**, a **Team**, or a organization **Member**. | +| **Issue frequency** | The issue has happened at least a set number of times. | +| **Issue category** | The issue category is **equal to** or **not equal to** one of `error`, `feedback`, `outage`, `metric`, `db_query`, `http_client`, `frontend`, or `mobile`. | +| **Issue type** | The issue type is **equal to** or **not equal to** a specific issue type, which is even more granular than category. | +| **Issue priority** | The current [issue priority](/product/issues/issue-priority/) is greater than or equal to **high**, **medium**, or **low**. | +| **De-escalation** | The issue priority de-escalates (ex. high -> medium, or medium -> low). | + +#### Filter by Frequency + +Frequency filters compare how often sometvhing happens. Each one supports two comparison modes: + +- **more than...**: an absolute count in an interval — **in 5 minutes**, **in 15 minutes**, **in one hour**, **in one day**, **in one week**, or **in 30 days**. +- **relatively higher than...**: a percentage increase over a past interval — **5 minutes ago**, **15 minutes ago**, **one hour ago**, **one day ago**, **one week ago**, or **30 days ago**. + +| Filter | Description | +| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **Number of events** | How many events the issue has received. | +| **Number of users affected** | How many unique users the issue has affected. | +| **Percentage of sessions affected** | Compares the issue's event count against an estimate of project [sessions](/product/releases/health/#sessions) in the selected interval. Intervals are limited to **5 minutes**, **10 minutes**, **30 minutes**, and **one hour**. | + +Frequency filters also accept **sub-filters**, which scope the count to a subset of events. Add one or more sub-filters in the form `[Attribute or Tag] [is / is not] [value]`. Multiple sub-filters are combined with `and`. + +#### Filter by Event Attributes + +| Filter | Options | +| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Event attribute** | The event's [attribute](/concepts/search/searchable-properties/) matches a value. Attributes include `message`, `platform`, `environment`, `type`, `error.handled`, `error.unhandled`, `error.main_thread`, `exception.type`, `exception.value`, `user.id`, `user.email`, `user.username`, `user.ip_address`, `http.method`, `http.url`, `http.status_code`, `sdk.name`, `stacktrace.code`, `stacktrace.module`, `stacktrace.filename`, `stacktrace.abs_path`, `stacktrace.package`, `unreal.crash_type`, `app.in_foreground`, `os.distribution_name`, and `os.distribution_version`. | +| **Tagged event** | The event's tag matches a value. | +| **Event level** | The event's level **equals**, is **greater than or equal**, or is **less than or equal** to `fatal`, `error`, `warning`, `info`, `debug`, or `sampling`. | +| **Latest release** | The issue is in the latest [release](/product/releases/). This filter has no additional options. | +| **Release age** | The **oldest** or **newest** adopted release associated with the event's issue is **older than** or **newer than** the latest adopted release in a given environment. | + +Event attribute and tag filters support these match types: **contains**, **equals**, **starts with**, **ends with**, **does not contain**, **does not equal**, **does not start with**, **does not end with**, **is set**, **is not set**, **is one of**, and **is not one of**. + +### Then: Actions + +Actions are what Sentry does when the triggers and filters match. Available actions depend on the [integrations](/integrations/) installed in your organization. + +#### Notifications + +- **Notify on preferred channel**: Notify **Suggested Assignees**, a **Team**, or a **Member**, and Sentry delivers via each recipient's [notification settings](/product/notifications/notification-settings/). Suggested Assignees include current assignees, issue owners from [ownership rules](/product/issues/ownership-rules/), and authors of [suspect commits](/product/issues/suspect-commits/). When no suggested assignee is found, choose a fallback: **Recently Active Members** (default), **All Project Members**, or **No One**. +- **[Slack](/integrations/notification-incidents/slack/)**: Select the workspace and channel. You can also add a channel or user ID to avoid [rate limiting](/integrations/notification-incidents/slack/#rate-limiting-error), and optionally show **tags** (for example, `environment,my_tag`) and **notes** (for example, `@jane, @on-call-team`) in the message. +- **[Discord](/integrations/notification-incidents/discord/)**: Select the server and enter a channel ID or URL — a channel name won't work. You can optionally show **tags** in the message. +- **[MS Teams](/integrations/notification-incidents/msteams/)**: Select the team and channel. +- **[PagerDuty](/integrations/notification-incidents/pagerduty/)**: Select the service and the **severity** to send. +- **[Opsgenie](/integrations/notification-incidents/opsgenie/)**: Select the team and the **priority** to send. +- **Send a notification via an integration**: Take action via a [third party integration](/integrations/third-party-integrations/) that supports Alert actions or trigger a custom webhook. + +#### Ticket Creation + +Create a work item in an issue tracker, and use **these settings** on the action to configure fields such as project, issue type, assignee, and labels: + +- **[Jira](/integrations/issue-tracking/jira/)** and **Jira Server** +- **[GitHub](/integrations/source-code-mgmt/github/)** and **GitHub Enterprise** +- **[Azure DevOps](/integrations/source-code-mgmt/azure-devops/)** + +#### Other Integrations + +Take action via a [third party integration](/integrations/third-party-integrations/) that supports Alert actions or to legacy integrations (plugins) configured on the project. + + + +Click **Send Test Notification** on an **If/Then** block to send a test event through that block's actions. This verifies that your integrations are wired up correctly before you save but event based triggers may behave differently. + + + +### Add Multiple If/Then Blocks + +Click **+ If/Then Block** to add another set of filters and actions to the same Alert. Every block evaluates against the same triggers, so you can route different event shapes to different places from a single Alert — for example, create a Jira ticket or Slack notification for every new issue, but only page on-call when the issue is high priority. + +## Step 4: Set Throttling + +**Throttling** (previously called the action interval) controls how often the Alert can run its actions for a given issue. If events in an issue match triggers repeatedly within the throttle window, the actions won't run again until the throttle period has elapsed. + +Options are **Get notified on every trigger** (the default), **5 minutes**, **10 minutes**, **30 minutes**, **60 minutes**, **3 hours**, **12 hours**, **24 hours**, **1 week**, and **30 days**. + +## Step 5: Name and Save + +Sentry generates a name from your configuration as you build. To change it, click the name in the header at the top of the page and enter a descriptive one, such as "Frontend high priority to #frontend-oncall". + +Click **Create Alert** to save. Sentry takes you to the Alert's details page, where you can review its history, edit it, or turn it off. Learn more in [Managing Alerts](/product/monitors-and-alerts/alerts/#managing-alerts). diff --git a/docs/product/monitors-and-alerts/alerts/index.mdx b/docs/product/monitors-and-alerts/alerts/index.mdx index aa9429874e960..3405e3c1506ff 100644 --- a/docs/product/monitors-and-alerts/alerts/index.mdx +++ b/docs/product/monitors-and-alerts/alerts/index.mdx @@ -1,6 +1,6 @@ --- title: Alerts -description: Use Alerts to notify or take action on important issues. +description: Use Alerts to notify or take action on important issues. sidebar_order: 60 og_image: /og-images/product-alerts.png --- @@ -15,29 +15,19 @@ Sentry's **Alerts** take action when issues in your organization match pre-defin ![alert-config =800x](./img/alert-details.png) -## Creating an Alert +## Creating Alerts - +You can create an Alert from **Monitors > [Alerts](https://sentry.io/monitors/alerts)**. When creating an Alert, you'll configure the issue sources, event triggers, filters, actions, and Alert throttling. -To create an Alert, go to the [Alerts](https://sentry.io/monitors/alerts) page in Sentry and click **Create Alert**. +For an in-depth walkthrough of each setting, see [Creating an Alert](/product/monitors-and-alerts/alerts/create-alerts/). -### Select Sources and Environments - -The source of an Alert can be one or more Projects, or one or more Monitors. After you choose sources, pick which **environment(s)** the alert evaluates. By default, alerts run across all environments. - -### Set Triggers - -A trigger is an action that must occur for the Alert to run. All trigger actions are issue state based. For example, you may want to send a notification to your team's Slack channel _when an issue is created_. You can select multiple triggers in a single Alert. They will run under an `ANY` condition, meaning that if any one of the triggers happen, the Alert will run. - -### Set Filters - -Filters are conditions that must be met for the Alert to run. For example, you may want to create a ticket _only for issues that are assigned to a specific team_ and _at a certain severity_. You can create multiple filters in a single Alert, and group them under either `ANY` or `ALL` conditions. For `ANY` conditions, if any one of the filters are true, the Alert will run. For `ALL` conditions, only if all of the filters are true, the Alert will run. + -### Add Actions +Alerts are an Organization-level feature. Org Owners, Org Managers, Org Admins, and Team Admins can always create and edit Alerts. Org Members and Team Contributors can too, as long as **Let Members Create and Edit Monitors and Alerts** is enabled (the default) in your [organization settings](https://sentry.io/settings/organization/). Alerts scoped to all projects are restricted to Org Owners and Org Managers. -Actions run when triggers and filters match. Depending on your integrations, actions can include chat notifications (Slack, Microsoft Teams, Discord), email, on-call tools (PagerDuty, Opsgenie), issue trackers (Jira, Azure DevOps, Linear), webhooks, and [integrations](/integrations/integration-platform/). + -**Note:** Some integrations are only available for certain sources or issue types. Check [Integrations](/integrations/) for your workspace. +Available actions depend on the [integrations](/integrations/) installed in your organization, and some integrations are only available for certain sources or issue types. ### When to Notify the Team @@ -51,12 +41,6 @@ Using Alerts with custom filters allows you to notify the team about critical is You can see a list of all your Alerts on the [Alerts](https://sentry.io/monitors/alerts) page. By default, Alerts are filtered down to your projects. - - -Alerts are an Organization-level feature. By default, all team members can create and edit Alerts. You can update this setting in [Organization Membership settings](https://sentry.io/settings/organization/). - - - By clicking on an Alert, you can view the details, edit the Alert, or turn it on or off. The details page will show a high level chart of how often the Alert has run, a list of the most recent runs, the configuration, and connected monitors. @@ -66,10 +50,15 @@ The details page will show a high level chart of how often the Alert has run, a The main goal is to create Alerts that are valuable and not too noisy. Here are some quick tips: + - Use filters to narrow down the issues that are critical for to your team to be notified about. - Select only the triggers that matter for Alerting actions. For example, you may want to create a Jira ticket any time an issue is created, but only be notified in Slack when an issue is a certain severity. -- Consider how your team works in terms of triaging. For example, do you want individual alerts routing to specific project, or service channels, or one alert to catch them all in a team channel? +- Consider how your team works in terms of triaging. For example, do you want individual alerts routing to specific project, or service channels, or one alert to catch them all in a team channel? ## Sentry Notifications Besides Alerts, Sentry sends you notifications about various things like [issue state changes](/product/issues/states-triage/), [release deploys](/product/releases/), and [quota usage](/pricing/quotas/). You can fine-tune these notifications, as well as your personal alert settings, in **User Settings > Notifications**. Learn more about notifications and adjusting their associated settings in [the full documentation](/product/notifications/). + +## Learn More + + diff --git a/docs/product/monitors-and-alerts/index.mdx b/docs/product/monitors-and-alerts/index.mdx index 67e5e2d767f3a..883d27d8e4692 100644 --- a/docs/product/monitors-and-alerts/index.mdx +++ b/docs/product/monitors-and-alerts/index.mdx @@ -14,7 +14,7 @@ Sentry separates **what you detect** from **what you do about it**: Using both Monitors and Alerts gives you a path from signal → triageable issue → team workflow, without wiring every integration by hand for every edge case. -For a concise **Issues-centric** explanation (how this shows up in your triage flow), see [Monitors and Alerts](/product/issues/monitors-and-alerts/). For **hands-on setup**, see [Creating an Alert](/product/monitors-and-alerts/alerts/#creating-an-alert). +For a concise **Issues-centric** explanation (how this shows up in your triage flow), see [Monitors and Alerts](/product/issues/monitors-and-alerts/). For **hands-on setup**, see [Creating an Alert](/product/monitors-and-alerts/alerts/create-alerts/). ## End-to-End Flow diff --git a/docs/product/monitors-and-alerts/monitors/crons/job-monitoring.mdx b/docs/product/monitors-and-alerts/monitors/crons/job-monitoring.mdx index ca10b5313f073..5eb5da2a9ec53 100644 --- a/docs/product/monitors-and-alerts/monitors/crons/job-monitoring.mdx +++ b/docs/product/monitors-and-alerts/monitors/crons/job-monitoring.mdx @@ -32,7 +32,7 @@ To monitor the same job in different environments, use a shared schedule to send ### Alerting on Specific Environments -To only receive failing or missed monitor notifications for a specific environment or set of environments, scope your **[Alert](/product/monitors-and-alerts/alerts/)** sources and **environments** to match the check-in you care about, and use filters (for example on tags such as `monitor.slug`) where needed. See [Select Sources and Environments](/product/monitors-and-alerts/alerts/#select-sources-and-environments). For how the check-in `environment` is sent, see your SDK [environment configuration](/platform-redirect/?next=/configuration/environments/). +To only receive failing or missed monitor notifications for a specific environment or set of environments, scope your **[Alert](/product/monitors-and-alerts/alerts/)** sources and **environments** to match the check-in you care about, and use filters (for example on tags such as `monitor.slug`) where needed. See [Select a Source](/product/monitors-and-alerts/alerts/create-alerts/#step-1-select-a-source). For how the check-in `environment` is sent, see your SDK [environment configuration](/platform-redirect/?next=/configuration/environments/). ### Existing Limitations: diff --git a/docs/product/monitors-and-alerts/monitors/uptime-monitoring/index.mdx b/docs/product/monitors-and-alerts/monitors/uptime-monitoring/index.mdx index dbeee465aebcb..00c825e643155 100644 --- a/docs/product/monitors-and-alerts/monitors/uptime-monitoring/index.mdx +++ b/docs/product/monitors-and-alerts/monitors/uptime-monitoring/index.mdx @@ -95,7 +95,7 @@ Uptime checks include spans called _uptime request spans_ that Sentry automatica ## Notifications -To start getting notifications for a new downtime issue, [configure an Alert](/product/monitors-and-alerts/alerts/#creating-an-alert) that matches outage / downtime issues and add actions for email, Slack, on-call tools, or other integrations. +To start getting notifications for a new downtime issue, [configure an Alert](/product/monitors-and-alerts/alerts/create-alerts/) that matches outage / downtime issues and add actions for email, Slack, on-call tools, or other integrations. ![Uptime alert configuration](./img/uptime-alert.png) diff --git a/docs/product/monitors-and-alerts/monitors/uptime-monitoring/troubleshooting.mdx b/docs/product/monitors-and-alerts/monitors/uptime-monitoring/troubleshooting.mdx index 7bd8b81dec316..3e22932d948fa 100644 --- a/docs/product/monitors-and-alerts/monitors/uptime-monitoring/troubleshooting.mdx +++ b/docs/product/monitors-and-alerts/monitors/uptime-monitoring/troubleshooting.mdx @@ -24,4 +24,4 @@ See [IP Ranges](/security-legal-pii/security/ip-ranges/#uptime-monitoring) for a ## Verify That Alerts Match Downtime Issues -Uptime monitors create downtime issues. If you're not receiving notifications when downtimes are detected, make sure you've [configured an Alert](/product/monitors-and-alerts/alerts/#creating-an-alert) whose sources and filters match those issues, with actions for the channels you expect. +Uptime monitors create downtime issues. If you're not receiving notifications when downtimes are detected, make sure you've [configured an Alert](/product/monitors-and-alerts/alerts/create-alerts/) whose sources and filters match those issues, with actions for the channels you expect. diff --git a/redirects.js b/redirects.js index 8fc319734b57a..e9c6c4667498b 100644 --- a/redirects.js +++ b/redirects.js @@ -2994,11 +2994,11 @@ const userDocsRedirects = [ }, { source: '/product/alerts/create-alerts/', - destination: '/product/monitors-and-alerts/alerts/', + destination: '/product/monitors-and-alerts/alerts/create-alerts/', }, { source: '/product/alerts/create-alerts/issue-alert-config/', - destination: '/product/monitors-and-alerts/alerts/', + destination: '/product/monitors-and-alerts/alerts/create-alerts/', }, { source: '/product/alerts/create-alerts/metric-alert-config/', @@ -3006,7 +3006,7 @@ const userDocsRedirects = [ }, { source: '/product/alerts/create-alerts/routing-alerts/', - destination: '/product/monitors-and-alerts/alerts/', + destination: '/product/monitors-and-alerts/alerts/create-alerts/', }, { source: '/product/alerts/create-alerts/uptime-alert-config/', From 109bede2827bae645b7269c362626a37c0040195 Mon Sep 17 00:00:00 2001 From: Nicholas Meisenheimer <76002357+souredoutlook@users.noreply.github.com> Date: Mon, 24 Aug 2026 15:50:47 -0400 Subject: [PATCH 02/13] Update docs/product/monitors-and-alerts/alerts/index.mdx Co-authored-by: Shannon Anahata --- docs/product/monitors-and-alerts/alerts/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/product/monitors-and-alerts/alerts/index.mdx b/docs/product/monitors-and-alerts/alerts/index.mdx index 3405e3c1506ff..82180ddc1b09a 100644 --- a/docs/product/monitors-and-alerts/alerts/index.mdx +++ b/docs/product/monitors-and-alerts/alerts/index.mdx @@ -5,7 +5,7 @@ sidebar_order: 60 og_image: /og-images/product-alerts.png --- -Sentry's **Alerts** take action when issues in your organization match pre-defined rules. An alert can send notifications, create tickets, call webhooks, or use other [integrations](/integrations/)—for issues coming from projects or [Monitors](/product/monitors-and-alerts/monitors/). +Sentry's **Alerts** take action when issues in your organization match pre-defined rules. An alert can send notifications, create tickets, call webhooks, or use other [integrations](/integrations/) for issues coming from projects or [Monitors](/product/monitors-and-alerts/monitors/). ### Some examples of when you could use an Alert From de347e6a6c71da3fed6d8b1f5dd06f0904a952d5 Mon Sep 17 00:00:00 2001 From: Nicholas Meisenheimer <76002357+souredoutlook@users.noreply.github.com> Date: Mon, 24 Aug 2026 15:51:25 -0400 Subject: [PATCH 03/13] Update docs/product/monitors-and-alerts/alerts/create-alerts.mdx Co-authored-by: Shannon Anahata --- docs/product/monitors-and-alerts/alerts/create-alerts.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/product/monitors-and-alerts/alerts/create-alerts.mdx b/docs/product/monitors-and-alerts/alerts/create-alerts.mdx index 812ce2878b907..43c24c70b6cf1 100644 --- a/docs/product/monitors-and-alerts/alerts/create-alerts.mdx +++ b/docs/product/monitors-and-alerts/alerts/create-alerts.mdx @@ -14,7 +14,7 @@ To get started, go to **Monitors > [Alerts](https://sentry.io/monitors/alerts)** ## Permissions -Alerts are an organization-level feature. Owners, Managers, Admins (and Team Admins) can always create and edit Alerts. Members and Team Contributors can too, as long as **Let Members Create and Edit Monitors and Alerts** is enabled in your [organization settings](https://sentry.io/settings/organization/), which it is by default. Learn more about [roles and permissions](/organization/membership/). +Alerts are an organization-level feature. Owners, Managers, Admins (and Team Admins) can always create and edit Alerts. By default, Members and Team Contributors can too, under **Let Members Create and Edit Monitors and Alerts**, which is enabled in your [organization settings](https://sentry.io/settings/organization/). Learn more about [roles and permissions](/organization/membership/). Alerts scoped to [all projects](#alert-on-all-projects) can only be managed by Owners and Managers. From 38e5c9264a1349295b499f5501d596c8e83d3e12 Mon Sep 17 00:00:00 2001 From: Nicholas Meisenheimer <76002357+souredoutlook@users.noreply.github.com> Date: Mon, 24 Aug 2026 16:00:01 -0400 Subject: [PATCH 04/13] Update docs/product/monitors-and-alerts/alerts/create-alerts.mdx Co-authored-by: Shannon Anahata --- docs/product/monitors-and-alerts/alerts/create-alerts.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/product/monitors-and-alerts/alerts/create-alerts.mdx b/docs/product/monitors-and-alerts/alerts/create-alerts.mdx index 43c24c70b6cf1..b3b9cec1b5db5 100644 --- a/docs/product/monitors-and-alerts/alerts/create-alerts.mdx +++ b/docs/product/monitors-and-alerts/alerts/create-alerts.mdx @@ -28,7 +28,7 @@ The **Source** determines where issues that can trigger an Alert come from: - **Alert on specific monitors**: Connect individual [Monitors](/product/monitors-and-alerts/monitors/) so the Alert only evaluates issues those Monitors create. Click **Connect Monitors** to search all Monitors, filter by project, and select the ones you want. Use **Edit Monitors** to change your selection later, or **Create New Monitor** to set up a new one. - **Alert on all issues in all projects**: The Alert evaluates every issue in the organization. See [Alert on All Projects](#alert-on-all-projects) below. -Pick selected projects when you want coverage for a single service, specific Monitors when the Alert only makes sense for a particular set of Monitors such as a single cron job or set of uptime checks, and all projects when the Alert should apply organization-wide. +Want coverage for an entire single service? Alert on a project. Want to Alert on a particular set of Monitors such as a single cron job or set of uptime checks? Select a subset of monitors. Want an Alert to apply organization-wide? Select all projects. ### Alert on All Projects From 6688eefe707a52f2141554a829c470bbfa3350b7 Mon Sep 17 00:00:00 2001 From: Nicholas Meisenheimer <76002357+souredoutlook@users.noreply.github.com> Date: Mon, 24 Aug 2026 16:00:38 -0400 Subject: [PATCH 05/13] Update docs/product/monitors-and-alerts/alerts/create-alerts.mdx Co-authored-by: Shannon Anahata --- docs/product/monitors-and-alerts/alerts/create-alerts.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/product/monitors-and-alerts/alerts/create-alerts.mdx b/docs/product/monitors-and-alerts/alerts/create-alerts.mdx index b3b9cec1b5db5..7e29110a234d6 100644 --- a/docs/product/monitors-and-alerts/alerts/create-alerts.mdx +++ b/docs/product/monitors-and-alerts/alerts/create-alerts.mdx @@ -40,7 +40,7 @@ This is the best choice for teams with simple alerting needs like feed channels Select the environment the Alert evaluates. This filters on the `environment` tag in your events, so you can send production alerts somewhere different from staging or QA alerts. -The dropdown defaults to All Environments, which applies no environment filter. Otherwise you can select an environment from the list of distinct environment tags across your projects. It's possible also possible to filter environment tag values in the IF section of the Alert Builder, consider this option for complex routing configurations. +The dropdown defaults to All Environments. You can select a specific environment from the list of environment tags across your projects. It's also possible to filter environment tag values in the IF section of the Alert Builder. Consider this option for complex routing configurations. ## Step 3: Build the Alert From f932bc8cf12893b5b83ef791e2fac2dad331b135 Mon Sep 17 00:00:00 2001 From: Nicholas Meisenheimer <76002357+souredoutlook@users.noreply.github.com> Date: Mon, 24 Aug 2026 16:01:03 -0400 Subject: [PATCH 06/13] Update docs/product/monitors-and-alerts/alerts/create-alerts.mdx Co-authored-by: Shannon Anahata --- docs/product/monitors-and-alerts/alerts/create-alerts.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/product/monitors-and-alerts/alerts/create-alerts.mdx b/docs/product/monitors-and-alerts/alerts/create-alerts.mdx index 7e29110a234d6..d1b032f6d5428 100644 --- a/docs/product/monitors-and-alerts/alerts/create-alerts.mdx +++ b/docs/product/monitors-and-alerts/alerts/create-alerts.mdx @@ -73,7 +73,7 @@ An Alert can have many **If** blocks and each **If** block evaluates filters mat - **any**: at least one filter must match. - **none**: no filter may match. -If you don't add any filters, every issue trigger matches (the block reads **Any event**). +If you don't add any filters, your Alert will fire on every Issue matching just the selected qualifying trigger event(s) - created, escalated, etc. #### Filter by Issue Attributes From 75f5dda8d37971e1fb226f522ce954bf3f40edfd Mon Sep 17 00:00:00 2001 From: Nicholas Meisenheimer <76002357+souredoutlook@users.noreply.github.com> Date: Mon, 24 Aug 2026 16:02:07 -0400 Subject: [PATCH 07/13] Update docs/product/monitors-and-alerts/alerts/create-alerts.mdx Co-authored-by: Shannon Anahata --- docs/product/monitors-and-alerts/alerts/create-alerts.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/product/monitors-and-alerts/alerts/create-alerts.mdx b/docs/product/monitors-and-alerts/alerts/create-alerts.mdx index d1b032f6d5428..b566781f88938 100644 --- a/docs/product/monitors-and-alerts/alerts/create-alerts.mdx +++ b/docs/product/monitors-and-alerts/alerts/create-alerts.mdx @@ -154,7 +154,7 @@ Click **Send Test Notification** on an **If/Then** block to send a test event th ### Add Multiple If/Then Blocks -Click **+ If/Then Block** to add another set of filters and actions to the same Alert. Every block evaluates against the same triggers, so you can route different event shapes to different places from a single Alert — for example, create a Jira ticket or Slack notification for every new issue, but only page on-call when the issue is high priority. +Click **+ If/Then Block** to add another set of filters and actions to the same Alert. Every block evaluates separately against the same triggers, so you can route different event shapes to different places from a single Alert — for example, create a Jira ticket or Slack notification for every new issue, but only page on-call when the issue is high priority. ## Step 4: Set Throttling From b0e14ef77435a1b50add539a2206ebaaaaf6ef74 Mon Sep 17 00:00:00 2001 From: Nicholas Meisenheimer <76002357+souredoutlook@users.noreply.github.com> Date: Mon, 24 Aug 2026 16:02:45 -0400 Subject: [PATCH 08/13] Update docs/product/monitors-and-alerts/alerts/create-alerts.mdx Co-authored-by: Shannon Anahata --- docs/product/monitors-and-alerts/alerts/create-alerts.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/product/monitors-and-alerts/alerts/create-alerts.mdx b/docs/product/monitors-and-alerts/alerts/create-alerts.mdx index b566781f88938..7d5affd3d3464 100644 --- a/docs/product/monitors-and-alerts/alerts/create-alerts.mdx +++ b/docs/product/monitors-and-alerts/alerts/create-alerts.mdx @@ -46,6 +46,8 @@ The dropdown defaults to All Environments. You can select a specific environment The **Alert Builder** has three sections: **When** (triggers), **If** (filters), and **Then** (actions). +For example: **When** _an issue is escalated_, **If** _issue category is outage_, **Then** _send a message to the team-platform slack channel_ + ### When: Triggers Triggers are the issue events that start an Alert evaluation. Triggers use `ANY` logic — the Alert evaluates as soon as one of them happens — and each trigger can only be added once. From 943f690d473c6c9ffac089f11cedcfee90f36a40 Mon Sep 17 00:00:00 2001 From: Nicholas Meisenheimer <76002357+souredoutlook@users.noreply.github.com> Date: Mon, 24 Aug 2026 16:03:04 -0400 Subject: [PATCH 09/13] Update docs/product/monitors-and-alerts/alerts/create-alerts.mdx Co-authored-by: Shannon Anahata --- docs/product/monitors-and-alerts/alerts/create-alerts.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/product/monitors-and-alerts/alerts/create-alerts.mdx b/docs/product/monitors-and-alerts/alerts/create-alerts.mdx index 7d5affd3d3464..c402bfb849f74 100644 --- a/docs/product/monitors-and-alerts/alerts/create-alerts.mdx +++ b/docs/product/monitors-and-alerts/alerts/create-alerts.mdx @@ -50,7 +50,7 @@ For example: **When** _an issue is escalated_, **If** _issue category is outage_ ### When: Triggers -Triggers are the issue events that start an Alert evaluation. Triggers use `ANY` logic — the Alert evaluates as soon as one of them happens — and each trigger can only be added once. +Triggers are the issue events that start an Alert evaluation. Triggers use `ANY` logic — the Alert evaluates as soon as one of the events happens — and each trigger can only be added once. | Trigger | Runs when | | -------------------------------------------------- | ------------------------------------------------------------------------------------------------- | From c1e8ef52c6b862a38309831f3cd42a990211f2a3 Mon Sep 17 00:00:00 2001 From: Nicholas Meisenheimer <76002357+souredoutlook@users.noreply.github.com> Date: Mon, 24 Aug 2026 16:06:38 -0400 Subject: [PATCH 10/13] Update docs/product/monitors-and-alerts/alerts/create-alerts.mdx Co-authored-by: Shannon Anahata --- docs/product/monitors-and-alerts/alerts/create-alerts.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/product/monitors-and-alerts/alerts/create-alerts.mdx b/docs/product/monitors-and-alerts/alerts/create-alerts.mdx index c402bfb849f74..eb56fd6476222 100644 --- a/docs/product/monitors-and-alerts/alerts/create-alerts.mdx +++ b/docs/product/monitors-and-alerts/alerts/create-alerts.mdx @@ -126,6 +126,8 @@ Event attribute and tag filters support these match types: **contains**, **equal Actions are what Sentry does when the triggers and filters match. Available actions depend on the [integrations](/integrations/) installed in your organization. +Read more about [Notifications](#notifications), [Ticket Creation](#ticket-creation), and [Other Integrations](#other-integrations). + #### Notifications - **Notify on preferred channel**: Notify **Suggested Assignees**, a **Team**, or a **Member**, and Sentry delivers via each recipient's [notification settings](/product/notifications/notification-settings/). Suggested Assignees include current assignees, issue owners from [ownership rules](/product/issues/ownership-rules/), and authors of [suspect commits](/product/issues/suspect-commits/). When no suggested assignee is found, choose a fallback: **Recently Active Members** (default), **All Project Members**, or **No One**. From 18b145557738e68e6d180fef529f60a34b57e175 Mon Sep 17 00:00:00 2001 From: Nick Meisenheimer Date: Tue, 22 Sep 2026 11:44:52 -0400 Subject: [PATCH 11/13] docs(alerts): address review feedback on Creating an Alert - Fold the "Alert on All Projects" section into the source bullet and drop the now-dead anchor - Reword the If/Then filter explanation: one qualifier per If block, many blocks per Alert - Replace "occurrence-based monitors" jargon with the triggers the filters actually require - Move the filter-compatibility Alert up under If: Filters, where it applies to all filter types - Describe the ticket creation settings panel instead of an unexplained bolded phrase - Fix "sometvhing" typo Co-Authored-By: Claude Opus 5 (1M context) --- .../alerts/create-alerts.mdx | 58 +++++++++---------- 1 file changed, 27 insertions(+), 31 deletions(-) diff --git a/docs/product/monitors-and-alerts/alerts/create-alerts.mdx b/docs/product/monitors-and-alerts/alerts/create-alerts.mdx index eb56fd6476222..d02e1f6b065f0 100644 --- a/docs/product/monitors-and-alerts/alerts/create-alerts.mdx +++ b/docs/product/monitors-and-alerts/alerts/create-alerts.mdx @@ -17,7 +17,7 @@ To get started, go to **Monitors > [Alerts](https://sentry.io/monitors/alerts)** Alerts are an organization-level feature. Owners, Managers, Admins (and Team Admins) can always create and edit Alerts. By default, Members and Team Contributors can too, under **Let Members Create and Edit Monitors and Alerts**, which is enabled in your [organization settings](https://sentry.io/settings/organization/). Learn more about [roles and permissions](/organization/membership/). - Alerts scoped to [all projects](#alert-on-all-projects) can only be managed by Owners and Managers. + Alerts scoped to all projects can only be managed by Owners and Managers. ## Step 1: Select a Source @@ -26,16 +26,10 @@ The **Source** determines where issues that can trigger an Alert come from: - **Alert on all issues in selected projects**: Pick one or more projects. The Alert evaluates every issue in those projects, no matter which Monitor created it. - **Alert on specific monitors**: Connect individual [Monitors](/product/monitors-and-alerts/monitors/) so the Alert only evaluates issues those Monitors create. Click **Connect Monitors** to search all Monitors, filter by project, and select the ones you want. Use **Edit Monitors** to change your selection later, or **Create New Monitor** to set up a new one. -- **Alert on all issues in all projects**: The Alert evaluates every issue in the organization. See [Alert on All Projects](#alert-on-all-projects) below. +- **Alert on all issues in all projects**: The Alert evaluates every issue in the organization, including issues from projects created after you save the Alert. This is the best choice for teams with simple alerting needs like feed channels in Slack or high level monitoring of newly detected issues. Want coverage for an entire single service? Alert on a project. Want to Alert on a particular set of Monitors such as a single cron job or set of uptime checks? Select a subset of monitors. Want an Alert to apply organization-wide? Select all projects. -### Alert on All Projects - -Selecting **Alert on all issues in all projects** scopes the Alert to your whole organization instead of a set of projects. Sentry evaluates it against every issue in the organization and issues from projects created after you save the Alert are covered automatically. - -This is the best choice for teams with simple alerting needs like feed channels in Slack or high level monitoring of newly detected issues. - ## Step 2: Filter Issues by Environment Select the environment the Alert evaluates. This filters on the `environment` tag in your events, so you can send production alerts somewhere different from staging or QA alerts. @@ -52,14 +46,14 @@ For example: **When** _an issue is escalated_, **If** _issue category is outage_ Triggers are the issue events that start an Alert evaluation. Triggers use `ANY` logic — the Alert evaluates as soon as one of the events happens — and each trigger can only be added once. -| Trigger | Runs when | -| -------------------------------------------------- | ------------------------------------------------------------------------------------------------- | -| **A new issue is created** | An issue is created. | +| Trigger | Runs when | +| -------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **A new issue is created** | An issue is created. | | **An issue escalates** | An event on an issue caused it to move from a lower priority to a higher one, or causes it to be [flagged as escalating](/product/issues/states-triage/escalating-issues). | -| **A resolved issue regresses** | An resolved issue regresses when it's seen again (cannot be triggered by manually unresolving). | -| **An issue is resolved** | An issue is marked as resolved. | -| **An event is captured** | Any event is captured for an issue, including events on existing issues. | -| **Seer runs on an issue and reaches the stage...** | [Seer](/product/ai-in-sentry/seer/) finishes one of the stages you select. | +| **A resolved issue regresses** | An resolved issue regresses when it's seen again (cannot be triggered by manually unresolving). | +| **An issue is resolved** | An issue is marked as resolved. | +| **An event is captured** | Any event is captured for an issue, including events on existing issues. | +| **Seer runs on an issue and reaches the stage...** | [Seer](/product/ai-in-sentry/seer/) finishes one of the stages you select. | For the Seer trigger, select one or more stages: **Root cause analysis completed**, **Planning completed**, **Coding completed**, or **Pull request created**. @@ -67,45 +61,45 @@ Learn more about issue lifecycle in [Issue States and Triage](/product/issues/st ### If: Filters -Filters decide which actions will run when issue triggers occur. +Actions only run on issues matching the filters. -An Alert can have many **If** blocks and each **If** block evaluates filters matching with `all`, `any`, or `none` logic: +An Alert can have many **If/Then** blocks. Each **If** portion of a block evaluates filters matching a qualifier of `all`, `any`, or `none` logic. For each **If** block, you can only choose one qualifier: - **all**: every filter must match. - **any**: at least one filter must match. - **none**: no filter may match. -If you don't add any filters, your Alert will fire on every Issue matching just the selected qualifying trigger event(s) - created, escalated, etc. - -#### Filter by Issue Attributes +If you don't add any filters, your Alert will fire on every Issue matching just the selected qualifying trigger event(s) - created, escalated, etc. -Event attribute, release, and frequency filters only apply to occurrence-based monitors (errors, N+1, and replay), and only to the **A new issue is created** and **An event is captured** triggers. The builder marks these filters with a warning icon. +Frequency and event attribute filters only work with the **A new issue is created** and **An event is captured** triggers. The builder marks these filters with a warning icon when they can't be used with the triggers you've selected. +#### Filter by Issue Attributes + | Filter | Options | | -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Issue age** | The issue is **older than** or **newer than** a value in **minutes**, **hours**, **days**, or **weeks**. | -| **Issue assignment** | The issue is assigned to **No One**, a **Team**, or a organization **Member**. | +| **Issue assignment** | The issue is assigned to **No One**, a **Team**, or a organization **Member**. | | **Issue frequency** | The issue has happened at least a set number of times. | | **Issue category** | The issue category is **equal to** or **not equal to** one of `error`, `feedback`, `outage`, `metric`, `db_query`, `http_client`, `frontend`, or `mobile`. | -| **Issue type** | The issue type is **equal to** or **not equal to** a specific issue type, which is even more granular than category. | +| **Issue type** | The issue type is **equal to** or **not equal to** a specific issue type, which is even more granular than category. | | **Issue priority** | The current [issue priority](/product/issues/issue-priority/) is greater than or equal to **high**, **medium**, or **low**. | -| **De-escalation** | The issue priority de-escalates (ex. high -> medium, or medium -> low). | +| **De-escalation** | The issue priority de-escalates (ex. high -> medium, or medium -> low). | #### Filter by Frequency -Frequency filters compare how often sometvhing happens. Each one supports two comparison modes: +Frequency filters compare how often something happens. Each one supports two comparison modes: - **more than...**: an absolute count in an interval — **in 5 minutes**, **in 15 minutes**, **in one hour**, **in one day**, **in one week**, or **in 30 days**. - **relatively higher than...**: a percentage increase over a past interval — **5 minutes ago**, **15 minutes ago**, **one hour ago**, **one day ago**, **one week ago**, or **30 days ago**. -| Filter | Description | -| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| **Number of events** | How many events the issue has received. | -| **Number of users affected** | How many unique users the issue has affected. | +| Filter | Description | +| ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Number of events** | How many events the issue has received. | +| **Number of users affected** | How many unique users the issue has affected. | | **Percentage of sessions affected** | Compares the issue's event count against an estimate of project [sessions](/product/releases/health/#sessions) in the selected interval. Intervals are limited to **5 minutes**, **10 minutes**, **30 minutes**, and **one hour**. | Frequency filters also accept **sub-filters**, which scope the count to a subset of events. Add one or more sub-filters in the form `[Attribute or Tag] [is / is not] [value]`. Multiple sub-filters are combined with `and`. @@ -126,7 +120,7 @@ Event attribute and tag filters support these match types: **contains**, **equal Actions are what Sentry does when the triggers and filters match. Available actions depend on the [integrations](/integrations/) installed in your organization. -Read more about [Notifications](#notifications), [Ticket Creation](#ticket-creation), and [Other Integrations](#other-integrations). +Read more about [Notifications](#notifications), [Ticket Creation](#ticket-creation), and [Other Integrations](#other-integrations). #### Notifications @@ -140,7 +134,9 @@ Read more about [Notifications](#notifications), [Ticket Creation](#ticket-creat #### Ticket Creation -Create a work item in an issue tracker, and use **these settings** on the action to configure fields such as project, issue type, assignee, and labels: +Create a work item in an issue tracker. Each ticket creation action has its own settings panel, where you configure fields such as project, issue type, assignee, and labels: + +{/* TODO: souredoutlook to supply a screenshot of the ticket creation sub-settings modal. Place it in ./img/ and reference as ![alt =800x](./img/name.png) */} - **[Jira](/integrations/issue-tracking/jira/)** and **Jira Server** - **[GitHub](/integrations/source-code-mgmt/github/)** and **GitHub Enterprise** From 21f85fb1a4306b68a76c5cbe00a267c22bdf8bae Mon Sep 17 00:00:00 2001 From: Nick Meisenheimer Date: Tue, 22 Sep 2026 11:59:32 -0400 Subject: [PATCH 12/13] docs(alerts): add ticket creation settings panel screenshot Replaces the TODO placeholder in the Ticket Creation section. Co-Authored-By: Claude Opus 5 (1M context) --- .../alerts/create-alerts.mdx | 8 +++++--- .../alerts/img/settings-modal.png | Bin 0 -> 41876 bytes 2 files changed, 5 insertions(+), 3 deletions(-) create mode 100644 docs/product/monitors-and-alerts/alerts/img/settings-modal.png diff --git a/docs/product/monitors-and-alerts/alerts/create-alerts.mdx b/docs/product/monitors-and-alerts/alerts/create-alerts.mdx index d02e1f6b065f0..e7457d150d827 100644 --- a/docs/product/monitors-and-alerts/alerts/create-alerts.mdx +++ b/docs/product/monitors-and-alerts/alerts/create-alerts.mdx @@ -134,14 +134,16 @@ Read more about [Notifications](#notifications), [Ticket Creation](#ticket-creat #### Ticket Creation -Create a work item in an issue tracker. Each ticket creation action has its own settings panel, where you configure fields such as project, issue type, assignee, and labels: - -{/* TODO: souredoutlook to supply a screenshot of the ticket creation sub-settings modal. Place it in ./img/ and reference as ![alt =800x](./img/name.png) */} +Create a work item in an issue tracker: - **[Jira](/integrations/issue-tracking/jira/)** and **Jira Server** - **[GitHub](/integrations/source-code-mgmt/github/)** and **GitHub Enterprise** - **[Azure DevOps](/integrations/source-code-mgmt/azure-devops/)** +Each ticket creation action has its own settings panel, where you configure the fields Sentry sets on the work item it creates. The available fields come from the issue tracker, so they differ by integration. + +![Ticket creation settings panel =600x](./img/settings-modal.png) + #### Other Integrations Take action via a [third party integration](/integrations/third-party-integrations/) that supports Alert actions or to legacy integrations (plugins) configured on the project. diff --git a/docs/product/monitors-and-alerts/alerts/img/settings-modal.png b/docs/product/monitors-and-alerts/alerts/img/settings-modal.png new file mode 100644 index 0000000000000000000000000000000000000000..d266e8e7ee3ff79160be128e17c99f3eb5458fae GIT binary patch literal 41876 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 a>3_x|>l-XO>+EJT0D-5gpUXO@geCyHLipzZ literal 0 HcmV?d00001 From d1ed154749ab76c1d00688df5a72031bbdb1db1e Mon Sep 17 00:00:00 2001 From: Nick Meisenheimer Date: Wed, 23 Sep 2026 16:04:59 -0400 Subject: [PATCH 13/13] docs(alerts): add troubleshooting section to Creating an Alert Covers two cases that are hard to self-diagnose today: integrations missing from the actions list, and hitting an Alert count limit. The limits are described rather than enumerated, since the specific ceilings aren't published and are raisable per organization. Co-Authored-By: Claude Opus 5 (1M context) --- .../monitors-and-alerts/alerts/create-alerts.mdx | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/product/monitors-and-alerts/alerts/create-alerts.mdx b/docs/product/monitors-and-alerts/alerts/create-alerts.mdx index e7457d150d827..512a676b821f6 100644 --- a/docs/product/monitors-and-alerts/alerts/create-alerts.mdx +++ b/docs/product/monitors-and-alerts/alerts/create-alerts.mdx @@ -169,3 +169,15 @@ Options are **Get notified on every trigger** (the default), **5 minutes**, **10 Sentry generates a name from your configuration as you build. To change it, click the name in the header at the top of the page and enter a descriptive one, such as "Frontend high priority to #frontend-oncall". Click **Create Alert** to save. Sentry takes you to the Alert's details page, where you can review its history, edit it, or turn it off. Learn more in [Managing Alerts](/product/monitors-and-alerts/alerts/#managing-alerts). + +## Troubleshooting + +### An integration I expected isn't in the actions list + +The **Then** section only offers [integrations](/integrations/) that are installed in your organization and that support Alert actions. If one is missing, check that it's installed under **Settings > Integrations**, and that the integration supports being used as an Alert action. Some integrations support issue linking but not Alert actions. + +### Sentry won't let me save a new Alert + +Sentry caps how many Alerts an organization can create so that evaluation stays fast. When you exceed one, saving fails with an error naming the limit you hit. The ceilings can be raised, so [contact support](https://sentry.io/support/) if your organization needs more. Otherwise, delete or turn off Alerts you're no longer acting on, or consolidate several narrow Alerts into one Alert with broader filters and multiple **If/Then** blocks. + +Alerts that count events over a time window, such as **The issue is seen more than 100 times in one hour**, get a lower per-project ceiling than other Alerts because they're more expensive to evaluate.