diff --git a/develop-docs/self-hosted/optional-features/errors-only.mdx b/develop-docs/self-hosted/optional-features/errors-only.mdx index 832961d5813ad..624fe37d244de 100644 --- a/develop-docs/self-hosted/optional-features/errors-only.mdx +++ b/develop-docs/self-hosted/optional-features/errors-only.mdx @@ -27,7 +27,7 @@ This is our default version of self-hosted Sentry. It includes most of the featu 4. [Insights](https://docs.sentry.io/product/insights/) (Requests, Queries, Assets, etc) 5. [User Feedback](https://docs.sentry.io/product/user-feedback/) 6. [Insights](https://docs.sentry.io/product/insights/) -7. [Crons](https://docs.sentry.io/product/crons/) +7. [Crons](https://docs.sentry.io/product/monitors-and-alerts/monitors/crons/) 8. [Metrics](https://docs.sentry.io/product/explore/metrics/) This version of Sentry is enabled by default upon installation. Ensure that your [.env file](https://github.com/getsentry/self-hosted/blob/master/.env) includes `COMPOSE_PROFILES=feature-complete`. diff --git a/docs/account/user-settings/index.mdx b/docs/account/user-settings/index.mdx index 342b70c9f732c..096b827b59912 100644 --- a/docs/account/user-settings/index.mdx +++ b/docs/account/user-settings/index.mdx @@ -35,7 +35,7 @@ In **Notifications**, you can configure your personal settings for the following You can also set your email routing here. -Learn more in the [full Notifications documentation](/product/alerts/notifications/). +Learn more in the [full Notifications documentation](/product/notifications/). ## Emails diff --git a/docs/cli/configuration.mdx b/docs/cli/configuration.mdx index 20b49ec389ffc..d3d943cdac7ba 100644 --- a/docs/cli/configuration.mdx +++ b/docs/cli/configuration.mdx @@ -27,7 +27,7 @@ You can manually create an [Organization Token](https://sentry.io/orgredirect/or You can also sign in to your Sentry account (if you're not already) and create an Auth Token directly from this page. -Some CLI functionality, such as [Crons Monitoring](/product/crons/getting-started/cli/), is dependent on [Data Source Name (DSN)](/concepts/key-terms/dsn-explainer/) authentication. +Some CLI functionality, such as [Crons Monitoring](/cli/crons/), is dependent on [Data Source Name (DSN)](/concepts/key-terms/dsn-explainer/) authentication. You can create an Auth Token from this page in one of the following three ways: diff --git a/docs/cli/crons.mdx b/docs/cli/crons.mdx index eba6b12d8c246..69261a9b63326 100644 --- a/docs/cli/crons.mdx +++ b/docs/cli/crons.mdx @@ -84,7 +84,7 @@ sentry-cli monitors run -s "0 * * * *" --check-in-margin 10 --max-runtime 5 --ti ### Specifying Monitor Environments (Optional) -If your cron monitor runs in multiple environments you can use the `-e` flag to specify which [Monitor Environment](/product/crons/job-monitoring/#multiple-environments) to send check-ins to. +If your cron monitor runs in multiple environments you can use the `-e` flag to specify which [Monitor Environment](/product/monitors-and-alerts/monitors/crons/job-monitoring/#multiple-environments) to send check-ins to. ```bash {tabTitle: Node.JS} sentry-cli monitors run -e dev my-monitor-slug -- node path/to/file.js diff --git a/docs/guides/logs.mdx b/docs/guides/logs.mdx index 74c49b061f904..2894fe4de4c2e 100644 --- a/docs/guides/logs.mdx +++ b/docs/guides/logs.mdx @@ -788,7 +788,7 @@ Sentry.logger().warn("Config reloaded reason=%s", "env-change") - **Anomaly:** Let Sentry detect unusual patterns 5. Configure notification channels and save -Learn about [creating alerts](/product/new-monitors-and-alerts/alerts/) and best practices for [reducing noise and routing notifications](/product/new-monitors-and-alerts/alerts/best-practices/). +Learn about [creating alerts](/product/monitors-and-alerts/alerts/) and [notifications](/product/notifications/). ## Logging Strategy diff --git a/docs/guides/querying-traces.mdx b/docs/guides/querying-traces.mdx index 27b7863a66cfc..29a7355adbaa9 100644 --- a/docs/guides/querying-traces.mdx +++ b/docs/guides/querying-traces.mdx @@ -74,7 +74,7 @@ Start with these five queries and you'll catch most performance issues before us **Tip:** Averages can hide outliers, use p75/p90/p95 instead. -Learn about [creating alerts](/product/new-monitors-and-alerts/alerts/) and best practices for [reducing noise and routing notifications](/product/new-monitors-and-alerts/alerts/best-practices/). +Learn about [creating alerts](/product/monitors-and-alerts/alerts/) and [notifications](/product/notifications/). ## Quick Reference diff --git a/docs/organization/integrations/notification-incidents/slack/index.mdx b/docs/organization/integrations/notification-incidents/slack/index.mdx index 4e677dcaeff5e..a0476330eafbe 100644 --- a/docs/organization/integrations/notification-incidents/slack/index.mdx +++ b/docs/organization/integrations/notification-incidents/slack/index.mdx @@ -41,7 +41,7 @@ Use Slack for notifications and [alerts](#alert-rules) regarding issues, environ ### Personal Notifications -You can receive personal workflow, deploy, and issue alert notifications from our Slack integration. Manage your [personal notification settings](/product/alerts/notifications/notification-settings/) by navigating to **User Settings > Notifications**. +You can receive personal workflow, deploy, and issue alert notifications from our Slack integration. Manage your [personal notification settings](/product/notifications/notification-settings/) by navigating to **User Settings > Notifications**. #### Linking Your Slack and Sentry Accounts diff --git a/docs/platforms/dotnet/common/crons/hangfire/index.mdx b/docs/platforms/dotnet/common/crons/hangfire/index.mdx index 32b874fe98a31..4413ee07339a9 100644 --- a/docs/platforms/dotnet/common/crons/hangfire/index.mdx +++ b/docs/platforms/dotnet/common/crons/hangfire/index.mdx @@ -4,7 +4,7 @@ description: "Learn more about how to monitor your Hangfire jobs." sidebar_order: 5001 --- -The .NET SDK provides an integration with [Hangfire](https://www.hangfire.io/) to monitor your jobs by automatically [creating check-ins for them](/product/crons/job-monitoring/). The SDK relies on job filters that are set up when you call `UseSentry`. For example: +The .NET SDK provides an integration with [Hangfire](https://www.hangfire.io/) to monitor your jobs by automatically [creating check-ins for them](/product/monitors-and-alerts/monitors/crons/job-monitoring/). The SDK relies on job filters that are set up when you call `UseSentry`. For example: ```csharp using Hangfire; diff --git a/docs/platforms/java/common/crons/troubleshooting.mdx b/docs/platforms/java/common/crons/troubleshooting.mdx index ba79cba0ba2d8..7dca5448adb7d 100644 --- a/docs/platforms/java/common/crons/troubleshooting.mdx +++ b/docs/platforms/java/common/crons/troubleshooting.mdx @@ -6,7 +6,7 @@ sidebar_order: 9000 -Attachments aren't supported by our Java SDK yet. For now, you can use the [check-in attachments API](/product/crons/getting-started/http/#check-in-attachment-optional). +Attachments aren't supported by our Java SDK yet. For now, you can use the [check-in attachments API](/product/monitors-and-alerts/monitors/crons/getting-started/http/#check-in-attachment-optional). diff --git a/docs/platforms/javascript/common/configuration/integrations/denocron.mdx b/docs/platforms/javascript/common/configuration/integrations/denocron.mdx index 74d7875ac43c3..b8cde59c59c81 100644 --- a/docs/platforms/javascript/common/configuration/integrations/denocron.mdx +++ b/docs/platforms/javascript/common/configuration/integrations/denocron.mdx @@ -13,7 +13,7 @@ This integration only works in the Deno runtime. _Import name: `Sentry.denoCronIntegration`_ -[Sentry Crons](/product/crons/) allows you to monitor the uptime and performance of any scheduled, recurring job in your application. +[Sentry Crons](/product/monitors-and-alerts/monitors/crons/) allows you to monitor the uptime and performance of any scheduled, recurring job in your application. The DenoCron integration sets up automatic monitoring for your cron jobs created by [`Deno.cron`](https://docs.deno.com/deploy/kv/manual/cron). It captures check-ins and sends them to Sentry. diff --git a/docs/platforms/javascript/guides/nextjs/manual-setup/pages-router.mdx b/docs/platforms/javascript/guides/nextjs/manual-setup/pages-router.mdx index ef04fd4495e3b..505b03d3303c7 100644 --- a/docs/platforms/javascript/guides/nextjs/manual-setup/pages-router.mdx +++ b/docs/platforms/javascript/guides/nextjs/manual-setup/pages-router.mdx @@ -432,7 +432,7 @@ Sentry.logger.error("Error occurred"); ## Vercel Cron Jobs (Optional) -Automatically create [Cron Monitors](/product/crons/) in Sentry for your [Vercel cron jobs](https://vercel.com/docs/cron-jobs). +Automatically create [Cron Monitors](/product/monitors-and-alerts/monitors/crons/) in Sentry for your [Vercel cron jobs](https://vercel.com/docs/cron-jobs). diff --git a/docs/pricing/quotas/legacy-manage-transaction-quota.mdx b/docs/pricing/quotas/legacy-manage-transaction-quota.mdx index c9238bc3bb9c7..9f693f98ba4cd 100644 --- a/docs/pricing/quotas/legacy-manage-transaction-quota.mdx +++ b/docs/pricing/quotas/legacy-manage-transaction-quota.mdx @@ -66,7 +66,7 @@ Quotas can only be updated by a Billing or Owner member of your Sentry organizat -Once your performance units volume is approaching or has exceeded the quota, teammates with the "Owner" organization permission level will receive [notification](/product/alerts/notifications/#quota-notifications) emails. You can then choose to [increase](#increasing-quotas) or [decrease](#decreasing-quotas) your quota. +Once your performance units volume is approaching or has exceeded the quota, teammates with the "Owner" organization permission level will receive [notification](/product/notifications/#quota-notifications) emails. You can then choose to [increase](#increasing-quotas) or [decrease](#decreasing-quotas) your quota. ### Increasing Quotas diff --git a/docs/pricing/quotas/manage-attachments-quota.mdx b/docs/pricing/quotas/manage-attachments-quota.mdx index a1a01eabeab58..14427befc3dd1 100644 --- a/docs/pricing/quotas/manage-attachments-quota.mdx +++ b/docs/pricing/quotas/manage-attachments-quota.mdx @@ -37,7 +37,7 @@ Quotas can only be updated by a Billing or Owner member of your Sentry organizat -Once your attachments volume is approaching or has exceeded the quota, teammates with the "Owner" organization permission level will receive [notification](/product/alerts/notifications/#quota-notifications) emails. You can then choose to [increase](#increasing-quotas) or [decrease](#decreasing-quotas) your quota. +Once your attachments volume is approaching or has exceeded the quota, teammates with the "Owner" organization permission level will receive [notification](/product/notifications/#quota-notifications) emails. You can then choose to [increase](#increasing-quotas) or [decrease](#decreasing-quotas) your quota. ### Increasing Quotas diff --git a/docs/pricing/quotas/manage-event-stream-guide.mdx b/docs/pricing/quotas/manage-event-stream-guide.mdx index bec9368849cd2..de2d497d361f0 100644 --- a/docs/pricing/quotas/manage-event-stream-guide.mdx +++ b/docs/pricing/quotas/manage-event-stream-guide.mdx @@ -63,7 +63,7 @@ Quotas can only be updated by a Billing or Owner member of your Sentry organizat -Once your event volume is approaching or has exceeded the quota, teammates with the "Owner" organization permission level will receive [notification](/product/alerts/notifications/#quota-notifications) emails. You can then choose to [increase](#increasing-quotas) or [decrease](#decreasing-quotas) your quota. +Once your event volume is approaching or has exceeded the quota, teammates with the "Owner" organization permission level will receive [notification](/product/notifications/#quota-notifications) emails. You can then choose to [increase](#increasing-quotas) or [decrease](#decreasing-quotas) your quota. If this is your first time exceeding your errors quota and you're on a paid plan, you'll be entered into a one-time grace period. Learn more by reading this [help article](https://sentry.zendesk.com/hc/en-us/articles/23983502355099-What-happens-when-I-run-out-of-event-capacity-and-a-grace-period-is-triggered). diff --git a/docs/pricing/quotas/manage-logs-quota.mdx b/docs/pricing/quotas/manage-logs-quota.mdx index 464d56b546516..cee4152d09f7f 100644 --- a/docs/pricing/quotas/manage-logs-quota.mdx +++ b/docs/pricing/quotas/manage-logs-quota.mdx @@ -41,7 +41,7 @@ The "Projects" table on the Stats page breaks down your data by project, so you Budgets can only be updated by a Billing- or Owner-level member of your Sentry org. -Once your Logs quota is approaching or has exceeded its included amount, teammates with "Owner" org permissions will start receiving [notification](/product/alerts/notifications/#quota-notifications) emails. They'll then be able to choose to increase or decrease the PAYG budget to unlock additional usage. +Once your Logs quota is approaching or has exceeded its included amount, teammates with "Owner" org permissions will start receiving [notification](/product/notifications/#quota-notifications) emails. They'll then be able to choose to increase or decrease the PAYG budget to unlock additional usage. ### Increasing Logs Budget @@ -119,7 +119,7 @@ To set up log message filtering: Keep track of your Logs quota usage by: - Checking the [Usage Stats](/product/stats/#usage-stats) page regularly -- Setting up [quota notifications](/product/alerts/notifications/#quota-notifications) +- Setting up [quota notifications](/product/notifications/#quota-notifications) - Reviewing project-specific usage in the Stats breakdown - Monitoring the impact of filtering changes over time diff --git a/docs/pricing/quotas/manage-replay-quota.mdx b/docs/pricing/quotas/manage-replay-quota.mdx index d367f2c403bce..1c655619bd856 100644 --- a/docs/pricing/quotas/manage-replay-quota.mdx +++ b/docs/pricing/quotas/manage-replay-quota.mdx @@ -35,7 +35,7 @@ Quotas can only be updated by a Billing or Owner-level member of your Sentry org -Once your replay volume is approaching or has exceeded its quota, teammates with the "Owner" organization permission level will start receiving [notification](/product/alerts/notifications/#quota-notifications) emails. They'll then be able to choose to [increase](#increasing-quotas) or [decrease](#decreasing-quotas) your quota. +Once your replay volume is approaching or has exceeded its quota, teammates with the "Owner" organization permission level will start receiving [notification](/product/notifications/#quota-notifications) emails. They'll then be able to choose to [increase](#increasing-quotas) or [decrease](#decreasing-quotas) your quota. ### Increasing Quotas diff --git a/docs/pricing/quotas/manage-transaction-quota.mdx b/docs/pricing/quotas/manage-transaction-quota.mdx index 8e8f9cef96475..58337d7d6141c 100644 --- a/docs/pricing/quotas/manage-transaction-quota.mdx +++ b/docs/pricing/quotas/manage-transaction-quota.mdx @@ -44,7 +44,7 @@ Quotas can only be updated by a Billing or Owner member of your Sentry organizat -Once your span unit volume is approaching or has exceeded the quota, teammates with the "Owner" organization permission level will receive [notification](/product/alerts/notifications/#quota-notifications) emails. You can then choose to [increase](#increasing-quotas) or [decrease](#decreasing-quotas) your quota. +Once your span unit volume is approaching or has exceeded the quota, teammates with the "Owner" organization permission level will receive [notification](/product/notifications/#quota-notifications) emails. You can then choose to [increase](#increasing-quotas) or [decrease](#decreasing-quotas) your quota. ### Increasing Quotas diff --git a/docs/product/alerts/alert-types.mdx b/docs/product/alerts/alert-types.mdx index 0b91311527cea..d64bac2280540 100644 --- a/docs/product/alerts/alert-types.mdx +++ b/docs/product/alerts/alert-types.mdx @@ -121,7 +121,7 @@ The **Alert Details** page also includes a list of suspect issues or transaction ## Uptime Alerts -Uptime alerts trigger whenever an uptime check request fails to meet the [uptime check criteria](/product/uptime-monitoring/#uptime-check-criteria). You can customize when alerts are triggered using [thresholds](/product/alerts/create-alerts/uptime-alert-config/#4-thresholds) and define custom success criteria with [verification](/product/alerts/create-alerts/uptime-alert-config/#5-verification) (early access). You'll be able to see the latest uptime check request status ("Up" or "Down") in the "Alert Rules" tab. +Uptime alerts trigger whenever an uptime check request fails to meet the [uptime check criteria](/product/monitors-and-alerts/monitors/uptime-monitoring/#uptime-check-criteria). You can customize when alerts are triggered using [thresholds](/product/alerts/create-alerts/uptime-alert-config/#4-thresholds) and define custom success criteria with [verification](/product/alerts/create-alerts/uptime-alert-config/#5-verification) (early access). You'll be able to see the latest uptime check request status ("Up" or "Down") in the "Alert Rules" tab. ### Alert Details diff --git a/docs/product/alerts/best-practices.mdx b/docs/product/alerts/best-practices.mdx deleted file mode 100644 index 0cf0c017c9aa8..0000000000000 --- a/docs/product/alerts/best-practices.mdx +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: Alerts Best Practices -keywords: ["best practice", "alerting", "manage noise"] -sidebar_order: 30 -description: "Learn best practices for creating alerts." ---- - -Alerts should notify you when there's an important problem with your application. But they shouldn't be too noisy, because that can lead to alert fatigue. The following best practices will help you create relevant alerts that notify the right people — that is, the people equipped to fix the problem. - -There are two types of alerts: [issue alerts](/product/alerts/alert-types/#issue-alerts) and [metric alerts](/product/alerts/alert-types/#metric-alerts). Metric alerts also create issues when triggered, so you can triage and assign them like issue alerts. Most of our alerting best practices are specific to issue alerts, however, the [alert conditions best practices](#alert-conditions-best-practices) apply to both issue and metric alerts. - -## Issue Alerts Best Practices - -An issue alert is triggered when an individual issue meets some criteria. These criteria (or "triggers") can be based on state-changes or frequency. The best practices that follow cover alerts based on state and frequency changes, as well as reducing noise, and effective routing. - -### State-Change Alerts - -The following triggers, or “when” conditions, capture state changes in issues: - -- A new issue is created -- The issue changes state from resolved to unresolved, or a regression occurs -- The issue changes state from archived to escalating - -Your first instinct might be to set an alert for every state change. However, this is likely to result in too many alerts if you're running an app with a significant number of users. In particular, regressions will be more common than you expect because Sentry auto-resolves issues after 14 days of silence (configurable), and many issues keep coming back after the 14-day window. - -To deal with this, the **Issues** page includes the [**Review List**](/product/issues/states-triage/#mark-reviewed) (in the "For Review" tab), containing only issues that have had a state change in the last seven days. We recommended that you review this list once a day. If you need real-time notifications for particular types of issues, such as those affecting your enterprise customers, you can always create alerts with those filters. - -### Frequency-Based Alerts - -Below, we describe best practices for setting alerts using the following frequency-based triggers: - -- **Number of events in an issue**: This is a very commonly used trigger, but remember that frequency isn't everything: a low-frequency error can be more important than a high-frequency one if it's in a more important part of your app. -- **Number of users affected by an issue**: Sometimes a very small number of users create a lot of errors, so in some cases alerting on users affected can be more important than error frequency. However, remember that not all errors that have user counts in Sentry may be actually user-facing, and vice versa. -- **Percent of sessions affected by an issue**: Error counts and users affected require constant manual adjustments as your traffic patterns change and are not well suited to deal with seasonality (for example, fewer errors on the weekend). Also, it can be hard to assess the impact of an issue from error counts or counts of users affected. In such cases, if you've configured your project to capture session data, you can opt for alerting when an issue affects a certain percentage of user sessions. - -### Reducing Noise - -One way to keep alerts from becoming too noisy is to use filters, or “if” conditions, as part of your alert configuration. Below, we describe best practices for setting alerts using the following noise-reducing filtering options: - -- **Prioritize high priority issues**: If you're getting too many notifications about non-error or low priority issues, add the 'high priority' condition to your alert configuration. That way, you'll only get alerts for high-priority issues. -- **Prioritize using tags**: Filter issue alerts based on important tags, such as `customer_type=enterprise` or `url=/very/important/page`. You can find the list of tags available in your project in your project's [Tags](https://sentry.io/orgredirect/organizations/:orgslug/settings/projects/:projectId/tags/) settings. The list is an aggregation of all tag keys (default and custom) encountered in events for that project. -- **Prioritize new issues**: If you're frequently getting alerted about old issues, filter your alerts to issues created in the last few days using the `The issue is older or newer than...` filter. -- **Filter transient issues**: Many issues exhibit a short burst of events that can trip your frequency-based alerts. To filter out these issues, use the `Issue has happened at least {X} times` filter. -- **Prioritize the latest release**: Use the `The event is from the latest release` filter to make your issue alert only apply to the latest release. -- **Archive noisy issues**: If you're seeing alerts from the same issue repeatedly, [archive the issue](/product/issues/states-triage/#archive). (This is not an alert configuration setting.) - -### Routing - -These routing best practices ensure that you alert the right people about a problem in your application. - -- **Ownership Rules**: Use [ownership rules and code owners](/product/issues/ownership-rules/) to let Sentry automatically send alerts to the right people, as well as to ease configuration burden. You can configure ownership in your project's [Ownership Rules](https://sentry.io/orgredirect/organizations/:orgslug/settings/projects/:projectId/ownership/) settings. In the case of ownership rules, when there are no matching owners, the alert goes to all project members by default. If this is too broad, and you'd like a specific owner to be the fallback, end your ownership rules with a rule like `*:`. -- **Delivery methods for different priorities**: Use different delivery methods to separate alerts of different priorities. For example, you might route from highest to lowest priority like so: - - High priority: Page (for example, PagerDuty or OpsGenie) - - Medium priority: Notification (for example, Slack) - - Low priority: Email -- **Review List**: Found in the "For Review" tab of **Issues**, the [**Review List**](/product/issues/states-triage/#mark-reviewed) is where you can check on your lowest priority issues without receiving any alerts. -- **Build an integration**: If you would like to route alert notifications to solutions with which Sentry doesn't yet have an out-of-the-box integration, you can use our [integration platform](/organization/integrations/integration-platform/). When you create an integration, it will be available in the alert actions menu. You might want use your own integration for: - - Sending alerts to integrations not supported natively - - Aggregating alerts from your different monitoring systems - - Writing custom rules in the webhook handler to route alerts more intelligently - -## Alert Conditions Best Practices - -Both frequency-based issue alerts and metric alerts can notify you in two ways: - -- When they cross a [fixed threshold](#fixed-thresholds) -- When they deviate from their historical behavior, based on a [dynamic threshold](#dynamic-thresholds-change-alerts), or what we call a _change alert_ - -### Fixed Thresholds - -Fixed thresholds are most effective when you have a clear idea of what constitutes good or bad performance. Typically, they’re the type of threshold you’ll use most often when setting up alerts. Some examples of fixed thresholds are: - -- When your app's crash rate exceeds 1% -- When your app's transaction volume drops to zero -- When any issue affects more than 100 enterprise users in a day -- When the response time of a key transaction exceeds 500 ms - -### Dynamic Thresholds: Change Alerts - -Dynamic thresholds help you detect when a metric deviates significantly from its “normal” range. For example, the percentage of sessions affected by an issue in the last 24 hours is _20% greater than one week ago_ (dynamic), rather than the percentage of sessions affected is simply _greater than 20%_ (fixed). - -Dynamic thresholds are good for when it’s cumbersome to create fixed thresholds for every metric of interest, or when you don’t have an expected value for a metric, such as in the following scenarios: - -- **Seasonal fluctuations**: Seasonal metrics, such as number of transactions (which fluctuates daily), are more accurately monitored by comparing them to the previous day or week, rather than a fixed value. -- **Unpredictable growth**: Fixed-threshold alerts may require continuous manual adjustment as traffic patterns change, such as with a fast-growing app. Dynamic thresholds work regardless of changing traffic patterns. - -You may want to **complement** (more common) rather than **replace** (less common) fixed thresholds with dynamic thresholds. - -Learn more about [change alerts for issue alerts](/product/alerts/create-alerts/issue-alert-config/#change-alerts) and [change alerts for metric alerts](/product/alerts/create-alerts/metric-alert-config/#change-alerts-percent-change) in the full documentation. diff --git a/docs/product/alerts/create-alerts/issue-alert-config.mdx b/docs/product/alerts/create-alerts/issue-alert-config.mdx index 3efa75a94df34..f4306f48cf130 100644 --- a/docs/product/alerts/create-alerts/issue-alert-config.mdx +++ b/docs/product/alerts/create-alerts/issue-alert-config.mdx @@ -86,7 +86,7 @@ Learn more about [routing alerts with integrations](/product/alerts/create-alert ### Suggested Assignees -Suggested Assignees include people or teams currently assigned the issue, issue owners defined in [ownership rules](/product/issues/ownership-rules/), and anyone who has been identified as author of a [suspect commit](/product/issues/suspect-commits/). When an alert is triggered, they can choose to be notified via email or Slack (depending on their [notification settings](/product/alerts/notifications/notification-settings/)). +Suggested Assignees include people or teams currently assigned the issue, issue owners defined in [ownership rules](/product/issues/ownership-rules/), and anyone who has been identified as author of a [suspect commit](/product/issues/suspect-commits/). When an alert is triggered, they can choose to be notified via email or Slack (depending on their [notification settings](/product/notifications/notification-settings/)). If no suggested assignees are found, the notification will be sent to the teams or members specified in the fallback notification setting, as shown below: diff --git a/docs/product/alerts/create-alerts/uptime-alert-config.mdx b/docs/product/alerts/create-alerts/uptime-alert-config.mdx index 373a63a3d4e09..619ddd83045c5 100644 --- a/docs/product/alerts/create-alerts/uptime-alert-config.mdx +++ b/docs/product/alerts/create-alerts/uptime-alert-config.mdx @@ -31,7 +31,7 @@ Configure how Sentry performs HTTP uptime checks by setting the following option - **Method**: The HTTP method used (`GET`, `POST`, `HEAD`, `PUT`, `DELETE`, `PATCH`, or `OPTIONS`). - **Headers**: Custom headers included in the request. - **Body**: The request payload, available for `POST`, `PUT`, and `PATCH` methods. -- **Allow Sampling**: Enables span sampling for requests via the Sentry SDK. See [distributed tracing with uptime](/product/uptime-monitoring/uptime-tracing/) for details. +- **Allow Sampling**: Enables span sampling for requests via the Sentry SDK. See [distributed tracing with uptime](/product/monitors-and-alerts/monitors/uptime-monitoring/uptime-tracing/) for details. @@ -48,9 +48,9 @@ Below the request configuration, you'll find an example of the expected request Additional notes: - Include a `Content-Type` header if required by the target URL. For example, a JSON payload should have `Content-Type: application/json`. -- The selected interval affects downtime detection speed. By default, Sentry triggers an uptime issue after three consecutive failures (configurable in [Thresholds](#4-thresholds)). For example, a 5-minute interval with the default failure tolerance means downtime is detected after at least 15 minutes. Learn more about the [uptime check criteria](/product/uptime-monitoring/#uptime-check-criteria). -- In case the specified URL is behind a firewall, make sure Sentry's Uptime Bot can execute requests to it. Learn more about [firewall configuration with uptime monitoring](/product/uptime-monitoring/troubleshooting/#verify-firewall-configuration). -- Sentry Uptime Tracing automatically appends a sentry-trace header to outgoing requests for distributed tracing. [Learn more](/product/uptime-monitoring/uptime-tracing/). +- The selected interval affects downtime detection speed. By default, Sentry triggers an uptime issue after three consecutive failures (configurable in [Thresholds](#4-thresholds)). For example, a 5-minute interval with the default failure tolerance means downtime is detected after at least 15 minutes. Learn more about the [uptime check criteria](/product/monitors-and-alerts/monitors/uptime-monitoring/#uptime-check-criteria). +- In case the specified URL is behind a firewall, make sure Sentry's Uptime Bot can execute requests to it. Learn more about [firewall configuration with uptime monitoring](/product/monitors-and-alerts/monitors/uptime-monitoring/troubleshooting/#verify-firewall-configuration). +- Sentry Uptime Tracing automatically appends a sentry-trace header to outgoing requests for distributed tracing. [Learn more](/product/monitors-and-alerts/monitors/uptime-monitoring/uptime-tracing/). ## 4. Thresholds @@ -80,7 +80,7 @@ These thresholds help reduce noise from transient failures while ensuring you're Add custom verification to your uptime check to validate various parts of the HTTP response from your service. With custom verification, you can check HTTP status codes, header keys and values, and the response body to ensure they conform to your expected values. -If no verification is configured, uptime checks will use the [default criteria](/product/uptime-monitoring/#uptime-check-criteria), which requires a 2xx status code for the check to be considered successful. +If no verification is configured, uptime checks will use the [default criteria](/product/monitors-and-alerts/monitors/uptime-monitoring/#uptime-check-criteria), which requires a 2xx status code for the check to be considered successful. ### How Verification Works diff --git a/docs/product/alerts/index.mdx b/docs/product/alerts/index.mdx index 94877339f2f82..c4ecb9459071f 100644 --- a/docs/product/alerts/index.mdx +++ b/docs/product/alerts/index.mdx @@ -47,20 +47,20 @@ You can find a full list of available metric alerts in [Metric Alerts](/product/ ## Uptime Monitoring Alerts -[Uptime alerts](/product/uptime-monitoring/) are triggered when an uptime HTTP check request fails to meet the -[uptime check criteria](/product/uptime-monitoring/#uptime-check-criteria). You can customize when alerts are triggered using [thresholds](/product/alerts/create-alerts/uptime-alert-config/#4-thresholds) and define custom success criteria with [verification](/product/alerts/create-alerts/uptime-alert-config/#5-verification) (early access). Use uptime alerts to make sure a specific URL is constantly available, even during periods of low or no traffic. +[Uptime alerts](/product/monitors-and-alerts/monitors/uptime-monitoring/) are triggered when an uptime HTTP check request fails to meet the +[uptime check criteria](/product/monitors-and-alerts/monitors/uptime-monitoring/#uptime-check-criteria). You can customize when alerts are triggered using [thresholds](/product/alerts/create-alerts/uptime-alert-config/#4-thresholds) and define custom success criteria with [verification](/product/alerts/create-alerts/uptime-alert-config/#5-verification) (early access). Use uptime alerts to make sure a specific URL is constantly available, even during periods of low or no traffic. ## Cron Monitor Alerts -[Cron monitor alerts](/product/crons/) are triggered when a scheduled, recurring job misses a check-in, exceeds its maximum runtime, or reports a failure. You can view and manage cron monitors from the **Alerts** page by filtering by the "Cron Monitors" alert type. Use cron monitor alerts to ensure critical jobs run on schedule and complete successfully. Set up monitoring and configure alerts in [Cron Monitoring](/product/crons/getting-started/). +[Cron monitor alerts](/product/monitors-and-alerts/monitors/crons/) are triggered when a scheduled, recurring job misses a check-in, exceeds its maximum runtime, or reports a failure. You can view and manage cron monitors from the **Alerts** page by filtering by the "Cron Monitors" alert type. Use cron monitor alerts to ensure critical jobs run on schedule and complete successfully. Set up monitoring and configure alerts in [Cron Monitoring](/product/monitors-and-alerts/monitors/crons/getting-started/). ## Creating Alerts -When you create a new project in [sentry.io](https://sentry.io), you can select a default issue alert. However, you can also [create your own alerts](/product/alerts/create-alerts/) to suit your team’s needs, using these [alert best practices](/product/alerts/best-practices/) as a guide. +When you create a new project in [sentry.io](https://sentry.io), you can select a default issue alert. However, you can also [create your own alerts](/product/alerts/create-alerts/) to suit your team’s needs. ## Muting Alerts -Alerts should notify you when there's an important problem with your application. But they shouldn't be too noisy, because that can lead to alert fatigue. Muting alerts is one way to reduce noise, but we recommend following these [alert best practices](/product/alerts/best-practices/) to help you create relevant alerts that notify the people equipped to fix the problem. +Alerts should notify you when there's an important problem with your application. But they shouldn't be too noisy, because that can lead to alert fatigue. Muting alerts is one way to reduce noise, but we recommend tuning triggers and filters when you [create alerts](/product/alerts/create-alerts/) so you only notify the people equipped to fix the problem. @@ -80,11 +80,11 @@ Metric alerts work in the same way as Issue alerts and can be muted on the **Ale Sentry has disabled duplicate alerts and alerts with no actions. -Anyone with [alert edit access](/organization/membership/) can re-enable an alert by editing its conditions and re-saving it. Alerts need to pass Sentry’s checks before they can be saved. See [best practices](/product/alerts/best-practices/) for guidance on writing useful alerts. +Anyone with [alert edit access](/organization/membership/) can re-enable an alert by editing its conditions and re-saving it. Alerts need to pass Sentry’s checks before they can be saved. See [Creating alerts](/product/alerts/create-alerts/) for guidance on writing useful alerts. ## 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/alerts/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/crons/troubleshooting.mdx b/docs/product/crons/troubleshooting.mdx index 1c7878467c9a6..2d6b9fc6fcadc 100644 --- a/docs/product/crons/troubleshooting.mdx +++ b/docs/product/crons/troubleshooting.mdx @@ -24,7 +24,7 @@ If the monitor environment continues to be broken after an additional 14 days, w **Important Notes:** -- You can disable these notifications in your [personal notification settings](/product/alerts/notifications/notification-settings/) +- You can disable these notifications in your [personal notification settings](/product/notifications/notification-settings/) - Muting a monitor does **not** stop billing. You will continue to be charged for muted monitors. To stop billing, you must deactivate or delete the monitor. See [Manage Your Cron Monitors](/pricing/quotas/manage-cron-monitors) for more details. diff --git a/docs/product/index.mdx b/docs/product/index.mdx index 9982587e708a1..1e6a893aa4bac 100644 --- a/docs/product/index.mdx +++ b/docs/product/index.mdx @@ -50,11 +50,11 @@ Our [**AI Agents Monitoring**](/ai/monitoring/agents/) feature gives you insight ### Uptime Monitoring -Sentry's [**Uptime Monitoring**](/product/uptime-monitoring/) helps you maintain uptime for your web services by monitoring relevant URLs. It continuously tracks configured URLs, delivering alerts and insights to quickly identify downtime and troubleshoot issues. By leveraging [distributed tracing](/product/uptime-monitoring/uptime-tracing/), Sentry enables you to pinpoint any errors that occur during an uptime check, simplifying triage and accelerating root cause analysis. Uptime monitoring includes [uptime request spans](/product/uptime-monitoring/#uptime-request-spans) by default. These act as the root of any uptime issue's trace, giving you better context for faster debugging. +Sentry's [**Uptime Monitoring**](/product/monitors-and-alerts/monitors/uptime-monitoring/) helps you maintain uptime for your web services by monitoring relevant URLs. It continuously tracks configured URLs, delivering alerts and insights to quickly identify downtime and troubleshoot issues. By leveraging [distributed tracing](/product/monitors-and-alerts/monitors/uptime-monitoring/uptime-tracing/), Sentry enables you to pinpoint any errors that occur during an uptime check, simplifying triage and accelerating root cause analysis. Uptime monitoring includes [uptime request spans](/product/monitors-and-alerts/monitors/uptime-monitoring/#uptime-request-spans) by default. These act as the root of any uptime issue's trace, giving you better context for faster debugging. ### Recurring Job Monitoring -[**Cron Monitors**](/product/crons/) allows you to monitor the uptime and performance of any scheduled, recurring job in Sentry. Once implemented, it'll allow you to get alerts and metrics to help you solve errors, detect timeouts, and prevent disruptions to your service. +[**Cron Monitors**](/product/monitors-and-alerts/monitors/crons/) allows you to monitor the uptime and performance of any scheduled, recurring job in Sentry. Once implemented, it'll allow you to get alerts and metrics to help you solve errors, detect timeouts, and prevent disruptions to your service. ### Visibility Into Your Data Across Environments diff --git a/docs/product/issues/issue-details/error-issues/index.mdx b/docs/product/issues/issue-details/error-issues/index.mdx index eac072cdc200c..e6492c0212b2f 100644 --- a/docs/product/issues/issue-details/error-issues/index.mdx +++ b/docs/product/issues/issue-details/error-issues/index.mdx @@ -12,7 +12,7 @@ An _error issue_ is a grouping of error events. What counts as an error varies b ![Issue details](../img/issue-details-page.png) ## Subscribe to Issue Alerts -To subscribe to an error issue and receive alerts about it, click the bell icon, then fine tune [workflow notifications](/product/alerts/notifications/#workflow-notifications) related to the issue in **User Settings > Notifications**. +To subscribe to an error issue and receive alerts about it, click the bell icon, then fine tune [workflow notifications](/product/notifications/#workflow-notifications) related to the issue in **User Settings > Notifications**. ## Error Levels The event description is displayed just below the issue title along with an icon representing the error level of the event: diff --git a/docs/product/issues/issue-details/uptime-issues/index.mdx b/docs/product/issues/issue-details/uptime-issues/index.mdx index dd92ff837a4fd..1a321c9f05186 100644 --- a/docs/product/issues/issue-details/uptime-issues/index.mdx +++ b/docs/product/issues/issue-details/uptime-issues/index.mdx @@ -9,7 +9,7 @@ og_image: /og-images/product-issues-issue-details-uptime-issues.png An uptime issue is a grouping of detected downtime events for a specific URL. A downtime event is generated by active uptime alerts when HTTP requests fail to meet our -[uptime check criteria](/product/uptime-monitoring/#uptime-check-criteria). +[uptime check criteria](/product/monitors-and-alerts/monitors/uptime-monitoring/#uptime-check-criteria). ![Uptime issue details](./img/uptime-issue-details.png) @@ -20,4 +20,4 @@ Uptime checks made against web services configured with one of Sentry's supporte ## Issue Lifecycle -Uptime issues are grouped by the monitored URL and created upon the first detected downtime. Sentry automatically resolves an ongoing uptime issue when the monitored URL returns to a healthy status and meets our [uptime check criteria](/product/uptime-monitoring/#uptime-check-criteria). If the URL experiences subsequent downtime, the issue's status will change to regressed. +Uptime issues are grouped by the monitored URL and created upon the first detected downtime. Sentry automatically resolves an ongoing uptime issue when the monitored URL returns to a healthy status and meets our [uptime check criteria](/product/monitors-and-alerts/monitors/uptime-monitoring/#uptime-check-criteria). If the URL experiences subsequent downtime, the issue's status will change to regressed. diff --git a/docs/product/issues/monitors-and-alerts/index.mdx b/docs/product/issues/monitors-and-alerts/index.mdx new file mode 100644 index 0000000000000..390dac93b3cfe --- /dev/null +++ b/docs/product/issues/monitors-and-alerts/index.mdx @@ -0,0 +1,60 @@ +--- +title: Issue Monitors and Alerts +sidebar_order: 12 +description: >- + Use Monitors to detect problems and create issues, and use Alerts to be notified + when those issues change state or match your filters. +--- + +[Monitors](/product/monitors-and-alerts/monitors/) and [Alerts](/product/monitors-and-alerts/alerts/) are used to customize issue detection and action. **Monitors** focus on _when_ something becomes an issue; **Alerts** focus on _what to do next_ (notify, ticket, webhook). + +For the full product overview, see [**Monitors and Alerts**](/product/monitors-and-alerts/). + +## How They Work Together + +**Monitors** watch signals you care about on top of default error detection,like scheduled jobs, URLs, metric thresholds on spans, and custom application metrics and create issues when their conditions are met. **Alerts** run when issues match the triggers and filters you configure, and carry out **actions** such as Slack messages, email, or creating work items in an integrated tool. + +```mermaid +flowchart LR + subgraph detect["Monitors"] + M[Detect problems] + end + subgraph issues["Issues"] + I[Issues are created by Monitors] + end + subgraph respond["Alerts"] + A[Take action on issue events] + end + M --> I + I --> A +``` + +Typical flow: + +1. A **Monitor** detects a problem → Sentry creates or updates an **issue**. +2. An **Alert** whose sources (Monitors) and filters (conditions) match that issue → runs actions (notifications, tickets, webhooks). + +Alerts can be scoped to **Projects** or **Monitors**, so you can set one alert for multiple monitors or projects that your team owns. You can also multiple alerts for one monitor for uses like differing alerting needs for multiple teams or environments. + +## Monitors + +Monitors define when errors, performance problems, or operational failures become issues you triage in Sentry. They include: + +- **Custom monitors** for [metrics](/product/monitors-and-alerts/monitors/#metric-monitor-settings), [cron jobs](/product/monitors-and-alerts/monitors/crons/), and [uptime checks](/product/monitors-and-alerts/monitors/uptime-monitoring/) +- **Default monitors** coming from your SDK integration like [issue grouping/fingerprint rules](/concepts/data-management/event-grouping/) + +[Learn more about monitor types](/product/monitors-and-alerts/monitors/#types-of-monitors) + +## Alerts + +Alerts trigger when issue state or attributes match what you configure: for example, notify a Slack channel when a new issue appears, or open a Jira ticket when an issue is assigned and matches severity filters. + +[Learn how to create and manage alerts](/product/monitors-and-alerts/alerts/) + +## Getting Started + +1. **Create or review [Monitors](/product/monitors-and-alerts/monitors/)** for the signals you need (cron, uptime, metrics, defaults). +2. **Create [Alerts](/product/monitors-and-alerts/alerts/)** with the right sources, triggers, filters, and actions. +3. **Add alerts to your team's workflow** at the project or monitor level to be notified when issues match your filters. + +Learn more about configuring [Monitors and Alerts](/product/monitors-and-alerts/alerts/) and [**Creating alerts**](/product/alerts/create-alerts/). diff --git a/docs/product/new-monitors-and-alerts/alerts/img/alert-details.png b/docs/product/monitors-and-alerts/alerts/img/alert-details.png similarity index 100% rename from docs/product/new-monitors-and-alerts/alerts/img/alert-details.png rename to docs/product/monitors-and-alerts/alerts/img/alert-details.png diff --git a/docs/product/monitors-and-alerts/alerts/index.mdx b/docs/product/monitors-and-alerts/alerts/index.mdx new file mode 100644 index 0000000000000..60b13535a1b94 --- /dev/null +++ b/docs/product/monitors-and-alerts/alerts/index.mdx @@ -0,0 +1,78 @@ +--- +title: Alerts +description: Use Alerts to notify or take action on important issues. +sidebar_order: 60 +early_access: true +og_image: /og-images/product-alerts.png +--- + + + +Sentry's **Alerts** take action when issues in your organization match the defined rules. An alert can send notifications, create tickets, call webhooks, or use other [integrations](/organization/integrations/)—for issues coming from projects or [Monitors](/product/monitors-and-alerts/monitors/). + +### Some examples of when you could use an Alert + +- Send a notification to your team's Slack channel when a **new** issue is created. +- Create a ticket in Jira when an issue is **assigned** and matches severity filters. +- Call a webhook when an issue **escalates** or moves from resolved back to unresolved. + +![alert-config =800x](./img/alert-details.png) + +## Creating an Alert + + + +To create an Alert, go to the [Alerts](https://sentry.io/monitors/alerts) page in Sentry and click **Create Alert**. + +### 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 + +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](/organization/integrations/integration-platform/). + +**Note:** Some integrations are only available for certain sources or issue types. Check [Integrations](/organization/integrations/) for your workspace. + +### When to Notify the Team + +Using Alerts with custom filters allows you to notify the team about critical issues. Some examples of when you can use Sentry to alert: + +- On downtime +- When there are severe traffic spikes or drops +- When the number of errors exceed a certain threshold + +## Managing Alerts + +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. + +### Alerts Best Practices + +See [Creating alerts](/product/alerts/create-alerts/) for how to configure alerts in Sentry. 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? + +## 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/). diff --git a/docs/product/monitors-and-alerts/index.mdx b/docs/product/monitors-and-alerts/index.mdx new file mode 100644 index 0000000000000..97e3cea5d29f8 --- /dev/null +++ b/docs/product/monitors-and-alerts/index.mdx @@ -0,0 +1,56 @@ +--- +title: Monitors and Alerts +description: >- + Use Monitors to decide when problems become issues, and Alerts to notify, + ticket, and automate next steps when those issues match your rules. +sidebar_order: 8000 +early_access: true +--- + + + +Sentry separates **what you detect** from **what you do about it**: + +- [**Monitors**](/product/monitors-and-alerts/monitors/) watch your application and operational signals. There are default detectors that pull data from your SDK integration. Custom configurations like, cron schedules, HTTP uptime, metric thresholds on spans and custom metrics, can also be monitored. With Monitors, these signals are turned into **issues** when conditions are met. +- [**Alerts**](/product/monitors-and-alerts/alerts/) run when **issues** match the triggers and filters you configure, and carry out **actions** like Slack, email, PagerDuty, webhooks notifications, or creating work items in Jira and similar tools. + +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 alerts](/product/alerts/create-alerts/). + +## End-to-End Flow + +```mermaid +flowchart TB + subgraph mon["Monitors"] + direction TB + M1[Metric / cron / uptime / defaults] + end + subgraph iss["Issues"] + direction TB + I[Issue created or updated] + end + subgraph al["Alerts"] + direction TB + A[Triggers + filters + actions] + end + mon --> iss + iss --> al +``` + +1. **Monitor** evaluates data on a schedule or on incoming events and decides whether to open or update an **issue**. +2. **Alert** rules listen for issue lifecycle and attribute changes (and can be limited to certain Monitors or projects). +3. When a rule matches, **actions** run: notify people, open tickets, call integrations. + +## Where to Go Next + +| Goal | Documentation | +| -------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| Configure detectors (cron, uptime, metrics, defaults) | [Monitors](/product/monitors-and-alerts/monitors/) | +| Configure notifications, tickets, and webhooks | [Alerts](/product/monitors-and-alerts/alerts/) | +| Personal and workflow notifications (email, Slack, quota, and so on) | [Notifications](/product/notifications/) | +| Reduce noise and choose thresholds | [Creating alerts](/product/alerts/create-alerts/) | + +## Learn More + + diff --git a/docs/product/new-monitors-and-alerts/monitors/crons/getting-started/http/index.mdx b/docs/product/monitors-and-alerts/monitors/crons/getting-started/http/index.mdx similarity index 92% rename from docs/product/new-monitors-and-alerts/monitors/crons/getting-started/http/index.mdx rename to docs/product/monitors-and-alerts/monitors/crons/getting-started/http/index.mdx index 76b3aeefdcda9..9859e12526d94 100644 --- a/docs/product/new-monitors-and-alerts/monitors/crons/getting-started/http/index.mdx +++ b/docs/product/monitors-and-alerts/monitors/crons/getting-started/http/index.mdx @@ -10,7 +10,7 @@ Sentry Crons allows you to monitor the uptime and performance of any scheduled, To begin monitoring your recurring, scheduled job: -1. [Create a new monitor](https://sentry.io/issues/alerts/new/crons/) in Sentry. +1. [Create a new monitor](https://sentry.io/issues/monitors/new/) in Sentry (choose **Cron** as the monitor type). 2. Configure check-ins or a heartbeat for your job. Optionally, you can skip the first step and [create or update (upsert) a monitor through a check-in](#creating-or-updating-a-monitor-through-a-check-in-optional). See more below. @@ -19,7 +19,6 @@ Optionally, you can skip the first step and [create or update (upsert) a monitor Check-in monitoring allows you to track a job's progress by completing two check-ins: one at the start of your job and another at the end of your job. This two-step process allows Sentry to notify you if your job didn't start when expected (missed) or if it exceeded its maximum runtime (failed). - ```bash {tabTitle: cURL} SENTRY_INGEST="https://___ORG_INGEST_DOMAIN___" SENTRY_CRONS="${SENTRY_INGEST}/api/___PROJECT_ID___/cron//___PUBLIC_KEY___/" @@ -43,7 +42,6 @@ Host: ___ORG_INGEST_DOMAIN___ If your job execution fails: - ```bash {tabTitle: cURL} # 🔴 Notify Sentry your job has failed: curl "${SENTRY_CRONS}?status=error" @@ -76,7 +74,6 @@ schedule or delete the monitor environment; otherwise, it will be marked as miss - ```bash {tabTitle: cURL} SENTRY_INGEST="https://___ORG_INGEST_DOMAIN___" SENTRY_CRONS="${SENTRY_INGEST}/api/___PROJECT_ID___/cron//___PUBLIC_KEY___/" @@ -94,7 +91,6 @@ curl "${SENTRY_CRONS}?environment=dev&status=ok" Sentry enables the automatic creation or update of a monitor (upsert) through the check-in payload. This can be useful if you have many scheduled tasks or need to create them dynamically. - ```bash {tabTitle: cURL} SENTRY_INGEST="https://___ORG_INGEST_DOMAIN___" SENTRY_CRONS="${SENTRY_INGEST}/api/___PROJECT_ID___/cron//___PUBLIC_KEY___/" @@ -182,7 +178,6 @@ If this happens, you have to provide a stable check-in ID for your execution wit Usage example: - ```bash {tabTitle: cURL} CHECK_IN_ID="$(uuidgen)" @@ -202,7 +197,6 @@ curl "${SENTRY_CRONS}?check_in_id=${CHECK_IN_ID}&status=ok" Heartbeat monitoring notifies Sentry of a job's status through one check-in. This setup will only notify you if your job didn't start when expected (missed). If you need to track a job to see if it exceeded its maximum runtime (failed), use check-ins instead. - ```bash {tabTitle: cURL} SENTRY_INGEST="https://___ORG_INGEST_DOMAIN___" SENTRY_CRONS="${SENTRY_INGEST}/api/___PROJECT_ID___/cron//___PUBLIC_KEY___/" @@ -218,7 +212,6 @@ Host: ___ORG_INGEST_DOMAIN___ If your job execution fails: - ```bash {tabTitle: cURL} # 🔴 Notify Sentry your job has failed: curl "${SENTRY_CRONS}?status=error" @@ -233,16 +226,16 @@ Host: ___ORG_INGEST_DOMAIN___ When your recurring job fails to check in (missed), runs beyond its configured maximum runtime (failed), or manually reports a failure, Sentry will create an error event with a tag to your monitor. -To receive alerts about these events: +To receive notifications about these events: -1. Navigate to **Alerts** in the sidebar. -2. Create a new alert and select "Issues" under "Errors" as the alert type. -3. Configure your alert and define a filter match to use: `The event's tags match {key} {match} {value}`. +1. Open [**Alerts**](https://sentry.io/monitors/alerts) click **Create Alert**. +2. Choose the Projects or Monitors that should drive the rule. +3. Set **triggers** and **filters** so the rule runs for the monitor failures you care about—for example, a filter on event tags such as `monitor.slug`. -Example: `The event's tags match monitor.slug equals my-monitor-slug-here` +Example filter intent: match when `monitor.slug` equals `my-monitor-slug-here`. -Learn more in [Issue Alert Configuration](/product/alerts/create-alerts/issue-alert-config/). +Learn more in [Alerts](/product/monitors-and-alerts/alerts/). diff --git a/docs/product/new-monitors-and-alerts/monitors/crons/getting-started/index.mdx b/docs/product/monitors-and-alerts/monitors/crons/getting-started/index.mdx similarity index 94% rename from docs/product/new-monitors-and-alerts/monitors/crons/getting-started/index.mdx rename to docs/product/monitors-and-alerts/monitors/crons/getting-started/index.mdx index 532cca9e4ca40..d87887bb9cbbd 100644 --- a/docs/product/new-monitors-and-alerts/monitors/crons/getting-started/index.mdx +++ b/docs/product/monitors-and-alerts/monitors/crons/getting-started/index.mdx @@ -31,5 +31,5 @@ We're working on enabling additional platforms for Crons. In the meantime, you c ## Others -- [HTTP](/product/new-monitors-and-alerts/monitors/crons/getting-started/http/) +- [HTTP](/product/monitors-and-alerts/monitors/crons/getting-started/http/) - [Sentry CLI](/cli/crons/) diff --git a/docs/product/new-monitors-and-alerts/monitors/crons/img/crons-as-alerts-guide.png b/docs/product/monitors-and-alerts/monitors/crons/img/crons-as-alerts-guide.png similarity index 100% rename from docs/product/new-monitors-and-alerts/monitors/crons/img/crons-as-alerts-guide.png rename to docs/product/monitors-and-alerts/monitors/crons/img/crons-as-alerts-guide.png diff --git a/docs/product/new-monitors-and-alerts/monitors/crons/img/crons-as-backend-insights.png b/docs/product/monitors-and-alerts/monitors/crons/img/crons-as-backend-insights.png similarity index 100% rename from docs/product/new-monitors-and-alerts/monitors/crons/img/crons-as-backend-insights.png rename to docs/product/monitors-and-alerts/monitors/crons/img/crons-as-backend-insights.png diff --git a/docs/product/new-monitors-and-alerts/monitors/crons/index.mdx b/docs/product/monitors-and-alerts/monitors/crons/index.mdx similarity index 69% rename from docs/product/new-monitors-and-alerts/monitors/crons/index.mdx rename to docs/product/monitors-and-alerts/monitors/crons/index.mdx index 9a0eaecbdb69b..92ca1015e03bd 100644 --- a/docs/product/new-monitors-and-alerts/monitors/crons/index.mdx +++ b/docs/product/monitors-and-alerts/monitors/crons/index.mdx @@ -16,9 +16,9 @@ To use Cron Monitoring, you must have an existing Sentry account and project set ## Learn More About Cron Monitoring -- [Set Up](/product/new-monitors-and-alerts/monitors/crons/getting-started/) -Learn how to set up Sentry's job monitoring feature using our CLI, HTTP, and supported SDKs. -- [Job Monitoring](/product/new-monitors-and-alerts/monitors/crons/job-monitoring/) -Get a product walkthrough of our Job Monitoring feature. -- [Troubleshooting](/product/new-monitors-and-alerts/monitors/crons/troubleshooting/) -Get troubleshooting help. +- [Set Up](/product/monitors-and-alerts/monitors/crons/getting-started/) + Learn how to set up Sentry's job monitoring feature using our CLI, HTTP, and supported SDKs. +- [Job Monitoring](/product/monitors-and-alerts/monitors/crons/job-monitoring/) + Get a product walkthrough of our Job Monitoring feature. +- [Troubleshooting](/product/monitors-and-alerts/monitors/crons/troubleshooting/) + Get troubleshooting help. diff --git a/docs/product/new-monitors-and-alerts/monitors/crons/job-monitoring.mdx b/docs/product/monitors-and-alerts/monitors/crons/job-monitoring.mdx similarity index 77% rename from docs/product/new-monitors-and-alerts/monitors/crons/job-monitoring.mdx rename to docs/product/monitors-and-alerts/monitors/crons/job-monitoring.mdx index 1808ff28f6dac..ca10b5313f073 100644 --- a/docs/product/new-monitors-and-alerts/monitors/crons/job-monitoring.mdx +++ b/docs/product/monitors-and-alerts/monitors/crons/job-monitoring.mdx @@ -32,9 +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 alerts for a specific environment or set of environments, [configure the -environment](/product/alerts/create-alerts/issue-alert-config/#environment) for -your monitor alert. +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/). ### Existing Limitations: @@ -48,7 +46,7 @@ your monitor alert. Cron monitors can be assigned an owner as either a Team or specific Organization Member. When an owner is assigned to a monitor, new issues produced by failures of that monitor will be assigned to that owner. -Monitor owners also receive notifications when a monitor becomes broken. Learn more about [broken monitor notifications](/product/new-monitors-and-alerts/monitors/crons/troubleshooting/#why-was-my-monitor-environment-marked-as-broken-or-automatically-muted). +Monitor owners also receive notifications when a monitor becomes broken. Learn more about [broken monitor notifications](/product/monitors-and-alerts/monitors/crons/troubleshooting/#why-was-my-monitor-environment-marked-as-broken-or-automatically-muted). ## Pausing Your Cron Monitor @@ -58,4 +56,4 @@ Note: Pausing your cron monitor won't pause the execution of your job or change ### Automatic Muting -If a monitor environment has been consistently broken for an extended period, Sentry may automatically mute it to reduce notification noise. Unlike pausing, muting does not stop billing. Learn more about [automatic muting and broken monitors](/product/new-monitors-and-alerts/monitors/crons/troubleshooting/#why-was-my-monitor-environment-marked-as-broken-or-automatically-muted). +If a monitor environment has been consistently broken for an extended period, Sentry may automatically mute it to reduce notification noise. Unlike pausing, muting does not stop billing. Learn more about [automatic muting and broken monitors](/product/monitors-and-alerts/monitors/crons/troubleshooting/#why-was-my-monitor-environment-marked-as-broken-or-automatically-muted). diff --git a/docs/product/new-monitors-and-alerts/monitors/crons/troubleshooting.mdx b/docs/product/monitors-and-alerts/monitors/crons/troubleshooting.mdx similarity index 84% rename from docs/product/new-monitors-and-alerts/monitors/crons/troubleshooting.mdx rename to docs/product/monitors-and-alerts/monitors/crons/troubleshooting.mdx index 19e87113ebb2e..5d3b27727a570 100644 --- a/docs/product/new-monitors-and-alerts/monitors/crons/troubleshooting.mdx +++ b/docs/product/monitors-and-alerts/monitors/crons/troubleshooting.mdx @@ -24,20 +24,20 @@ If the monitor environment continues to be broken after an additional 14 days, w **Important Notes:** -- You can disable these notifications in your [personal notification settings](/product/new-monitors-and-alerts/alerts/notifications/notification-settings/) +- You can disable these notifications in your [personal notification settings](/product/notifications/notification-settings/) - Muting a monitor does **not** stop billing. You will continue to be charged for muted monitors. To stop billing, you must deactivate or delete the monitor. See [Manage Your Cron Monitors](/pricing/quotas/manage-cron-monitors) for more details. -You may not have [set up your monitor correctly](/product/new-monitors-and-alerts/monitors/crons/getting-started/http/). Make sure you've configured check-ins for your cron job. +You may not have [set up your monitor correctly](/product/monitors-and-alerts/monitors/crons/getting-started/http/). Make sure you've configured check-ins for your cron job. -You may not have [set up alerts for your monitor](/product/new-monitors-and-alerts/monitors/crons/getting-started/http/#alerts). +You may not have [set up alerts for your monitor](/product/monitors-and-alerts/monitors/crons/getting-started/http/#alerts). diff --git a/docs/product/new-monitors-and-alerts/monitors/img/create-monitor.png b/docs/product/monitors-and-alerts/monitors/img/create-monitor.png similarity index 100% rename from docs/product/new-monitors-and-alerts/monitors/img/create-monitor.png rename to docs/product/monitors-and-alerts/monitors/img/create-monitor.png diff --git a/docs/product/new-monitors-and-alerts/monitors/index.mdx b/docs/product/monitors-and-alerts/monitors/index.mdx similarity index 84% rename from docs/product/new-monitors-and-alerts/monitors/index.mdx rename to docs/product/monitors-and-alerts/monitors/index.mdx index daa471cafb193..479203f9f0a4b 100644 --- a/docs/product/new-monitors-and-alerts/monitors/index.mdx +++ b/docs/product/monitors-and-alerts/monitors/index.mdx @@ -2,11 +2,10 @@ title: Monitors description: Generate issues and trigger alerts by creating custom monitors to track errors, performance, and metrics. sidebar_order: 70 +early_access: true --- - - New Monitors and Alerts is currently in beta. Beta features are still a work in progress and may have bugs. We recognize the irony. Help improve this feature by providing feedback on our [GitHub discussion](https://github.com/getsentry/sentry/discussions/101960). - + Sentry's Monitors are used to customize when to turn errors and performance problems into issues. They can be configured using conditional rules to create issues when specific criteria are met. For example, you could monitor when the duration of a transaction takes longer than 3 seconds on a particular browser. Further automate your issue creation experience using Monitors to automatically add assignees and set different priorities based on severity. @@ -17,8 +16,8 @@ Sentry's Monitors are used to customize when to turn errors and performance prob You can use Custom Monitors to track errors based on span attributes and custom metrics, the uptime and performance of any scheduled, recurring job, or the uptime and performance of any HTTP request. - [Metric Monitors](#metric-monitor-settings): Track for errors based on span attributes and custom metrics. -- [Cron Monitors](/product/new-monitors-and-alerts/monitors/crons/): Track the uptime and performance of any scheduled, recurring job. -- [Uptime Monitors](/product/new-monitors-and-alerts/monitors/uptime-monitoring/): Track the uptime and performance of any HTTP request. +- [Cron Monitors](/product/monitors-and-alerts/monitors/crons/): Track the uptime and performance of any scheduled, recurring job. +- [Uptime Monitors](/product/monitors-and-alerts/monitors/uptime-monitoring/): Track the uptime and performance of any HTTP request. ### Default Monitors @@ -28,7 +27,8 @@ Sentry also provides default monitors that are automatically created for you whe - **Error Monitor**: The default monitor based on [issue grouping/fingerprint rules](/concepts/data-management/event-grouping/) ## Creating a Monitor -![create-monitor =800x](./img/create-monitor.png) + + To create a Monitor, navigate to the [Monitors](https://sentry.io/issues/monitors/new/) page and click **Create Monitor**. You can choose between the three types of Monitors (metric, cron, and uptime). Each one will have a separate configuration process. @@ -42,8 +42,7 @@ Monitors are made of attributes that define when to create an issue, and actions - Set priority based on attributes - Set auto-resolve based on attributes - Set the assignee -- Connect [Custom Alerts](/product/new-monitors-and-alerts/alerts/) like external notifications and ticket creation -to pair with your Monitor +- Connect [Custom Alerts](/product/monitors-and-alerts/alerts/) like external notifications and ticket creation to pair with your Monitor @@ -65,6 +64,7 @@ Choose the metric, the interval for how often to check, and the way you want to When setting an absolute number threshold, a percentage change, or dynamic anomaly detection, here are a few considerations: Use a fixed threshold or a percentage change threshold when you have a clear idea of what constitutes good or bad performance. Here are some examples: + - When your app's crash rate exceeds 1% - When your app's transaction volume drops to zero - When any issue affects more than 100 enterprise users in a day @@ -83,13 +83,13 @@ Dynamic thresholds are good for when it’s cumbersome to create fixed threshold Cron Monitors are used to track the uptime and performance of any scheduled, recurring job. -Choose the schedule for how often to check, set the check-in margin, the max runtime, and failure tolerance. Learn how to set up a [Cron Monitor](/product/new-monitors-and-alerts/monitors/crons/getting-started/). +Choose the schedule for how often to check, set the check-in margin, the max runtime, and failure tolerance. Learn how to set up a [Cron Monitor](/product/monitors-and-alerts/monitors/crons/getting-started/). ### Uptime Monitor Settings Uptime Monitors are used to track the uptime and performance of any HTTP request. -Choose the URL and HTTP request you wish to monitor. Set the interval, timeout, any headers you wish to include, and failure tolerance. Learn how to set up an [Uptime Monitor](/product/new-monitors-and-alerts/monitors/uptime-monitoring/). +Choose the URL and HTTP request you wish to monitor. Set the interval, timeout, any headers you wish to include, and failure tolerance. Learn how to set up an [Uptime Monitor](/product/monitors-and-alerts/monitors/uptime-monitoring/). ## Managing Monitors diff --git a/docs/product/new-monitors-and-alerts/monitors/uptime-monitoring/automatic-detection.mdx b/docs/product/monitors-and-alerts/monitors/uptime-monitoring/automatic-detection.mdx similarity index 64% rename from docs/product/new-monitors-and-alerts/monitors/uptime-monitoring/automatic-detection.mdx rename to docs/product/monitors-and-alerts/monitors/uptime-monitoring/automatic-detection.mdx index 965888a016e52..1fdd683f9a201 100644 --- a/docs/product/new-monitors-and-alerts/monitors/uptime-monitoring/automatic-detection.mdx +++ b/docs/product/monitors-and-alerts/monitors/uptime-monitoring/automatic-detection.mdx @@ -4,7 +4,7 @@ sidebar_order: 51 description: "Learn how automatic detection of uptime monitoring works." --- -In order to be able to automatically detect uptime alerts, we analyze all the URLs detected in your project's captured error data to find the hostname that appears most frequently. This helps ensure that your most critical hostname is continuously monitored, enhancing the reliability and availability of your web services. We then create an uptime alert if it passes our [uptime check criteria](/product/new-monitors-and-alerts/monitors/uptime-monitoring/#uptime-check-criteria). Automatic uptime checks are configured to run once a minute as GET requests. +In order to be able to automatically detect uptime alerts, we analyze all the URLs detected in your project's captured error data to find the hostname that appears most frequently. This helps ensure that your most critical hostname is continuously monitored, enhancing the reliability and availability of your web services. We then create an uptime alert if it passes our [uptime check criteria](/product/monitors-and-alerts/monitors/uptime-monitoring/#uptime-check-criteria). Automatic uptime checks are configured to run once a minute as GET requests. The automatic creation of Uptime Monitors only happens if there are no other existing uptime monitors configured. @@ -17,10 +17,10 @@ To avoid creating flaky alerts, the hostname undergoes an "onboarding period" of `GET https://www.example.com/`. -Once an automatically detected uptime alert has been created, you'll be able to [customize its configuration](/product/alerts/create-alerts/uptime-alert-config/), including the HTTP request method, headers, and request body. +Once an automatically detected **Uptime Monitor** has been created, you can customize its configuration—including the HTTP request method, headers, and request body—from the [Monitors](https://sentry.io/issues/monitors/) page. ## Disabling Automatic Detection -If you prefer not to use automatically detected uptime alerts, you can delete them directly from your [Alerts page](https://sentry.io/orgredirect/organizations/:orgslug/alerts/rules). +If you prefer not to use automatically detected Uptime Monitors, you can delete them from the [Monitors](https://sentry.io/issues/monitors/) page. -**Once deleted, these automatically detected uptime alerts will not be re-created in the future.** +**Once deleted, these automatically detected Uptime Monitors will not be re-created in the future.** diff --git a/docs/product/new-monitors-and-alerts/monitors/uptime-monitoring/img/allow-sampling-new.png b/docs/product/monitors-and-alerts/monitors/uptime-monitoring/img/allow-sampling-new.png similarity index 100% rename from docs/product/new-monitors-and-alerts/monitors/uptime-monitoring/img/allow-sampling-new.png rename to docs/product/monitors-and-alerts/monitors/uptime-monitoring/img/allow-sampling-new.png diff --git a/docs/product/new-monitors-and-alerts/monitors/uptime-monitoring/img/uptime-issue-alert-rule.png b/docs/product/monitors-and-alerts/monitors/uptime-monitoring/img/uptime-issue-alert-rule.png similarity index 100% rename from docs/product/new-monitors-and-alerts/monitors/uptime-monitoring/img/uptime-issue-alert-rule.png rename to docs/product/monitors-and-alerts/monitors/uptime-monitoring/img/uptime-issue-alert-rule.png diff --git a/docs/product/new-monitors-and-alerts/monitors/uptime-monitoring/img/uptime-request-span.png b/docs/product/monitors-and-alerts/monitors/uptime-monitoring/img/uptime-request-span.png similarity index 100% rename from docs/product/new-monitors-and-alerts/monitors/uptime-monitoring/img/uptime-request-span.png rename to docs/product/monitors-and-alerts/monitors/uptime-monitoring/img/uptime-request-span.png diff --git a/docs/product/new-monitors-and-alerts/monitors/uptime-monitoring/index.mdx b/docs/product/monitors-and-alerts/monitors/uptime-monitoring/index.mdx similarity index 85% rename from docs/product/new-monitors-and-alerts/monitors/uptime-monitoring/index.mdx rename to docs/product/monitors-and-alerts/monitors/uptime-monitoring/index.mdx index c7ab06a8e20bb..eebc998ec7618 100644 --- a/docs/product/new-monitors-and-alerts/monitors/uptime-monitoring/index.mdx +++ b/docs/product/monitors-and-alerts/monitors/uptime-monitoring/index.mdx @@ -13,9 +13,9 @@ By leveraging [distributed tracing](/concepts/key-terms/tracing/distributed-trac ## Set Up -Uptime is [automatically configured](/product/new-monitors-and-alerts/monitors/uptime-monitoring/automatic-detection/) as a new alert for the most frequently encountered hostname in all URLs of your error data, ensuring continuous monitoring of your most critical hostname right out of the box. +Uptime is [automatically configured](/product/monitors-and-alerts/monitors/uptime-monitoring/automatic-detection/) as a new alert for the most frequently encountered hostname in all URLs of your error data, ensuring continuous monitoring of your most critical hostname right out of the box. -You can also [create uptime monitoring alerts](/product/alerts/create-alerts/) for specific URLs. They're fully customizable with request details such as the HTTP method, headers, and body. +You can also create an **Uptime Monitor** from the [Monitors](https://sentry.io/issues/monitors/new/) page for specific URLs. Uptime Monitors are fully customizable with request details such as the HTTP method, headers, and body. ## Uptime Check Criteria @@ -58,7 +58,7 @@ Uptime request spans are free and will not count against your [span quota](/pric ## Notifications -To start getting notifications for a new downtime issue, [configure an issue alert](/product/alerts/create-alerts/issue-alert-config/) and choose the issue category "outage". Then choose how you'd like to be notified (via email, Slack, and so on). +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. ![Uptime issue alert rule configuration](./img/uptime-issue-alert-rule.png) diff --git a/docs/product/new-monitors-and-alerts/monitors/uptime-monitoring/troubleshooting.mdx b/docs/product/monitors-and-alerts/monitors/uptime-monitoring/troubleshooting.mdx similarity index 68% rename from docs/product/new-monitors-and-alerts/monitors/uptime-monitoring/troubleshooting.mdx rename to docs/product/monitors-and-alerts/monitors/uptime-monitoring/troubleshooting.mdx index cddd7009dd8c1..e41d1b9bde31e 100644 --- a/docs/product/new-monitors-and-alerts/monitors/uptime-monitoring/troubleshooting.mdx +++ b/docs/product/monitors-and-alerts/monitors/uptime-monitoring/troubleshooting.mdx @@ -15,7 +15,7 @@ If you need to configure your firewall allowlist to include Sentry's Uptime Bot, Our uptime check requests use the following `User-Agent`: ``` -SentryUptimeBot/1.0 (+http://docs.sentry.io/product/monitors/uptime-monitoring/) +SentryUptimeBot/1.0 (+https://docs.sentry.io/product/monitors-and-alerts/monitors/uptime-monitoring/) ``` ### IP Addresses @@ -24,4 +24,4 @@ See [IP Ranges](/security-legal-pii/security/ip-ranges/#uptime-monitoring) for a ## Verify That Issue Alerts Match Downtime Issues -Uptime alerts create downtime issues. If you're not receiving notifications when downtimes are detected, make sure you've properly [configured an issue alert](/product/alerts/create-alerts/issue-alert-config/) with the issue category "uptime". +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. diff --git a/docs/product/new-monitors-and-alerts/monitors/uptime-monitoring/uptime-tracing.mdx b/docs/product/monitors-and-alerts/monitors/uptime-monitoring/uptime-tracing.mdx similarity index 82% rename from docs/product/new-monitors-and-alerts/monitors/uptime-monitoring/uptime-tracing.mdx rename to docs/product/monitors-and-alerts/monitors/uptime-monitoring/uptime-tracing.mdx index f2044d9ccecbd..a77d82708f28b 100644 --- a/docs/product/new-monitors-and-alerts/monitors/uptime-monitoring/uptime-tracing.mdx +++ b/docs/product/monitors-and-alerts/monitors/uptime-monitoring/uptime-tracing.mdx @@ -9,11 +9,11 @@ Sentry's Uptime Monitoring uses [distributed tracing](/product/tracing/#whats-di When uptime checks are performed, Sentry creates a **trace** that shows the complete request lifecycle. This trace contains: -- **Uptime request spans**: A [default set of root spans](/product/new-monitors-and-alerts/monitors/uptime-monitoring/#uptime-request-spans) that identifies this as an uptime check +- **Uptime request spans**: A [default set of root spans](/product/monitors-and-alerts/monitors/uptime-monitoring/#uptime-request-spans) that identifies this as an uptime check - **Application spans**: Individual operations like database queries, API calls, and cache operations, configured through distributed tracing - **Error events**: Any exceptions or failures that occur during the request -**Error tracing** captures when things go wrong, while **span tracing** shows the performance and flow of operations. Together, they provide complete visibility into why an uptime check failed. Span tracing is disabled by default for uptime checks, but can be enabled by allowing sampling in your [Uptime Alert settings](/product/alerts/create-alerts/uptime-alert-config/). Errors plus spans focus on problems, while uptime monitoring plus spans focus on performance. +**Error tracing** captures when things go wrong, while **span tracing** shows the performance and flow of operations. Together, they provide complete visibility into why an uptime check failed. Span tracing is disabled by default for uptime checks, but can be enabled by allowing sampling in your [Uptime Monitor](/product/monitors-and-alerts/monitors/uptime-monitoring/) settings. Errors plus spans focus on problems, while uptime monitoring plus spans focus on performance. ## How Uptime Tracing Works @@ -26,7 +26,7 @@ Example Uptime check request: ```HTTP GET /example-uptime-endpoint HTTP/1.1 Host: sentry.io -User-Agent: SentryUptimeBot/1.0 (+http://docs.sentry.io/product/monitors/uptime-monitoring/) +User-Agent: SentryUptimeBot/1.0 (+https://docs.sentry.io/product/monitors-and-alerts/monitors/uptime-monitoring/) Sentry-Trace: 32d4011600324838afcd666edadc1d09-8d5ca7419a02ca36 ``` @@ -63,15 +63,16 @@ Sentry.init({ ## Tracing Spans -There are two sets of spans available for uptime checks: +There are two sets of spans available for uptime checks: + 1. **Uptime request spans**. These are automatically created by Sentry for every uptime check request. You can find them as the root of any uptime issue's trace. 2. **Application spans**. These are spans that are configured through distributed tracing. You can find them as the children of uptime request spans. -Unlike error tracing, span tracing that you configure is **disabled** by default for uptime checks, but can be enabled by allowing sampling in your [Uptime Alert settings](/product/alerts/create-alerts/uptime-alert-config/). Enabling span tracing can be helpful because it provides a detailed view of the timing and flow of requests and operations during uptime checks, which is especially useful for diagnosing timeouts or performance issues. +Unlike error tracing, span tracing that you configure is **disabled** by default for uptime checks, but can be enabled by allowing sampling in your [Uptime Monitor](/product/monitors-and-alerts/monitors/uptime-monitoring/) settings. Enabling span tracing can be helpful because it provides a detailed view of the timing and flow of requests and operations during uptime checks, which is especially useful for diagnosing timeouts or performance issues. ### Enabling Uptime Tracing for Spans -To enable span tracing, modify your Uptime Alert settings with the "Allow Sampling" option. This will ensure that Sentry defers the sampling decision to your SDK, which will follow the trace sample rate you've configured. +To enable span tracing, modify your Uptime Monitor with the "Allow Sampling" option. This will ensure that Sentry defers the sampling decision to your SDK, which will follow the trace sample rate you've configured. Because uptime requests won't override your SDK’s error sampling rate, some errors may not appear in traces if that rate is set to below 1. diff --git a/docs/product/new-monitors-and-alerts/alerts/best-practices.mdx b/docs/product/new-monitors-and-alerts/alerts/best-practices.mdx deleted file mode 100644 index 6b66ba75d0dac..0000000000000 --- a/docs/product/new-monitors-and-alerts/alerts/best-practices.mdx +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: Alerts Best Practices -keywords: ["best practice", "alerting", "manage noise"] -sidebar_order: 30 -description: "Learn best practices for creating alerts." ---- - - - New Monitors and Alerts is currently in beta. Beta features are still a work in progress and may have bugs. We recognize the irony. Help improve this feature by providing feedback on our [GitHub discussion](https://github.com/getsentry/sentry/discussions/101960). - - -Alerts should notify you when there's an important problem with your application. But they shouldn't be too noisy, because that can lead to alert fatigue. The following best practices will help you create relevant alerts that notify the people equipped to fix the problem. - - -### Selecting Sources and Environments - -Selecting your sources and environments is the first step in creating a focused Alert. For example, by selecting a [Monitor](/product/new-monitors-and-alerts/monitors/) as a source, you have already narrowed down the Alert's scope to the issues belonging to that Monitor. By contrast, if you select all issues under a project, you may want to use [filters](#filtering-and-filter-categories) more heavily to further narrow down the scope of your Alert. - -Monitors will already have some kind of threshold set, but you can also select specific Alerting thresholds by adding them as filters to your Alert. - -### Alerting Based on State Changes - -The following triggers, or `WHEN` conditions, capture state changes in issues: - -- A new issue is created -- An issue is escalated -- The issue changes state from resolved to unresolved - -If you set an alert to trigger on every state change, this is likely to result in too many alerts if you're running an app with high traffic. In particular, regressions will be more common than you expect because Sentry auto-resolves issues after 14 days of silence (configurable), and many issues keep coming back after the 14-day window. - -Rather than create an alert for these state changes, we recommend you use the [**Review List**](/product/issues/states-triage/#mark-reviewed) in the "For Review" tab on the [Issues page](https://sentry.io/issues/), containing only issues that have had a state change in the last seven days. - -### Filtering and Filter Categories - -Use filters to reduce the noise in your alerts. For example, you may want to only alert on issues that are assigned to a specific team, or that are in a specific category, and a certain priority. Use tags to further filter on specific parts of your application, like for a new release or a specific region. Or prioritize the latest release, or only alert on issues that have happened at least 10 times. - -There are a few categories of filters you can use to reduce noise in your alerts: -- **Issue attributes**: Filters based on issue attributes, such as priority, assignee, or category (for example, "feedback" or "bug"). -- **Frequency**: Filters based on the frequency of issues, such as the number of events or users affected. -- **Event attributes**: Filters based on event attributes, such as the related release, or custom attributes passed in with the event, like path, region, or IP address. - -### Routing - -These routing best practices ensure that you alert the right people about a problem in your application. - -- **Ownership Rules**: Use [ownership rules and code owners](/product/issues/ownership-rules/) to let Sentry automatically send alerts to the right people, as well as to ease configuration burden. You can configure ownership in your project's [Ownership Rules](https://sentry.io/orgredirect/organizations/:orgslug/settings/projects/:projectId/ownership/) settings. In the case of ownership rules, when there are no matching owners, the alert goes to all project members by default. If this is too broad, and you'd like a specific owner to be the fallback, end your ownership rules with a rule like `*:`. -- **Delivery methods for different priorities**: Use different delivery methods to separate alerts of different priorities. For example, you might route from highest to lowest priority like so: - - High priority: Page (for example, PagerDuty or OpsGenie) - - Medium priority: Notification (for example, Slack) - - Low priority: Email -- **Review List**: Use [this list](/product/issues/states-triage/#mark-reviewed), found in the "For Review" tab of **Issues**, to check on your lowest priority issues instead of configuring alerts for them. -- **Build an integration**: If you would like to route alert notifications to solutions with which Sentry doesn't yet have an out-of-the-box integration, you can use our [integration platform](/organization/integrations/integration-platform/). When you create an integration, it will be available in the alert actions menu. - -## Alert Conditions Best Practices - -Both frequency-based issue alerts and metric alerts can notify you in two ways: - -- When they cross a [fixed threshold](#fixed-thresholds) -- When they deviate from their historical behavior, based on a [dynamic threshold](#dynamic-thresholds-change-alerts), or what we call a _change alert_ - -### Fixed Thresholds - -Fixed thresholds are most effective when you have a clear idea of what constitutes good or bad performance. Typically, they’re the type of threshold you’ll use most often when setting up alerts. Some examples of fixed thresholds are: - -- When your app's crash rate exceeds 1% -- When your app's transaction volume drops to zero -- When any issue affects more than 100 enterprise users in a day -- When the response time of a key transaction exceeds 500 ms - -### Dynamic Thresholds: Change Alerts - -Dynamic thresholds help you detect when a metric deviates significantly from its “normal” range. For example, the percentage of sessions affected by an issue in the last 24 hours is _20% greater than one week ago_ (dynamic), rather than the percentage of sessions affected is simply _greater than 20%_ (fixed). - -Dynamic thresholds are good for when it’s cumbersome to create fixed thresholds for every metric of interest, or when you don’t have an expected value for a metric, such as in the following scenarios: - -- **Seasonal fluctuations**: Seasonal metrics, such as number of transactions (which fluctuates daily), are more accurately monitored by comparing them to the previous day or week, rather than a fixed value. -- **Unpredictable growth**: Fixed-threshold alerts may require continuous manual adjustment as traffic patterns change, such as with a fast-growing app. Dynamic thresholds work regardless of changing traffic patterns. - -You may want to **complement** (more common) rather than **replace** (less common) fixed thresholds with dynamic thresholds. - -Learn more about [change alerts for issue alerts](/product/alerts/create-alerts/issue-alert-config/#change-alerts) and [change alerts for metric alerts](/product/alerts/create-alerts/metric-alert-config/#change-alerts-percent-change) in the full documentation. diff --git a/docs/product/new-monitors-and-alerts/alerts/index.mdx b/docs/product/new-monitors-and-alerts/alerts/index.mdx deleted file mode 100644 index 09e2f6adcb9be..0000000000000 --- a/docs/product/new-monitors-and-alerts/alerts/index.mdx +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Alerts -description: Create custom Alerts to pair with Issues. -sidebar_order: 60 -og_image: /og-images/product-alerts.png ---- - - - New Monitors and Alerts is currently in beta. Beta features are still a work in progress and may have bugs. We recognize the irony. Help improve this feature by providing feedback on our [GitHub discussion](https://github.com/getsentry/sentry/discussions/101960). - - -Sentry's Alerts help you take action on issues in your projects. When an issue changes state, is created, or passes a threshold, an alert is triggered to perform external actions like sending notifications, creating tickets, or calling webhooks and integrations. Choose to alert based on the conditions of specific [Monitors](/product/new-monitors-and-alerts/monitors/), or all issues in a project. - -### Some examples of when you could use an Alert -- Send a notification to your team's Slack channel when a new error occurs in an existing issue -- Create a ticket in JIRA when an issue is created and a team member is assigned -- Call a webhook or integration when an issue is created - -![alert-config =800x](./img/alert-details.png) - -## Creating an Alert - -To create an Alert, navigate to the [Alerts](https://sentry.io/monitors/alerts) page and click **Create Alert**. - -{/* */} - -### Select Sources and Environments - -The source of an Alert can come from either one or more projects, or one or more Monitors. Once you've selected your sources, you can set the environment(s) for the Alerts to run on. By default, Alerts will run on 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 - -Actions are the events that will be executed when the Alert is run. You can send notifications on any channel you're integrated with, create tickets, for example, in JIRA, or call a webhook or integration. You can set multiple actions in a single Alert. Learn more about Sentry's [integrations](/organization/integrations/). - -**Note:** Some Monitors can only alert on certain integrations. See Sentry's [integrations](/organization/integrations/) for more information. - -## Managing Alerts - -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. - -## 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/new-monitors-and-alerts/alerts/notifications/). diff --git a/docs/product/new-monitors-and-alerts/alerts/notifications/img/deploy-emails.png b/docs/product/new-monitors-and-alerts/alerts/notifications/img/deploy-emails.png deleted file mode 100644 index cadd95e3de6d1..0000000000000 Binary files a/docs/product/new-monitors-and-alerts/alerts/notifications/img/deploy-emails.png and /dev/null differ diff --git a/docs/product/new-monitors-and-alerts/alerts/notifications/img/issue-alert-notification-detail.png b/docs/product/new-monitors-and-alerts/alerts/notifications/img/issue-alert-notification-detail.png deleted file mode 100644 index e5279a1f649ea..0000000000000 Binary files a/docs/product/new-monitors-and-alerts/alerts/notifications/img/issue-alert-notification-detail.png and /dev/null differ diff --git a/docs/product/new-monitors-and-alerts/alerts/notifications/img/issue-alert-notification.png b/docs/product/new-monitors-and-alerts/alerts/notifications/img/issue-alert-notification.png deleted file mode 100644 index 28699ec379ad4..0000000000000 Binary files a/docs/product/new-monitors-and-alerts/alerts/notifications/img/issue-alert-notification.png and /dev/null differ diff --git a/docs/product/new-monitors-and-alerts/alerts/notifications/img/subscription_notifications_settings.png b/docs/product/new-monitors-and-alerts/alerts/notifications/img/subscription_notifications_settings.png deleted file mode 100644 index ebfe3932cb96b..0000000000000 Binary files a/docs/product/new-monitors-and-alerts/alerts/notifications/img/subscription_notifications_settings.png and /dev/null differ diff --git a/docs/product/new-monitors-and-alerts/alerts/notifications/img/us-ereport.png b/docs/product/new-monitors-and-alerts/alerts/notifications/img/us-ereport.png deleted file mode 100644 index a33b17dc1e957..0000000000000 Binary files a/docs/product/new-monitors-and-alerts/alerts/notifications/img/us-ereport.png and /dev/null differ diff --git a/docs/product/new-monitors-and-alerts/alerts/notifications/index.mdx b/docs/product/new-monitors-and-alerts/alerts/notifications/index.mdx deleted file mode 100644 index 66a7b6a689220..0000000000000 --- a/docs/product/new-monitors-and-alerts/alerts/notifications/index.mdx +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: Sentry Notifications -sidebar_order: 40 -description: >- - Learn about the types of notifications that Sentry sends you, and how to - manage them. -og_image: /og-images/product-alerts-notifications.png ---- - -Sentry sends you notifications regarding workflow activities, [release deploys](/product/releases/), and [quota usage](/pricing/quotas/), as well as weekly reports. These notifications let you know about: - -- [Workflow](#workflow-notifications): Activity involving user actions and state changes on issues. This includes activities such as issue resolution, assignment, comments, and regressions. -- [Deploy](#deploy-notifications): When a release you have commits on is deployed. -- [Spend](#spend-notifications): When you're getting close to spending your reserved volume, your quotas are depleted, and/or your pay-as-you-go budget is being put to use. -- [Weekly Reports](#weekly-reports): A summary of your organization's Sentry activity. - -You can manage these notifications in **User Settings > Notifications**. - -## Workflow Notifications - -Sentry sends workflow notifications to let you know about [issue state](/product/issues/states-triage/) changes. Workflow relates to actions that help you manage your issues, such as changing an issue’s state or commenting on it. By default, Sentry sends these notifications by email to members who are subscribed to the issue (see below for how subscription is determined). Workflow notifications are sent for: - -- **Issue Resolved**: When a new issue is spotted in your code, it's in the Unresolved state. The issue state changes to Resolved when a project team member resolves it, either by manually changing its state in [sentry.io](https://sentry.io)) or by submitting a fix, or because of the project’s auto-resolve feature (if configured). -- **Regressions**: A regression happens when the state of an issue changes from Resolved back to Unresolved. An email is sent to all project team members. -- **Comments**: When a team member adds a new comment in the “Activity” tab of the detail page for the issue. -- **Assignment**: When an issue is assigned or unassigned. -- **Event Processing Problems**: When there's a problem with processing error events you've sent to Sentry. - -You receive workflow notifications when you subscribe to an issue in one of the following ways by: - -- You or your team being assigned to the issue -- Clicking the bell icon to subscribe to an issue -- Commenting on an issue -- Bookmarking an issue -- Resolving, unresolving, or archiving an issue -- Resolving an unassigned issue with the ["Claim Unassigned Issues I've Resolved"](/product/alerts/notifications/notification-settings/#my-activity) option turned on - -You or your team will become participants once you're subscribed to an issue. Participants can be viewed from the right hand sidebar at the bottom of the issue details page. Note that participant notifications may have some overlap with alerts that are configured on a per-project basis. - -You'll be unsubscribed from an issue if you: - -- Are unassigned from the issue -- Delete the only comment you left on an issue -- Remove a bookmark from an issue - -## Deploy Notifications - -Sentry sends deploy notifications to users who have committed to the release that was deployed. Learn more in the [deploy documentation](/product/releases/setup/#notify-sentry). - -![An example of an email describing deployed features](./img/deploy-emails.png) - -## Spend Notifications - -By default, Sentry sends spend notifications to all owners and billing members of an organization when: - -- 80% of the organization's reserved volume (such as errors, spans, and/or attachments) has been depleted. -- The entire reserved volume and any pay-as-you-go budget for a category (such as errors, spans, and/or attachments) has been depleted. -- 80% of the organization's pay-as-you-go budget has been used. - -Learn more in the [Pricing & Billing docs](/pricing/quotas/). - -### Spend Notifications for Your Organization - -Billing or owner members can set up their notification thresholds by going to: **Settings > Subscriptions > Notifications**. - -![Notifications tab of Subscription settings page](./img/subscription_notifications_settings.png) - -From here, you can customize the notification thresholds for your organization for when you're close to reaching one or both of the below: - -- **Subscription Consumption**: Set the percentage of the quota usage threshold(s) that will trigger a notification. - -- **Pay-as-you-go Consumption**: Set the percentage of the Pay-as-you-go usage threshold(s) that will trigger a notification. - -### Personal Spend Notifications - -Owner and billing members of an organization can also customize how they personally receive spend notifications. This can be done from the user's notification settings page: - -1. Go to the [**Notifications**](https://sentry.io/settings/account/notifications/) page (in your **User Settings**). -2. Scroll to the **Spend** row and click on the cog wheel. -3. From the [**Spend Notifications**](https://sentry.io/settings/account/notifications/quota/) page, you'll be able to select the types of notifications you get as well as how you'd like to get them (via Slack, email, and so on). - -## Weekly Reports - -Sentry sends weekly reports every Saturday, by email. Reports contain a summary of your organization's Sentry activity over the last week. - -![Weekly Report email sample.](./img/us-ereport.png) diff --git a/docs/product/new-monitors-and-alerts/alerts/notifications/notification-settings.mdx b/docs/product/new-monitors-and-alerts/alerts/notifications/notification-settings.mdx deleted file mode 100644 index c44a515d03445..0000000000000 --- a/docs/product/new-monitors-and-alerts/alerts/notifications/notification-settings.mdx +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Personal Notification Settings -sidebar_order: null -description: Learn how to manage your personal notifications settings. -og_image: /og-images/product-alerts-notifications-notification-settings.png ---- - -You can update your personal notification settings for things like [workflow](/product/new-monitors-and-alerts/alerts/notifications/), deploy, issue alert, and [spike protection](/pricing/quotas/spike-protection/) by turning them on or off, specifying how you'd like to be notified (via email, Slack, or both), and more. Users who **aren't** on an [Enterprise](https://sentry.io/pricing/) plan can also configure their quota notifications. - -![Issue alert notification page](./img/issue-alert-notification.png) - -To make updates, go to your [user settings](https://sentry.io/settings/account/notifications/), select "Notifications", then click on the notification type you want to update. - -![Issue alert notification detail page](./img/issue-alert-notification-detail.png) - -## How to Subscribe to an Issue - -You receive workflow notifications once you’ve subscribed to an issue in one of the ways described below: - -- By clicking the subscribe "bell icon" on an issue -- By taking part in a commit that's related to the issue -- By commenting on or bookmarking the issue -- By archiving an issue until it escalates -- If you or your team is mentioned in the issue -- If you or your team is assigned to the issue - -These notifications may have some overlap with [alerts](/product/new-monitors-and-alerts/alerts/) that are configured for a project. - -## Notification Types - -Here's a list of all the personal notification types you can update: - -- **Issue Alerts:** Notifications sent from alert rules that your team's set up. (You'll still get any notifications that have been set up to be sent directly to you.) -- **Issue Workflow:** Changes in issue assignment, resolution status, and comments. -- **Deploys:** Release, environment, and commit overviews. -- **Nudges:** Notifications that require review or approval. -- **Spend:** Notifications alerting you about your organization's spend and billing quota. -- **Weekly Reports:** A summary of the past week for an organization. -- **Email Routing:** Changes to the email address that receives notifications. -- **Spike Protection:** Notifications about spikes on a per project basis. -- **My Own Activity:** Notifications about your own actions on Sentry. -- **Resolve and Auto-Assign:** When you resolve an unassigned issue, we'll auto-assign it to you. diff --git a/docs/product/new-monitors-and-alerts/index.mdx b/docs/product/new-monitors-and-alerts/index.mdx deleted file mode 100644 index 69fbbf532bb3b..0000000000000 --- a/docs/product/new-monitors-and-alerts/index.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: New Monitors and Alerts -description: "Learn more about new Monitors and Alerts features in Sentry." -sidebar_order: 8000 ---- - - - New Monitors and Alerts is currently in beta. Beta features are still a work in progress and may have bugs. We recognize the irony. Help improve this feature by providing feedback on our [GitHub discussion](https://github.com/getsentry/sentry/discussions/101960). - - -Sentry's Monitors and Alerts help you proactively track and respond to issues in your application. Use [**Monitors**](/product/new-monitors-and-alerts/monitors/) to track cron jobs, scheduled tasks, and uptime for your services. Set up [**Alerts**](/product/new-monitors-and-alerts/alerts/) to get notified when errors occur, performance degrades, or monitors fail, so you can quickly identify and resolve problems before they impact your users. - -## Learn More - - diff --git a/docs/product/new-monitors-and-alerts/monitors/crons/alerts-backend-insights-migration.mdx b/docs/product/new-monitors-and-alerts/monitors/crons/alerts-backend-insights-migration.mdx deleted file mode 100644 index 45ab3258daad7..0000000000000 --- a/docs/product/new-monitors-and-alerts/monitors/crons/alerts-backend-insights-migration.mdx +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Cron Monitoring Updates for Developers -noindex: true -draft: true -sidebar_hidden: true -og_image: /og-images/product-crons-alerts-backend-insights-migration.png ---- - -The **Cron Monitoring** feature has been relocated and restructured to improve accessibility and functionality. Previously, it was found in the sidebar under **"Crons"**, but it has now been split into two different locations: - -## Timeline View (Overview of Cron Jobs) - -- The timeline view that provided an overview of all cron jobs has moved. -- You can now find it under **Insights > Backend > Cron Monitors (Tab)**. - ![Screenshot showing new location](img/crons-as-backend-insights.png) - -## Managing Cron Monitors - -- The section for managing all of your cron monitors is now under **Alerts**. -- **Cron Monitors are now a new type of Sentry Alert**, allowing for better integration and management within the Alerts system. -- To filter and view all cron monitors easily, use the **Alert Type** filter for "Cron Monitors". - ![Screenshot showing Alerts menu and filter](img/crons-as-alerts-guide.png) diff --git a/docs/product/new-monitors-and-alerts/monitors/crons/legacy-endpoint-migration.mdx b/docs/product/new-monitors-and-alerts/monitors/crons/legacy-endpoint-migration.mdx deleted file mode 100644 index f61a57b330e76..0000000000000 --- a/docs/product/new-monitors-and-alerts/monitors/crons/legacy-endpoint-migration.mdx +++ /dev/null @@ -1,148 +0,0 @@ -# Legacy Endpoint Migration - -In the early beta of the Crons product, Check-In endpoints existed under the -`sentry.io/api/0/` API namespace. This namespace is not designed for -ingestion-level traffic, so we have since moved Check-In APIs to use -[Relay](/product/relay/) for ingestion of Check-In events. - -If you're using legacy endpoints for Crons, migrate to the new endpoints to avoid issues. - - - -The Legacy endpoints **are deprecated** and will be removed in the future, -however a date has not yet been set for their removal. We will communicate a -date when one is set. - - - -## Am I Using Legacy Endpoints? - -The SDKs do not utilize our legacy endpoints. - - - -Versions of the `sentry-cli` **before v2.19.0** are using the legacy API endpoints. [Please upgrade](/cli/installation/#updating-and-uninstalling) to the latest version. - -If your CLI is configured with an auth token, it will use the legacy API endpoints. Please update your CLI configuration to utilize your project's DSN instead. Refer to the [configuration guide](/cli/crons/#configuration) for more information. - - - -When using the HTTP endpoints, you can differentiate them like so: - -``` -# ❌ Legacy endpoints -https://sentry.io/api/0/organizations/___ORG_SLUG___/monitors// - -# ✅ Relay Check-In ingestion endpoint -https://___ORG_INGEST_DOMAIN___/api/___PROJECT_ID___/cron//___PUBLIC_KEY___/ -``` - -### What Changed? - -There are a few backward incompatible changes to be aware of. - -- There is now only a single Check-In endpoint. The "Check-In details" - endpoint has been removed. - -- The API endpoint supports both `POST` with a JSON body, as well as now - supporting `GET`. You can use query parameters to specify `status`, - `environment`, etc. - - The API endpoint will always respond with a `202` with no body (unless there - is an error). - -- Because there is no "details" endpoint, the `PUT` method for a Check-In has - also been removed. You will always use `POST` or `GET` for Check-Ins. - -- For [overlapping - jobs](/product/new-monitors-and-alerts/monitors/crons/getting-started/http/#overlapping-jobs-optional), it is - still possible to specify a `check_in_id` via the query parameters or JSON - body. However, the API no longer responds with an auto-generated Check-In ID. - If you need a stable Check-In ID, you must generate it - client-side yourself. - -- The `monitor_config` structure has changed slightly. `schedule` is now an - object of varying shape, depending on the schedule type. - - ```json - {"type": "crontab", "value": "0 * * * *"} - {"type": "interval", "value": "2", "unit": "hour"} - ``` - -## Migration examples - -See the code samples below to help you migrate from the legacy endpoints to the current ones. - -### Simple HTTP Check-Ins - -```sh -# ❌ Legacy simple `in_progress` -> `ok` check-in -curl -X POST \ - 'https://sentry.io/api/0/organizations/___ORG_SLUG___/monitors//checkins/' \ - --header 'Authorization: DSN ___PUBLIC_DSN___' \ - --header 'Content-Type: application/json' \ - --data-raw '{"status": "in_progress"}' - -curl -X POST \ - 'https://sentry.io/api/0/organizations/___ORG_SLUG___/monitors//checkins/' \ - --header 'Authorization: DSN ___PUBLIC_DSN___' \ - --header 'Content-Type: application/json' \ - --data-raw '{"status": "ok"}' - - -# ✅ New style `in_progress` -> `ok` check-in -SENTRY_INGEST="https://___ORG_INGEST_DOMAIN___" -SENTRY_CRONS="${SENTRY_INGEST}/api/___PROJECT_ID___/cron//___PUBLIC_KEY___/" - -curl "${SENTRY_CRONS}?status=in_progress" - -curl "${SENTRY_CRONS}?status=ok" -``` - -### Monitor Upsert Check-In - -```sh -# ❌ Legacy upsert monitor with a check-in -curl -X POST \ - 'https://sentry.io/api/0/organizations/___ORG_SLUG___/monitors//checkins/' \ - --header 'Authorization: DSN ___PUBLIC_DSN___' \ - --header 'Content-Type: application/json' \ - --data-raw '{"monitor_config": {"schedule": "0 * * * *", "schedule_type": "crontab"}, "status": "in_progress"}' - -# ✅ New style upsert monitor with a check-in -SENTRY_INGEST="https://___ORG_INGEST_DOMAIN___" -SENTRY_CRONS="${SENTRY_INGEST}/api/___PROJECT_ID___/cron//___PUBLIC_KEY___/" - -curl -X POST "${SENTRY_CRONS}?status=in_progress" \ - --header 'Content-Type: application/json' \ - --data-raw '{"monitor_config": {"schedule": {"type": "crontab", "value": "0 * * * *"}}, "status": "in_progress"}' - # 👉 Note that schedule is now an object ---^ -``` - -### Overlapping Job Check-Ins (specifying `check_in_id`) - -```sh -# ❌ Legacy Check-In with ID -curl -X POST \ - 'https://sentry.io/api/0/organizations/___ORG_SLUG___/monitors//checkins/' \ - --header 'Authorization: DSN ___PUBLIC_DSN___' \ - --header 'Content-Type: application/json' \ - --data-raw '{"status": "in_progress"}' -# Response { "id": "2bc1a871-a1b7-4577-82fc-fa6d2468aabc" } - -# ✅ New style upsert monitor with a check-in -CHECK_IN_ID="$(uuidgen)" -# 👉 Note that you now need to generate the Check-In UUID - -SENTRY_INGEST="https://___ORG_INGEST_DOMAIN___" -SENTRY_CRONS="${SENTRY_INGEST}/api/___PROJECT_ID___/cron//___PUBLIC_KEY___/" - -curl "${SENTRY_CRONS}?check_in_id=${CHECK_IN_ID}&status=in_progress" -# 👉 Note that no Check-In ID is returned -``` diff --git a/docs/product/alerts/notifications/img/deploy-emails.png b/docs/product/notifications/img/deploy-emails.png similarity index 100% rename from docs/product/alerts/notifications/img/deploy-emails.png rename to docs/product/notifications/img/deploy-emails.png diff --git a/docs/product/alerts/notifications/img/issue-alert-notification-detail.png b/docs/product/notifications/img/issue-alert-notification-detail.png similarity index 100% rename from docs/product/alerts/notifications/img/issue-alert-notification-detail.png rename to docs/product/notifications/img/issue-alert-notification-detail.png diff --git a/docs/product/alerts/notifications/img/issue-alert-notification.png b/docs/product/notifications/img/issue-alert-notification.png similarity index 100% rename from docs/product/alerts/notifications/img/issue-alert-notification.png rename to docs/product/notifications/img/issue-alert-notification.png diff --git a/docs/product/alerts/notifications/img/subscription_notifications_settings.png b/docs/product/notifications/img/subscription_notifications_settings.png similarity index 100% rename from docs/product/alerts/notifications/img/subscription_notifications_settings.png rename to docs/product/notifications/img/subscription_notifications_settings.png diff --git a/docs/product/alerts/notifications/img/us-ereport.png b/docs/product/notifications/img/us-ereport.png similarity index 100% rename from docs/product/alerts/notifications/img/us-ereport.png rename to docs/product/notifications/img/us-ereport.png diff --git a/docs/product/alerts/notifications/index.mdx b/docs/product/notifications/index.mdx similarity index 97% rename from docs/product/alerts/notifications/index.mdx rename to docs/product/notifications/index.mdx index 9a33b391fc4f6..593e3eb94d4a4 100644 --- a/docs/product/alerts/notifications/index.mdx +++ b/docs/product/notifications/index.mdx @@ -1,5 +1,5 @@ --- -title: Notifications +title: Sentry Notifications sidebar_order: 40 description: >- Learn about the types of notifications that Sentry sends you, and how to @@ -33,7 +33,7 @@ You receive workflow notifications when you subscribe to an issue in one of the - Commenting on an issue - Bookmarking an issue - Resolving, unresolving, or archiving an issue -- Resolving an unassigned issue with the ["Claim Unassigned Issues I've Resolved"](/product/alerts/notifications/notification-settings/#my-activity) option turned on +- Resolving an unassigned issue with the ["Claim Unassigned Issues I've Resolved"](/product/notifications/notification-settings/#my-activity) option turned on You or your team will become participants once you're subscribed to an issue. Participants can be viewed from the right hand sidebar at the bottom of the issue details page. Note that participant notifications may have some overlap with alerts that are configured on a per-project basis. diff --git a/docs/product/alerts/notifications/notification-settings.mdx b/docs/product/notifications/notification-settings.mdx similarity index 85% rename from docs/product/alerts/notifications/notification-settings.mdx rename to docs/product/notifications/notification-settings.mdx index 0cd4aec2f53a7..5858b2812fb19 100644 --- a/docs/product/alerts/notifications/notification-settings.mdx +++ b/docs/product/notifications/notification-settings.mdx @@ -5,7 +5,7 @@ description: Learn how to manage your personal notifications settings. og_image: /og-images/product-alerts-notifications-notification-settings.png --- -You can update your personal notification settings for things like [workflow](/product/alerts/notifications/), deploy, issue alert, and [spike protection](/pricing/quotas/spike-protection/) by turning them on or off, specifying how you'd like to be notified (via email, Slack, or both), and more. Users who **aren't** on an [Enterprise](https://sentry.io/pricing/) plan can also configure their quota notifications. +You can update your personal notification settings for things like [workflow](/product/notifications/), deploy, issue alert, and [spike protection](/pricing/quotas/spike-protection/) by turning them on or off, specifying how you'd like to be notified (via email, Slack, or both), and more. Users who **aren't** on an [Enterprise](https://sentry.io/pricing/) plan can also configure their quota notifications. ![Issue alert notification page](./img/issue-alert-notification.png) diff --git a/docs/product/releases/index.mdx b/docs/product/releases/index.mdx index e62a14adb32ed..2ee4c5238e5c5 100644 --- a/docs/product/releases/index.mdx +++ b/docs/product/releases/index.mdx @@ -34,7 +34,7 @@ Releases offer significant additional features when [fully configured](/product/ - Determine the issues and regressions introduced in a new release - Predict which commit caused an issue and who is likely responsible - Resolve issues by including the issue number in your commit message -- [Receive email notifications when your code gets deployed](/product/alerts/notifications/#deploy-notifications) +- [Receive email notifications when your code gets deployed](/product/notifications/#deploy-notifications) diff --git a/docs/product/sentry-basics/integrate-backend/getting-started.mdx b/docs/product/sentry-basics/integrate-backend/getting-started.mdx index e600774f637ef..2df9361289e7e 100644 --- a/docs/product/sentry-basics/integrate-backend/getting-started.mdx +++ b/docs/product/sentry-basics/integrate-backend/getting-started.mdx @@ -42,7 +42,7 @@ Follow the steps below to create a new Sentry project for a sample Django applic - **Set your alert frequency**: For the purpose of this tutorial, select **I'll create my own alerts later**. - > If you're wary of alert fatigue, learn more about how to set up your alerts in [Alerts Best Practices](/product/alerts/best-practices/). + > If you're wary of alert fatigue, learn more about how to set up your alerts in [Creating alerts](/product/alerts/create-alerts/). - **Name your project and assign it a team**: Name your project in the **Project name** field and assign a team by selecting one in the **Team** dropdown (or click **+** to create a new team). diff --git a/docs/product/sentry-basics/integrate-frontend/create-new-project.mdx b/docs/product/sentry-basics/integrate-frontend/create-new-project.mdx index d14ce1984bbdd..3f62fcbbe91bd 100644 --- a/docs/product/sentry-basics/integrate-frontend/create-new-project.mdx +++ b/docs/product/sentry-basics/integrate-frontend/create-new-project.mdx @@ -22,7 +22,7 @@ Follow the steps below to create a new Sentry project for a sample React applica - **Set your alert frequency**: For the purpose of this tutorial, select **Alert me on high priority issues**. - > If you're wary of alert fatigue, learn more about how to set up your alerts in [Alerts Best Practices](/product/alerts/best-practices/). + > If you're wary of alert fatigue, learn more about how to set up your alerts in [Creating alerts](/product/alerts/create-alerts/). - **Name your project and assign it a team**: Name your project in the **Project name** field and assign a team by selecting one in the **Team** dropdown (or click **+** to create a new team). diff --git a/docs/security-legal-pii/security/ip-ranges.mdx b/docs/security-legal-pii/security/ip-ranges.mdx index 2e9698672e0cd..84e934e54653a 100644 --- a/docs/security-legal-pii/security/ip-ranges.mdx +++ b/docs/security-legal-pii/security/ip-ranges.mdx @@ -156,7 +156,7 @@ This endpoint returns a newline-separated list of all current Uptime Monitoring -Uptime Monitoring IP addresses may change over time. If you need to programmatically verify whether a visitor is a Sentry bot, we recommend checking the [user agent](/product/uptime-monitoring/troubleshooting/#user-agent) instead. +Uptime Monitoring IP addresses may change over time. If you need to programmatically verify whether a visitor is a Sentry bot, we recommend checking the [user agent](/product/monitors-and-alerts/monitors/uptime-monitoring/troubleshooting/#user-agent) instead. diff --git a/middleware.ts b/middleware.ts index a2eb5c4e69643..1bafb712a5354 100644 --- a/middleware.ts +++ b/middleware.ts @@ -364,10 +364,6 @@ const USER_DOCS_REDIRECTS: Redirect[] = [ from: '/organization/integrations/cloud-monitoring/cloudflare-workers/', to: '/platforms/javascript/guides/cloudflare/', }, - { - from: '/product/crons/getting-started/cli/', - to: '/cli/crons/', - }, { from: '/product/data-management-settings/dynamic-sampling/', to: '/product/insights/overview/', @@ -1878,7 +1874,11 @@ const USER_DOCS_REDIRECTS: Redirect[] = [ }, { from: '/product/alerts/create-alerts/best-practices/', - to: '/product/alerts/best-practices/', + to: '/product/alerts/create-alerts/', + }, + { + from: '/product/alerts/best-practices/', + to: '/product/alerts/create-alerts/', }, { from: '/product/sentry-basics/guides/alert-notifications/routing-alerts/', @@ -1926,31 +1926,43 @@ const USER_DOCS_REDIRECTS: Redirect[] = [ }, { from: '/workflow/alerts-notifications/notifications/', - to: '/product/alerts/notifications/', + to: '/product/notifications/', }, { from: '/workflow/notifications/workflow/', - to: '/product/alerts/notifications/', + to: '/product/notifications/', }, { from: '/workflow/notifications/', - to: '/product/alerts/notifications/', - }, - { - from: '/product/notifications/', - to: '/product/alerts/notifications/', + to: '/product/notifications/', }, { from: '/learn/notifications/', - to: '/product/alerts/notifications/', + to: '/product/notifications/', }, { from: '/product/alerts-notifications/notifications/', - to: '/product/alerts/notifications/', + to: '/product/notifications/', }, { from: '/product/sentry-basics/guides/alert-notifications/notifications/', - to: '/product/alerts/notifications/', + to: '/product/notifications/', + }, + { + from: '/product/alerts/notifications/', + to: '/product/notifications/', + }, + { + from: '/product/alerts/notifications/notification-settings/', + to: '/product/notifications/notification-settings/', + }, + { + from: '/product/monitors-and-alerts/alerts/notifications/', + to: '/product/notifications/', + }, + { + from: '/product/monitors-and-alerts/alerts/notifications/notification-settings/', + to: '/product/notifications/notification-settings/', }, { from: '/workflow/integrations/amazon-sqs/', @@ -2687,7 +2699,7 @@ const USER_DOCS_REDIRECTS: Redirect[] = [ }, { from: '/product/crons/alerts/', - to: '/product/crons/getting-started/', + to: '/product/monitors-and-alerts/monitors/crons/getting-started/', }, { from: '/meta/relay/best-practices/', @@ -3738,22 +3750,22 @@ const USER_DOCS_REDIRECTS: Redirect[] = [ from: '/security-legal-pii/security/security-policy-reporting/', to: '/platform-redirect/?next=/security-policy-reporting/', }, - /* Uptime Monitoring */ + /* Uptime Monitoring (legacy paths under /product/alerts/) */ { from: '/product/alerts/uptime-monitoring/', - to: '/product/uptime-monitoring/', + to: '/product/monitors-and-alerts/monitors/uptime-monitoring/', }, { from: '/product/alerts/uptime-monitoring/automatic-detection/', - to: '/product/uptime-monitoring/automatic-detection/', + to: '/product/monitors-and-alerts/monitors/uptime-monitoring/automatic-detection/', }, { from: '/product/alerts/uptime-monitoring/uptime-tracing/', - to: '/product/uptime-monitoring/uptime-tracing/', + to: '/product/monitors-and-alerts/monitors/uptime-monitoring/uptime-tracing/', }, { from: '/product/alerts/uptime-monitoring/troubleshooting/', - to: '/product/uptime-monitoring/troubleshooting/', + to: '/product/monitors-and-alerts/monitors/uptime-monitoring/troubleshooting/', }, ]; diff --git a/next.config.ts b/next.config.ts index 48c45c78af547..8e2c428a61ed6 100644 --- a/next.config.ts +++ b/next.config.ts @@ -173,7 +173,7 @@ module.exports = withSentryConfig(nextConfig, { }, // Enables automatic instrumentation of Vercel Cron Monitors // See the following for more information: - // https://docs.sentry.io/product/crons/ + // https://docs.sentry.io/product/monitors-and-alerts/monitors/crons/ // https://vercel.com/docs/cron-jobs automaticVercelMonitors: true, reactComponentAnnotation: { diff --git a/redirects.js b/redirects.js index 8da9f76e48df9..d65b8af2f454c 100644 --- a/redirects.js +++ b/redirects.js @@ -1765,6 +1765,36 @@ const userDocsRedirects = [ source: '/platforms/javascript/guides/javascript/:path*', destination: '/platforms/javascript/:path*', }, + // Cron + uptime docs live under Monitors (monitors-and-alerts) + { + source: '/product/crons/getting-started/cli/', + destination: '/cli/crons/', + }, + { + source: '/product/monitors-and-alerts/monitors/crons/getting-started/cli/', + destination: '/cli/crons/', + }, + { + source: '/product/crons/:path*', + destination: '/product/monitors-and-alerts/monitors/crons/:path*', + }, + { + source: '/product/uptime-monitoring/:path*', + destination: '/product/monitors-and-alerts/monitors/uptime-monitoring/:path*', + }, + { + source: '/product/new-monitors-and-alerts/:path*', + destination: '/product/monitors-and-alerts/:path*', + }, + // Notifications docs live at /product/notifications/ (no longer under alerts or monitors-and-alerts) + { + source: '/product/alerts/notifications/:path*', + destination: '/product/notifications/:path*', + }, + { + source: '/product/monitors-and-alerts/alerts/notifications/:path*', + destination: '/product/notifications/:path*', + }, ]; /** diff --git a/src/components/sidebar/collapsibleSidebarLink.tsx b/src/components/sidebar/collapsibleSidebarLink.tsx index d97f67a9977b3..c289fa11f12ae 100644 --- a/src/components/sidebar/collapsibleSidebarLink.tsx +++ b/src/components/sidebar/collapsibleSidebarLink.tsx @@ -36,6 +36,11 @@ interface SidebarLinkProps { * Shows a new badge next to the title */ isNew?: boolean; + + /** + * Shows an early access badge next to the title + */ + earlyAccess?: boolean; } /** @@ -51,6 +56,7 @@ export function CollapsibleSidebarLink({ className = '', beta = false, isNew = false, + earlyAccess = false, }: SidebarLinkProps) { const isActive = path?.indexOf(to) === 0; const enableSubtree = isActive || collapsed === false; @@ -68,6 +74,7 @@ export function CollapsibleSidebarLink({ title={title} beta={beta} isNew={isNew} + earlyAccess={earlyAccess} onClick={() => { // Allow toggling the sidebar subtree only if the item is selected if (path === to) { diff --git a/src/components/sidebar/dynamicNav.tsx b/src/components/sidebar/dynamicNav.tsx index e1db138fc39a6..f8262d50c10b6 100644 --- a/src/components/sidebar/dynamicNav.tsx +++ b/src/components/sidebar/dynamicNav.tsx @@ -26,6 +26,7 @@ type Node = { [key: string]: any; beta?: boolean; new?: boolean; + early_access?: boolean; section_end_divider?: boolean; sidebar_hidden?: boolean; sidebar_order?: number; @@ -129,6 +130,7 @@ export const renderChildren = ( path={path} beta={node.context.beta} isNew={node.context.new} + earlyAccess={node.context.early_access} > {renderChildren(nodeChildren, exclude, path, showDepth, depth + 1, rootPath)} @@ -193,6 +195,7 @@ export const renderChildren = ( path={path} beta={node.context.beta} isNew={node.context.new} + earlyAccess={node.context.early_access} > {renderChildren(nodeChildren, exclude, path, showDepth, depth + 1, rootPath)} @@ -220,6 +223,7 @@ export const renderChildren = ( path={path} beta={node.context.beta} isNew={node.context.new} + earlyAccess={node.context.early_access} > {renderChildren(nodeChildren, exclude, path, showDepth, depth + 1, rootPath)} @@ -312,6 +316,9 @@ export function DynamicNav({ topLevel beta={parentNode.node?.context.beta ?? entity.node?.context.beta} isNew={parentNode.node?.context.new ?? entity.node?.context.new} + earlyAccess={ + parentNode.node?.context.early_access ?? entity.node?.context.early_access + } data-sidebar-link /> ); diff --git a/src/components/sidebar/platformSidebar.tsx b/src/components/sidebar/platformSidebar.tsx index fb964dbf64331..1e3a81445054c 100644 --- a/src/components/sidebar/platformSidebar.tsx +++ b/src/components/sidebar/platformSidebar.tsx @@ -24,6 +24,7 @@ export function PlatformSidebar({ sidebar_hidden: n.frontmatter.sidebar_hidden, beta: n.frontmatter.beta, new: n.frontmatter.new, + early_access: n.frontmatter.early_access, section_end_divider: n.frontmatter.section_end_divider, sidebar_section: n.frontmatter.sidebar_section, }, diff --git a/src/components/sidebar/sidebarLink.tsx b/src/components/sidebar/sidebarLink.tsx index 5b3f22a4018d8..e26cea746d624 100644 --- a/src/components/sidebar/sidebarLink.tsx +++ b/src/components/sidebar/sidebarLink.tsx @@ -14,6 +14,7 @@ export function SidebarLink({ className, beta = false, isNew = false, + earlyAccess = false, }: { href: string; title: string; @@ -22,6 +23,7 @@ export function SidebarLink({ collapsible?: boolean; isActive?: boolean; isNew?: boolean; + earlyAccess?: boolean; onClick?: () => void; topLevel?: boolean; }) { @@ -41,6 +43,11 @@ export function SidebarLink({ {title} {beta && BETA} {isNew && NEW} + {earlyAccess && ( + + EA + + )} {collapsible && } diff --git a/src/components/sidebar/style.module.scss b/src/components/sidebar/style.module.scss index 5fd548905b6d2..b9819fad4a615 100644 --- a/src/components/sidebar/style.module.scss +++ b/src/components/sidebar/style.module.scss @@ -200,6 +200,21 @@ flex-shrink: 0; } +.ea-badge { + display: inline-flex; + align-items: center; + padding: 0.25rem 0.375rem; + font-size: 0.625rem; + font-weight: 600; + line-height: 1; + letter-spacing: 0.08em; + color: rgb(24, 20, 35); + background-color: rgb(255, 122, 0); + border-radius: 0.25rem; + white-space: nowrap; + flex-shrink: 0; +} + .sidebar-separator { border-top: 2px solid var(--gray-6); } diff --git a/src/components/sidebar/types.ts b/src/components/sidebar/types.ts index e3d7ce483972b..b5b87c824db40 100644 --- a/src/components/sidebar/types.ts +++ b/src/components/sidebar/types.ts @@ -34,6 +34,7 @@ export type NavNode = { title: string; beta?: boolean; new?: boolean; + early_access?: boolean; section_end_divider?: boolean; sidebar_hidden?: boolean; sidebar_order?: number; diff --git a/src/components/sidebar/utils.ts b/src/components/sidebar/utils.ts index ca09d043ee8a9..7144421193c63 100644 --- a/src/components/sidebar/utils.ts +++ b/src/components/sidebar/utils.ts @@ -27,6 +27,7 @@ export const docNodeToNavNode = (node: DocNode): NavNode => ({ sidebar_hidden: node.frontmatter.sidebar_hidden, beta: node.frontmatter.beta, new: node.frontmatter.new, + early_access: node.frontmatter.early_access, section_end_divider: node.frontmatter.section_end_divider, sidebar_section: node.frontmatter.sidebar_section, }, diff --git a/src/types/frontmatter.ts b/src/types/frontmatter.ts index aed7608e1ec61..0a80ca6c0265b 100644 --- a/src/types/frontmatter.ts +++ b/src/types/frontmatter.ts @@ -44,6 +44,11 @@ export interface FrontMatter { * Set this to true to show a "new" badge next to the title in the sidebar */ new?: boolean; + /** + * Set this to true to show an "EA" (early access) badge next to the title in the sidebar + */ + early_access?: boolean; + /** * The next page in the bottom pagination navigation. */