From 6bdc91274571f563215c2c6a429ee25947886e7c Mon Sep 17 00:00:00 2001 From: Alex Krawiec Date: Mon, 21 Apr 2025 14:43:56 -0700 Subject: [PATCH 01/10] Add first onboarding guide to docs --- docs/product/onboarding/img/auto-resolve.png | Bin 0 -> 28893 bytes docs/product/onboarding/index.mdx | 64 +++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 docs/product/onboarding/img/auto-resolve.png create mode 100644 docs/product/onboarding/index.mdx diff --git a/docs/product/onboarding/img/auto-resolve.png b/docs/product/onboarding/img/auto-resolve.png new file mode 100644 index 0000000000000000000000000000000000000000..c34647f31d0603b278f219204e8aa4c24975382a GIT binary patch literal 28893 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 + +3. Add [Environments](concepts/key-terms/environments/) and [Releases](/platform-redirect/?next=/configuration/releases/) to Your Sentry init. + + + - Set up environments (production, staging, etc.) and releases in Sentry to streamline error tracking. Environments filter issues by context, while releasing link errors to code versions for easier debugging. + + + +## Step 2: Implementing SSO or SCIM - For New organizations + + +To manage user authentication and provisioning, you can configure Single Sign-On ([SSO](/organization/authentication/sso/)) and System for Cross-Domain Identity Management ([SCIM](/organization/authentication/sso/okta-sso/okta-scim/)). + +## Step 3: integrations + +[Source Code Management](): Integrating your SCM with Sentry is critical for efficient issue resolution. It links code changes to errors, helping you identify and resolve issues quickly. WIth commit tracking and Suspect Commits, users can pinpoint problematic changes and trace them to the relevant stack trace. + + +SCM (GitHub) integration highlights include: + - [Stack trace linking](/organization/integrations/source-code-mgmt/github/#stack-trace-linking) + - [Highlight suspect commits within an issue detail](/organization/integrations/source-code-mgmt/github/#suspect-commits-and-suggested-assignees) + - [Automatically link code owners](/organization/integrations/source-code-mgmt/github/#code-owners) + + + + +[Messaging/Notifications](/organization/integrations/notification-incidents/): A messaging integration will allow you to configure alerts based on issue severity, resolving or ignoring issues directly from Slack, and links back to Sentry for deeper investigation. This keeps teams proactive by instantly alerting them about critical issues. + +[Issue Tracking](/organization/integrations/#issue-tracking): Helps teams track and manage Sentry issues within their ticketing system. You will be able to trigger the automatic creations of issues from Sentry events, sync status updates between tools, and link Sentry issues to existing tickets for streamlined resolution. + + + - Linking Sentry to JIRA keeps issue statuses synced, automatically marking Sentry issues as resolved when appropriate. This ensures that reappearing issues get flagged regressions. + + + + - To manage stale issues within Sentry, enable auto-resolve for those unseen within a set timeframe. **We recommend setting auto-resolve to 2 weeks** for optimal issue tracking. Configure this in **Project Settings > General Settings > Auto Resolve**. + + ![Auto Resolve Settings Screenshot](./img/auto-resolve.png) + + +By following this guide, you should have Sentry projects created, your integrations set up, and be configured for SSO/SCIM. For further customization, explore the official Sentry Documentation or [ask Sentry AI](https://sentry.zendesk.com/hc/en-us?askAI=tru). From 9ef5c3dbe3977add9cdb125aca5a18388872c3a8 Mon Sep 17 00:00:00 2001 From: Alex Krawiec Date: Mon, 21 Apr 2025 15:07:44 -0700 Subject: [PATCH 02/10] Fix typo in link causing 404 --- docs/product/onboarding/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/product/onboarding/index.mdx b/docs/product/onboarding/index.mdx index ba49455b84188..da279e8a1e1f3 100644 --- a/docs/product/onboarding/index.mdx +++ b/docs/product/onboarding/index.mdx @@ -22,7 +22,7 @@ By the end of this guide, you'll be able to create and configure projects in Sen -3. Add [Environments](concepts/key-terms/environments/) and [Releases](/platform-redirect/?next=/configuration/releases/) to Your Sentry init. +3. Add [Environments](/concepts/key-terms/environments/) and [Releases](/platform-redirect/?next=/configuration/releases/) to Your Sentry init. - Set up environments (production, staging, etc.) and releases in Sentry to streamline error tracking. Environments filter issues by context, while releasing link errors to code versions for easier debugging. From cba8ecc9239e6ed6d2e0006a98587440c7760c57 Mon Sep 17 00:00:00 2001 From: Alex Krawiec Date: Tue, 22 Apr 2025 13:31:17 -0700 Subject: [PATCH 03/10] Add minor copy edits after discussion with stakeholder --- docs/product/onboarding/index.mdx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/product/onboarding/index.mdx b/docs/product/onboarding/index.mdx index da279e8a1e1f3..dc1b4f25fb6e0 100644 --- a/docs/product/onboarding/index.mdx +++ b/docs/product/onboarding/index.mdx @@ -11,9 +11,8 @@ By the end of this guide, you'll be able to create and configure projects in Sen 1. Check out this [step-by-step walkthrough](https://sentry.io/orgredirect/projects/new/) on creating and configuring a Sentry project within your environment. - - Sentry's in-app project creation workflow allows you to enable performance and Session Replay. At a minimum, this will allow you to take advantage of the free allocated performance and Session replay quota. + - Sentry's in-app project creation workflow allows you to enable Tracing and Session Replay. At a minimum, this will allow you to take advantage of the free allocated Tracing and Session replay quota. -{/* NOTE: Should performance above be tracing? */} 2. The Sentry project creation flow includes a "Source Map Wizard" to help streamline the uploading of your artifacts (source maps, debug information files, symbols). @@ -56,7 +55,7 @@ SCM (GitHub) integration highlights include: - - To manage stale issues within Sentry, enable auto-resolve for those unseen within a set timeframe. **We recommend setting auto-resolve to 2 weeks** for optimal issue tracking. Configure this in **Project Settings > General Settings > Auto Resolve**. + - To manage stale issues within Sentry, enable auto-resolve for those unseen within a set timeframe. **We recommend setting auto-resolve to 2 weeks** for optimal issue and regression tracking. Configure this in **Project Settings > General Settings > Auto Resolve**. ![Auto Resolve Settings Screenshot](./img/auto-resolve.png) From 5a29367d18346b724a4c2de6de32e6499b7f3210 Mon Sep 17 00:00:00 2001 From: Alex Krawiec Date: Thu, 24 Apr 2025 11:21:43 -0700 Subject: [PATCH 04/10] Start work on data enrichment page --- docs/product/onboarding/data-enrichment.mdx | 51 +++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs/product/onboarding/data-enrichment.mdx diff --git a/docs/product/onboarding/data-enrichment.mdx b/docs/product/onboarding/data-enrichment.mdx new file mode 100644 index 0000000000000..d6d3a6d92ac23 --- /dev/null +++ b/docs/product/onboarding/data-enrichment.mdx @@ -0,0 +1,51 @@ +--- +title: Data Enrichment +description: "" +sidebar_order: 5000 +--- + +By now, you should have events flowing into your project(s). This guide will cover essential topics such as data enrichment, filtering unwanted events, and issue grouping. If you get stuck anywhere, please [Ask Sentry AI](https://sentry.zendesk.com/hc/en-us?askAI=true) or join our [Discord](https://discord.gg/sentry) community. + +## Step 1: Enriching Your Event Data + +### Adding Custom Context + +There are several ways you can [enrich your data](/platform-redirect?next=/enriching-events/) in Sentry. Adding tags, custom contexts, and breadcrumbs will help organize, filter, and analyze errors more effectively. See this quick walkthrough on adding a tag: + + + +## Step 2: Ensure Your Traces Are Instrumented Properly + +### Verify That Sentry's Tracing Auto-Instrumentation is Set Up Optimally + +Once Tracing is turned on, Sentry will auto-instrument your spans. If any additional instrumentation is needed, look into your platform's [instrumentation documentation](platform-redirect?next=/tracing/instrumentation/automatic-instrumentation/) for additional options. + + +Learn how [Sentry helps create actionable insights](/product/sentry-basics/performance-monitoring/#ways-to-monitor-performance-in-sentry) from your performance data. + + +### Custom Instrumentation For Any Additional Performance Metrics + +For any gaps in Sentry's auto-instrumentation, you can use [custom instrumentation](/platform-redirect/?next=/tracing/instrumentation/custom-instrumentation/) to collect additional spans and span metrics. This enables you to focus your instrumentation on critical areas of your application to optimize you configuration. For example, if you have an e-commerce app, you may want to track pageloads and checkout errors to pinpoint issues by provider, region, or app version. + +The video below is an example of what's possible with custom instrumentation: + + + +{console.log('test', window.location)} + +## Step 3: Filtering Unwanted events + +Filtering out events that are not actionable or expected during normal operations is essential for maintaining a clean and relevant issue tracking system. Issue and trace filtering are project-specific and can be accomplished [within the SDK](/platform-redirect?next=/configuration/filtering/#using-before-send) or the server via [inbound filters](/concepts/data-management/filtering/): + + +
+ + +Transactions/spans must be filtered out using `beforeSendSpan` and/or `beforeSendTransaction` [within the SDK](platform-redirect?next=/configuration/filtering/#using-before-send). + + +## Step 4: Grouping Your issues + +If you are noticing individual errors that should be grouped together, you can customize your issue grouping algorithm. Additional grouping customization can be accomplished via [issue merging](/concepts/data-management/event-grouping/merging-issues/) or Sentry's [custom grouping](/concepts/data-management/event-grouping/). + From 092f3a2e6ae3cdd4c1711089542bb9a9e32fa4c0 Mon Sep 17 00:00:00 2001 From: Alex Krawiec Date: Thu, 24 Apr 2025 15:33:48 -0700 Subject: [PATCH 05/10] Remove code comment --- docs/product/onboarding/data-enrichment.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/product/onboarding/data-enrichment.mdx b/docs/product/onboarding/data-enrichment.mdx index d6d3a6d92ac23..2411ba4e6507d 100644 --- a/docs/product/onboarding/data-enrichment.mdx +++ b/docs/product/onboarding/data-enrichment.mdx @@ -32,8 +32,6 @@ The video below is an example of what's possible with custom instrumentation: -{console.log('test', window.location)} - ## Step 3: Filtering Unwanted events Filtering out events that are not actionable or expected during normal operations is essential for maintaining a clean and relevant issue tracking system. Issue and trace filtering are project-specific and can be accomplished [within the SDK](/platform-redirect?next=/configuration/filtering/#using-before-send) or the server via [inbound filters](/concepts/data-management/filtering/): From 1f8bcbb696667ab9a84df02d8ceb1089e1c76b5b Mon Sep 17 00:00:00 2001 From: Alex Krawiec Date: Fri, 25 Apr 2025 14:33:08 -0700 Subject: [PATCH 06/10] Fix broken links --- .../common/profiling/front-matter.jsx | 18 ++++++++++++++++++ docs/product/onboarding/data-enrichment.mdx | 4 ++-- 2 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 docs/platforms/javascript/common/profiling/front-matter.jsx diff --git a/docs/platforms/javascript/common/profiling/front-matter.jsx b/docs/platforms/javascript/common/profiling/front-matter.jsx new file mode 100644 index 0000000000000..20df69f143f83 --- /dev/null +++ b/docs/platforms/javascript/common/profiling/front-matter.jsx @@ -0,0 +1,18 @@ +import {PlatformOrGuideName} from './components/platformOrGuideName'; + +export default function FrontMatterData() { + return ( + `--- +title: ${} +sidebar_title: Profiling +sidebar_order: 5000 +description: "Collect & view performance insights for JavaScript programs with Sentry's Profiling integrations. Get started with profiling to understand your application's performance." +notSupported: + - javascript.bun + - javascript.cordova + - javascript.capacitor + - javascript.deno + - javascript.cloudflare +---` + ) +} \ No newline at end of file diff --git a/docs/product/onboarding/data-enrichment.mdx b/docs/product/onboarding/data-enrichment.mdx index 2411ba4e6507d..8f9ac8826779b 100644 --- a/docs/product/onboarding/data-enrichment.mdx +++ b/docs/product/onboarding/data-enrichment.mdx @@ -18,7 +18,7 @@ There are several ways you can [enrich your data](/platform-redirect?next=/enric ### Verify That Sentry's Tracing Auto-Instrumentation is Set Up Optimally -Once Tracing is turned on, Sentry will auto-instrument your spans. If any additional instrumentation is needed, look into your platform's [instrumentation documentation](platform-redirect?next=/tracing/instrumentation/automatic-instrumentation/) for additional options. +Once Tracing is turned on, Sentry will auto-instrument your spans. If any additional instrumentation is needed, look into your platform's [instrumentation documentation](/platform-redirect?next=/tracing/instrumentation/automatic-instrumentation/) for additional options. Learn how [Sentry helps create actionable insights](/product/sentry-basics/performance-monitoring/#ways-to-monitor-performance-in-sentry) from your performance data. @@ -40,7 +40,7 @@ Filtering out events that are not actionable or expected during normal operation
-Transactions/spans must be filtered out using `beforeSendSpan` and/or `beforeSendTransaction` [within the SDK](platform-redirect?next=/configuration/filtering/#using-before-send). +Transactions/spans must be filtered out using `beforeSendSpan` and/or `beforeSendTransaction` [within the SDK](/platform-redirect?next=/configuration/filtering/#using-before-send). ## Step 4: Grouping Your issues From 6b250632c5d4a50fb997f46267558f2ccac6dba5 Mon Sep 17 00:00:00 2001 From: Alex Krawiec Date: Fri, 25 Apr 2025 15:09:26 -0700 Subject: [PATCH 07/10] Remove unrelated change --- .../common/profiling/front-matter.jsx | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 docs/platforms/javascript/common/profiling/front-matter.jsx diff --git a/docs/platforms/javascript/common/profiling/front-matter.jsx b/docs/platforms/javascript/common/profiling/front-matter.jsx deleted file mode 100644 index 20df69f143f83..0000000000000 --- a/docs/platforms/javascript/common/profiling/front-matter.jsx +++ /dev/null @@ -1,18 +0,0 @@ -import {PlatformOrGuideName} from './components/platformOrGuideName'; - -export default function FrontMatterData() { - return ( - `--- -title: ${} -sidebar_title: Profiling -sidebar_order: 5000 -description: "Collect & view performance insights for JavaScript programs with Sentry's Profiling integrations. Get started with profiling to understand your application's performance." -notSupported: - - javascript.bun - - javascript.cordova - - javascript.capacitor - - javascript.deno - - javascript.cloudflare ----` - ) -} \ No newline at end of file From db166703fdbb405547d8262d724d16fda8a88246 Mon Sep 17 00:00:00 2001 From: Alex Krawiec Date: Mon, 28 Apr 2025 13:21:07 -0700 Subject: [PATCH 08/10] Update with description --- docs/product/onboarding/data-enrichment.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/product/onboarding/data-enrichment.mdx b/docs/product/onboarding/data-enrichment.mdx index 8f9ac8826779b..c59c6bb36cd9b 100644 --- a/docs/product/onboarding/data-enrichment.mdx +++ b/docs/product/onboarding/data-enrichment.mdx @@ -1,6 +1,6 @@ --- title: Data Enrichment -description: "" +description: "Instrument the data you send to Sentry for easier grouping and filtering." sidebar_order: 5000 --- From fb321f1191f0392bab0b92eeee13034f64fc4859 Mon Sep 17 00:00:00 2001 From: Alex Krawiec Date: Tue, 29 Apr 2025 11:28:18 -0700 Subject: [PATCH 09/10] Update docs/product/onboarding/data-enrichment.mdx Co-authored-by: Shannon Anahata --- docs/product/onboarding/data-enrichment.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/product/onboarding/data-enrichment.mdx b/docs/product/onboarding/data-enrichment.mdx index c59c6bb36cd9b..8be69a230f7be 100644 --- a/docs/product/onboarding/data-enrichment.mdx +++ b/docs/product/onboarding/data-enrichment.mdx @@ -4,7 +4,7 @@ description: "Instrument the data you send to Sentry for easier grouping and fil sidebar_order: 5000 --- -By now, you should have events flowing into your project(s). This guide will cover essential topics such as data enrichment, filtering unwanted events, and issue grouping. If you get stuck anywhere, please [Ask Sentry AI](https://sentry.zendesk.com/hc/en-us?askAI=true) or join our [Discord](https://discord.gg/sentry) community. +By now, you should have events flowing into your project(s). If you don't, start [here](product/onboarding/).This guide will cover essential topics such as data enrichment, filtering unwanted events, and issue grouping. If you get stuck anywhere, please [Ask Sentry AI](https://sentry.zendesk.com/hc/en-us?askAI=true) or join our [Discord](https://discord.gg/sentry) community. ## Step 1: Enriching Your Event Data From c024832056ba40c264df1eeb318b094e5628a036 Mon Sep 17 00:00:00 2001 From: Alex Krawiec Date: Tue, 29 Apr 2025 13:17:28 -0700 Subject: [PATCH 10/10] Add leading slash to link --- docs/product/onboarding/data-enrichment.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/product/onboarding/data-enrichment.mdx b/docs/product/onboarding/data-enrichment.mdx index 8be69a230f7be..2f5b691c2bf6a 100644 --- a/docs/product/onboarding/data-enrichment.mdx +++ b/docs/product/onboarding/data-enrichment.mdx @@ -4,7 +4,7 @@ description: "Instrument the data you send to Sentry for easier grouping and fil sidebar_order: 5000 --- -By now, you should have events flowing into your project(s). If you don't, start [here](product/onboarding/).This guide will cover essential topics such as data enrichment, filtering unwanted events, and issue grouping. If you get stuck anywhere, please [Ask Sentry AI](https://sentry.zendesk.com/hc/en-us?askAI=true) or join our [Discord](https://discord.gg/sentry) community. +By now, you should have events flowing into your project(s). If you don't, start [here](/product/onboarding/).This guide will cover essential topics such as data enrichment, filtering unwanted events, and issue grouping. If you get stuck anywhere, please [Ask Sentry AI](https://sentry.zendesk.com/hc/en-us?askAI=true) or join our [Discord](https://discord.gg/sentry) community. ## Step 1: Enriching Your Event Data