diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index fda3d68c657fac..632f554df70a55 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -27,7 +27,7 @@ # /docs/platforms/rust/ @getsentry/team-web-sdk-backend # /docs/platforms/python/ @getsentry/owners-python-sdk -# /docs/product/explore/discover-queries/ @getsentry/data-browsing +# /docs/product/errors/ @getsentry/data-browsing # /docs/product/dashboards/sentry-dashboards/ @getsentry/dashboards # /docs/cli/ @getsentry/team-web-sdk-backend diff --git a/docs/concepts/key-terms/enrich-data/index.mdx b/docs/concepts/key-terms/enrich-data/index.mdx index 30d9b3e881ec88..126206be14e658 100644 --- a/docs/concepts/key-terms/enrich-data/index.mdx +++ b/docs/concepts/key-terms/enrich-data/index.mdx @@ -58,15 +58,13 @@ On the **Issues** page, custom data allows you to: Learn more in [Search](/concepts/search/). -### Discover +### Explore -Discover is a powerful query engine that builds upon your data, allowing you to reveal patterns, anomalies, and deeper insights in the health of your entire system. With this in mind, the more (custom) data you add to your events, the more flexibility you'll gain in building queries that address your environments, releases, custom development, and business characteristics through _tags_, and the end-users impacted by those events. +Explore is a powerful query engine that builds upon your data, allowing you to reveal patterns, anomalies, and deeper insights in the health of your entire system. With this in mind, the more (custom) data you bring into Sentry, the more flexibility you'll gain in building queries that address your environments, releases, custom development, and business characteristics. Sentry supports telemetry data from a wide range of sources, like [errors](/product/errors/), [traces and spans](/product/trace-explorer/), [logs](/product/logs/), [session replays](/product/session-replay/web/), and [application metrics](/product/metrics/). -For instance, the Discover query below displays all the errors (total of 143 events) that occurred in the _production environment_, distributed by the _customer-type custom tag_, and ordered by the _uniquely impacted end users_. +For instance, a Traces query can display all the spans that occurred in the _production environment_, aggregated by the _customer-type custom tag_, and ordered by _p90(span.duration)_. -![Discover Query](./img/004.png) - -Learn more in [Discover](/product/discover-queries/). +Learn more in [Traces and Spans](/product/trace-explorer/). ### Ownership Rules diff --git a/docs/concepts/key-terms/key-terms.mdx b/docs/concepts/key-terms/key-terms.mdx index 9743fa8918d45e..2ae3714d494b95 100644 --- a/docs/concepts/key-terms/key-terms.mdx +++ b/docs/concepts/key-terms/key-terms.mdx @@ -54,7 +54,7 @@ Each of these key features have their own page (or set of pages) in the [sentry. - **Projects** - Lists the projects of which you're a member, by team, and provides you with a high-level overview of your projects. From here, you can go to the **Project Details** page of each project for a more granular view. Learn more in the full [Projects documentation](/product/projects/). -- **Explore** - Sentry offers multiple ways to search and investigate your application's data — including your app's [traces](/product/trace-explorer/), [metrics](/product/metrics/), [profiles](/product/profiling/), [replays](/product/session-replay/), and [logs](/product/logs/) — to get the information you need to debug issues more quickly and easily. Use the [Discover](/product/discover-queries/) page to query events across environments, visualize the results, and unlock insights into the health of your entire system. +- **Explore** - Sentry offers multiple ways to search and investigate your application's data — including your app's [errors](/product/errors/), [traces](/product/trace-explorer/), [metrics](/product/metrics/), [profiles](/product/profiling/), [replays](/product/session-replay/), and [logs](/product/logs/) — to get the information you need to debug issues more quickly and easily. - **Pre-built Sentry Dashboards** - Sentry surfaces insights that can help you identify opportunities at the service-level to improve various parts of your app's performance, including requests, assets, caches, queues, and more. Pre-built Sentry Dashboards living under the Dashboards heading provide an overview of how your project is performing in various categories, as well as the ability to review sample events and their traces to help you diagnose potential problems. Learn more in the full [Sentry Dashboards documentation](/product/dashboards/sentry-dashboards/). diff --git a/docs/concepts/key-terms/tracing/distributed-tracing.mdx b/docs/concepts/key-terms/tracing/distributed-tracing.mdx index d500c997711a41..1165105930a8b1 100644 --- a/docs/concepts/key-terms/tracing/distributed-tracing.mdx +++ b/docs/concepts/key-terms/tracing/distributed-tracing.mdx @@ -243,4 +243,4 @@ Dynamic sampling ensures complete traces by retaining all transactions associate Use the [Trace Explorer](/product/trace-explorer/) to search for traces containing spans that meet your specific query conditions. This helps you find distributed traces that give you a connected view of your application and can help you debug and optimize your code. -Through [Performance](/product/dashboards/sentry-dashboards/) and [Discover](/product/discover-queries/), you can also view trace data in the [Trace View](/concepts/key-terms/tracing/trace-view/) page. +Through [Dashboards](/product/dashboards/sentry-dashboards/) and [Traces](/product/trace-explorer/), you can also view trace data in the [Trace View](/concepts/key-terms/tracing/trace-view/) page. diff --git a/docs/concepts/key-terms/tracing/img/trace-view.png b/docs/concepts/key-terms/tracing/img/trace-view.png index 8466d536d4cefd..1d349a67ab25a3 100644 Binary files a/docs/concepts/key-terms/tracing/img/trace-view.png and b/docs/concepts/key-terms/tracing/img/trace-view.png differ diff --git a/docs/concepts/key-terms/tracing/trace-view.mdx b/docs/concepts/key-terms/tracing/trace-view.mdx index 7a9f381319ac8a..b32c4b9e873760 100644 --- a/docs/concepts/key-terms/tracing/trace-view.mdx +++ b/docs/concepts/key-terms/tracing/trace-view.mdx @@ -10,48 +10,19 @@ description: >- og_image: /og-images/concepts-key-terms-tracing-trace-view.png --- -The Trace View page is designed to be your one-stop-shop when debugging performance or errors. It gives you full context on what was happening when an error or performance issue occurred, all in one place. The waterfall Trace View allows you to see everything that may have occurred during a trace, including errors, performance issues, and any profiles that may have been collected. +The Trace View page is designed to be your one-stop-shop when debugging performance or errors. It gives you full context on what was happening when an error or performance issue occurred, all in one place. The waterfall Trace View allows you to see everything that may have occurred during a trace, including errors, performance issues, logs, and any profiles that may have been collected. -In addition, looking at the Trace View allows you to drill down into a single trace so you can visualize the high-level transactions and spans that took place within that trace. This makes debugging slow services, identifying related errors, and rooting out bottlenecks easier and faster, since you no longer have to navigate around multiple pages of the Sentry product. +In addition, looking at the Trace View allows you to drill down into a single trace so you can visualize the high-level spans that took place within that trace. This makes debugging slow services, identifying related errors, and rooting out bottlenecks easier and faster, since you no longer have to navigate around multiple pages of the Sentry product. + +![Trace View](./img/trace-view.png) ## Product Walkthrough: Trace View Page -Sentry's default visualization of a trace is a waterfall-like structure, where the entries (transactions and spans) in the list are organized chronologically and through ancestry (child spans will fall under their parents). This allows you to follow the order of operations and drill into sub-operations. +Sentry's default visualization of a [trace](/concepts/key-terms/tracing/) is a waterfall-like structure, where the entries in the list are organized chronologically and through ancestry (child spans will fall under their parents). This allows you to follow the order of operations and drill into sub-operations. On the left side is a list of operations, and on the right is their duration and any events, such as errors, which may have occurred in that timeframe. -By default, the waterfall view shows a list of transactions. If you need more granular data and want to see spans as well, click "+" to the left of a transaction to expand the waterfall. The waterfall view helps surface any performance issues or profiles collected during a given timeframe. - -
- -
- -
- -
+ ### Previous and Next Traces @@ -59,32 +30,14 @@ As users interact with an application, they generate multiple traces. For exampl If linked traces are available, you will see "Previous" or "Next" buttons next to the search bar and "Open in Explore" button, near the top of the trace view. These buttons allow you to navigate between traces that occurred before or after the current one. -![Previous and next trace links](./img/trace-view-links.png) - ### Helpful Tips -Because debugging often involves multiple people or teams, we've made it easy to draw attention to specific areas of the trace and share a link that shows what you've highlighted with your colleagues. To do this, click on the row you'd like to draw attention to and share the resulting URL. Your colleague will see exactly what you want them to. +Because debugging often involves multiple people or teams, Sentry makes it easy to draw attention to specific areas of the trace and share a link that shows what you've highlighted with your colleagues. To do this, click on the row you'd like to draw attention to and share the resulting URL. Your colleague will see exactly what you want them to. Whatever you highlight will also be saved if you navigate away from the page and will still be there when you use your browser's back and forward buttons. If you're doing a comparison and want an easy way to go back and forth between highlighted areas of interest in your trace, you can pin the tabs. When a tab is pinned, the view will be persistent throughout your session. -
- -
-Sometimes, duration gaps between entries can be small, but critical to your debugging -effort. That's why the Trace View enables you to zoom into certain areas of the trace, -either by double clicking on row elements (which zooms into the row) or by using -your scroll wheel. -
- -
-The Trace View has other features like search, which makes it easy to visualize matching -spans that you can then iterate over using the up or down arrows. You can also tailor -the layout to your preference. - -We're going to continue adding features that enable you to perform efficient investigation into whatever issues you might be facing. If you have feedback or requests, please share it with us. We'd love to hear how we can make your life easier and your users happier. - ## Troubleshooting ### Orphan Traces and Broken Subtraces diff --git a/docs/concepts/search/index.mdx b/docs/concepts/search/index.mdx index 151699c2abd3b7..5108afe02590b6 100644 --- a/docs/concepts/search/index.mdx +++ b/docs/concepts/search/index.mdx @@ -60,7 +60,7 @@ Here are some examples of valid comparison operator searches: -`OR` and `AND` search conditions are only available for [Discover](/product/discover-queries/), [Sentry Dashboards](/product/dashboards/sentry-dashboards/), and [Monitors](/product/monitors-and-alerts/monitors/). +`OR` and `AND` search conditions are only available for [Explore](/concepts/key-terms/enrich-data/#explore), [Sentry Dashboards](/product/dashboards/sentry-dashboards/), and [Monitors](/product/monitors-and-alerts/monitors/). diff --git a/docs/platforms/apple/common/tracing/instrumentation/automatic-instrumentation.mdx b/docs/platforms/apple/common/tracing/instrumentation/automatic-instrumentation.mdx index 1a28a4d2972260..92f1d9932bc324 100644 --- a/docs/platforms/apple/common/tracing/instrumentation/automatic-instrumentation.mdx +++ b/docs/platforms/apple/common/tracing/instrumentation/automatic-instrumentation.mdx @@ -223,7 +223,7 @@ With this feature, the SDK differentiates between four different app start types - **Prewarmed cold start** - **Prewarmed warm start** -You can filter for different app start types in [Discover](/product/discover-queries/) with `app_start_type:cold.prewarmed`, `app_start_type:warm.prewarmed`, `app_start_type:cold`, and `app_start_type:warm`. +You can filter for different app start types in [Trace Explorer](/product/trace-explorer/) with `app_start_type:cold.prewarmed`, `app_start_type:warm.prewarmed`, `app_start_type:cold`, and `app_start_type:warm`. To disable prewarmed app start tracing: diff --git a/docs/product/dashboards/index.mdx b/docs/product/dashboards/index.mdx index d979f919b0c1f3..b2b11ee040df5a 100644 --- a/docs/product/dashboards/index.mdx +++ b/docs/product/dashboards/index.mdx @@ -37,9 +37,9 @@ You can also use these dashboards as templates by duplicating them to create you You can make [custom dashboards](/product/dashboards/custom-dashboards/) by duplicating an existing dashboard, using [AI to generate a dashboard](/product/dashboards/custom-dashboards/#ai-generated-dashboards) with natural language, or starting from scratch by pressing the **Create Dashboard** button. Custom dashboards enable you to create views tailored to your organization's needs. For example, you may want to track performance of a specific feature, or track errors by a specific team's ownership. Once in edit mode, use the same filters you use to drill into a dashboard to customize your dashboard. -## Open Dashboard Widgets in Discover and Issues +## Open Dashboard Widgets in Explore and Issues -Each dashboard [widget](/product/dashboards/widget-builder/) has an ellipsis that opens a context menu. From here, depending on the type of data the widget shows, you can open the widget in [Discover](/product/discover-queries/) or [Issues](/product/issues/) to get more information. +Each dashboard [widget](/product/dashboards/widget-builder/) has an ellipsis that opens a context menu. From here, depending on the type of data the widget shows, you can open the widget in different explorers: [Errors](/product/errors/), [Traces](/product/trace-explorer/), [Logs](/product/logs/), [Session Replays](/product/session-replay/web/), and [Metrics](/product/metrics/) to get more information. ## Widget Viewer diff --git a/docs/product/dashboards/sentry-dashboards/frontend/web-vitals/web-vitals-concepts.mdx b/docs/product/dashboards/sentry-dashboards/frontend/web-vitals/web-vitals-concepts.mdx index c894cf0f9a6bc9..a31ad37e5ed377 100644 --- a/docs/product/dashboards/sentry-dashboards/frontend/web-vitals/web-vitals-concepts.mdx +++ b/docs/product/dashboards/sentry-dashboards/frontend/web-vitals/web-vitals-concepts.mdx @@ -62,7 +62,7 @@ First Paint (FP) measures the amount of time the first pixel takes to appear in ### First Input Delay (FID) -As of March 12, 2024, First Input Delay (FID) was replaced as a Core Web Vital by INP. While Sentry no longer includes FID in our performance score calculations nor on the **Web Vitals** performance page, we continue to collect FID metrics. You can query FID measurements in [Discover](/product/discover-queries/). +As of March 12, 2024, First Input Delay (FID) was replaced as a Core Web Vital by INP. While Sentry no longer includes FID in our performance score calculations nor on the **Web Vitals** performance page, we continue to collect FID metrics. You can query FID measurements in [Traces](/concepts/key-terms/tracing/). [First Input Delay (FID)](https://web.dev/fid/) measures response time when a user tries to interact with the viewport by clicking a button, link, or any other custom JavaScript controller. FID data is critical for understanding whether interactions on an application page are successful or not. diff --git a/docs/product/dashboards/sentry-dashboards/transaction-summary.mdx b/docs/product/dashboards/sentry-dashboards/transaction-summary.mdx index 0b6e3f022b9b19..111adfbd9d643b 100644 --- a/docs/product/dashboards/sentry-dashboards/transaction-summary.mdx +++ b/docs/product/dashboards/sentry-dashboards/transaction-summary.mdx @@ -57,7 +57,7 @@ On initial load, the table displays slow occurrences of the transaction along wi The table also updates dynamically if you change any of the project, environment, or date range filters or when you drill in on a latency segment (applicable when viewing the Latency Histogram). -When viewing transactions, you may want to create more curated views. Click "Open in Discover" above the table to create a custom query to investigate further. For more details, see the full documentation for the Discover [Query Builder](/product/discover-queries/query-builder/). +When viewing transactions, you may want to create more curated views. Click "Open in Trace Explorer" above the table to create a custom query to investigate further. For more details, see the full documentation on [Traces and Spans](/product/trace-explorer/). diff --git a/docs/product/dashboards/widget-builder/index.mdx b/docs/product/dashboards/widget-builder/index.mdx index c08f6c6a501748..41187cafabd7c6 100644 --- a/docs/product/dashboards/widget-builder/index.mdx +++ b/docs/product/dashboards/widget-builder/index.mdx @@ -18,7 +18,7 @@ Some of these options are standard and displayed for all widgets, but others are In the dataset selection step, choose which type of data you would like to use in your widget. Available datasets include: [errors](#errors), [spans](#spans), [logs](#logs), [issues](#issues), [releases](#releases), and [application metrics](#application-metrics). ### Errors -Choosing "Errors" allows you to query and aggregate error events in the same way you would for a [Discover Query](/product/discover-queries/). This data is comprised of errors that occur in your application, which Sentry will use to group into issues, for example: +Choosing "Errors" allows you to query and aggregate error events in the same way you would on the [Errors](/product/errors/) page. This data is comprised of errors that occur in your application, which Sentry will use to group into issues, for example: - Users most affected by errors @@ -74,7 +74,7 @@ Choosing "Releases (sessions, crash rates)" allows you to query properties speci Transactions are deprecated in favor of spans. Use the [Spans](#spans) dataset for new widgets, or explore performance data in [Trace Explorer](/product/trace-explorer/). -Choosing "Transactions" allows you to query and aggregate transaction events in the same way you would for a [Discover Query](/product/discover-queries/). This data is comprised of events that track the performance of operations in your application. +Choosing "Transactions" allows you to query and aggregate transaction events. This data is comprised of events that track the performance of operations in your application. ## Visualization Type @@ -108,11 +108,11 @@ This visualization is useful when you want to compare values across different ca ### Table -Table charts display the results of a [Discover Query](/product/discover-queries/). This visualization is well suited to showing key fields and related aggregates. For example “duration percentiles for the most frequently visited transaction names”. You can also choose to display [issues](/product/issues/) data in a table visualization using the [dataset selector](/product/dashboards/widget-builder/#choose-your-dataset). +Table charts display the results of a query. This visualization is well suited to showing key fields and related aggregates. For example “duration percentiles for the most frequently visited transaction names”. You can also choose to display [issues](/product/issues/) data in a table visualization using the [dataset selector](/product/dashboards/widget-builder/#choose-your-dataset). ### Big Number -A big number visualization displays the current value of a single function or [equation](/product/discover-queries/query-builder/query-equations/). This visualization is well suited for high-level aggregates. An example scenario would be “p95 of all transactions”. +A big number visualization displays the current value of a single function. This visualization is well suited for high-level aggregates. An example scenario would be “p95 of all transactions”. ### Markdown @@ -142,9 +142,7 @@ Heatmaps are a great way to visualize value density over time. This is ideal for The option to set columns is only available for [table visualizations](/product/dashboards/widget-builder/#table). -By default, the first column is already configured for you, but you can update it. To add more columns, which stacks events, add [functions](/product/discover-queries/query-builder/#stacking-functions) (`f(x)`) that can take in parameters. [Field and tag columns](/concepts/search/searchable-properties/#event-properties) will help you view more details about the events (for example, `title` to see the description of an issue or `users` to see how many users it's affecting). - -You can also add equations to your query using the table columns as equation variables, and the results will be displayed in the query results table. Learn more in [Adding Query Equations](/product/discover-queries/query-builder/query-equations/). +By default, the first column is already configured for you, but you can update it. To add more columns, which stacks events, add [functions](/product/errors/#stacking-functions) (`f(x)`) that can take in parameters. [Field and tag columns](/concepts/search/searchable-properties/#event-properties) will help you view more details about the events (for example, `title` to see the description of an issue or `users` to see how many users it's affecting). Next to each column and equation, you have the option to set an alias that will replace the column name in the table header. diff --git a/docs/product/discover-queries/img/001.png b/docs/product/discover-queries/img/001.png deleted file mode 100644 index 4a96ee48589b43..00000000000000 Binary files a/docs/product/discover-queries/img/001.png and /dev/null differ diff --git a/docs/product/discover-queries/img/002.png b/docs/product/discover-queries/img/002.png deleted file mode 100644 index c7adedbd5cfc65..00000000000000 Binary files a/docs/product/discover-queries/img/002.png and /dev/null differ diff --git a/docs/product/discover-queries/img/003.png b/docs/product/discover-queries/img/003.png deleted file mode 100644 index f92cbe00d8cbb3..00000000000000 Binary files a/docs/product/discover-queries/img/003.png and /dev/null differ diff --git a/docs/product/discover-queries/img/004.png b/docs/product/discover-queries/img/004.png deleted file mode 100644 index f2b8cd66e5b1d9..00000000000000 Binary files a/docs/product/discover-queries/img/004.png and /dev/null differ diff --git a/docs/product/discover-queries/img/005.png b/docs/product/discover-queries/img/005.png deleted file mode 100644 index 56daee17f943a8..00000000000000 Binary files a/docs/product/discover-queries/img/005.png and /dev/null differ diff --git a/docs/product/discover-queries/img/006.png b/docs/product/discover-queries/img/006.png deleted file mode 100644 index 91d46ecb02dc97..00000000000000 Binary files a/docs/product/discover-queries/img/006.png and /dev/null differ diff --git a/docs/product/discover-queries/img/007.png b/docs/product/discover-queries/img/007.png deleted file mode 100644 index bb94d37b379737..00000000000000 Binary files a/docs/product/discover-queries/img/007.png and /dev/null differ diff --git a/docs/product/discover-queries/img/008.png b/docs/product/discover-queries/img/008.png deleted file mode 100644 index f84a610733be6a..00000000000000 Binary files a/docs/product/discover-queries/img/008.png and /dev/null differ diff --git a/docs/product/discover-queries/img/009.png b/docs/product/discover-queries/img/009.png deleted file mode 100644 index b17366189e9dac..00000000000000 Binary files a/docs/product/discover-queries/img/009.png and /dev/null differ diff --git a/docs/product/discover-queries/img/010.png b/docs/product/discover-queries/img/010.png deleted file mode 100644 index c48da10a0657fa..00000000000000 Binary files a/docs/product/discover-queries/img/010.png and /dev/null differ diff --git a/docs/product/discover-queries/img/012.png b/docs/product/discover-queries/img/012.png deleted file mode 100644 index 1ee98ee60cac53..00000000000000 Binary files a/docs/product/discover-queries/img/012.png and /dev/null differ diff --git a/docs/product/discover-queries/img/013.png b/docs/product/discover-queries/img/013.png deleted file mode 100644 index 7d6dcabcf52655..00000000000000 Binary files a/docs/product/discover-queries/img/013.png and /dev/null differ diff --git a/docs/product/discover-queries/img/014.png b/docs/product/discover-queries/img/014.png deleted file mode 100644 index f7acee9c215a54..00000000000000 Binary files a/docs/product/discover-queries/img/014.png and /dev/null differ diff --git a/docs/product/discover-queries/img/discover-event-details.png b/docs/product/discover-queries/img/discover-event-details.png deleted file mode 100644 index 6caaef85ae052a..00000000000000 Binary files a/docs/product/discover-queries/img/discover-event-details.png and /dev/null differ diff --git a/docs/product/discover-queries/img/discover-facet-map.png b/docs/product/discover-queries/img/discover-facet-map.png deleted file mode 100644 index 02ac6a9b418cad..00000000000000 Binary files a/docs/product/discover-queries/img/discover-facet-map.png and /dev/null differ diff --git a/docs/product/discover-queries/img/discover-homepage.png b/docs/product/discover-queries/img/discover-homepage.png deleted file mode 100644 index 0faf1a3308d517..00000000000000 Binary files a/docs/product/discover-queries/img/discover-homepage.png and /dev/null differ diff --git a/docs/product/discover-queries/img/discover-results.png b/docs/product/discover-queries/img/discover-results.png deleted file mode 100644 index dc38a4d4145a35..00000000000000 Binary files a/docs/product/discover-queries/img/discover-results.png and /dev/null differ diff --git a/docs/product/discover-queries/img/discover-table-cell.png b/docs/product/discover-queries/img/discover-table-cell.png deleted file mode 100644 index a7a0dea4eaf9ea..00000000000000 Binary files a/docs/product/discover-queries/img/discover-table-cell.png and /dev/null differ diff --git a/docs/product/discover-queries/img/trace-details-view.png b/docs/product/discover-queries/img/trace-details-view.png deleted file mode 100644 index ca63287c453482..00000000000000 Binary files a/docs/product/discover-queries/img/trace-details-view.png and /dev/null differ diff --git a/docs/product/discover-queries/index.mdx b/docs/product/discover-queries/index.mdx deleted file mode 100644 index 3ee104e4bf20d3..00000000000000 --- a/docs/product/discover-queries/index.mdx +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: Discover -sidebar_order: 260 -sidebar_section: debug -description: >- - Discover is a powerful query engine that allows you to query all your metadata - across projects and environments to unlock insights. -og_image: /og-images/product-explore-discover-queries.png ---- - - - -For performance data, [Trace Explorer](/product/trace-explorer/) is the recommended tool. It queries spans directly and supports the full set of span attributes. Discover's Transactions dataset is deprecated; existing saved queries will continue to work but new performance queries should use Trace Explorer. - - - -The Discover homepage displays the query builder where you can immediately begin creating a new query. By default, the page shows the pre-built "All Events" query, but you can customize the homepage and [set the custom version as your default](#set-as-default). To navigate back to the query management page, where you can find [pre-built](#pre-built-queries) and [saved](#saved-queries) queries, click the "Saved Queries" button. - -The query management page offers views of all your saved and pre-built queries so you can quickly see areas that need immediate attention. For example, if a query on errors shows a spike has occurred in the past 24 hours, you might want to investigate that first. Each query is saved as a card that displays a summarized view of the following data: - -- Display Name -- Search Conditions -- Creator -- Graph Snapshot -- Date Range -- Last Edited - -## Pre-built Queries - -Pre-built queries can be accessed by clicking the "Saved Queries" button on the Discover homepage. Query cards with Sentry avatars are pre-built and cannot be removed. - -- All Events: Users can see the raw error stream for any group of projects. This replaces the Events feature and gives users the ability to add additional columns and change groupings to achieve their desired breakdown. -- Errors by Title: Users can see their most frequently occurring errors by the total number of raw errors, as well as the total number of users affected. -- Errors by URL: Users can see the pages that generated the most errors and different types of issues. As a reminder, issues are a group of fingerprinted Events. For more details, see the [full documentation on fingerprinting](/concepts/data-management/event-grouping/fingerprint-rules/). - -## Saved Queries - -Saved queries can be accessed by clicking the "Saved Queries" button on the Discover homepage. Query cards with a user avatar indicate saved queries. The user who created a saved query will have their avatar displayed on the query card. Saved Queries are viewable by anyone in your organization and **are not** scoped to the user's account. - -### Build a New Query - -From the **Discover** page, you can build a query in three ways. - -- Click on "Build a new query" -- Click on the ellipsis of an existing saved query card to "Duplicate" -- Go into any existing query - 1. Click on "Save as..." in the top right - 2. Enter a display name - 3. Click "Save" - -Apply new search conditions or table columns to modify the query results. Save the query and assign a custom display name. For the full details, see the [documentation on the Query Builder](/product/discover-queries/query-builder/). - -### Search for a Query - -Looking for a specific query? Use the search bar on the homepage to find the query name. - -### Sort Queries - -The dropdown in the top right will allow you to sort by attributes. - -- Recently Edited (Default) -- My Queries -- Query Name (A-Z) -- Date Created (Newest) -- Date Created (Oldest) -- Most Outdated - -### Edit Queries - -If you need to edit any of these queries, go into the query, make the desired changes and a button will appear in the top right asking you to save/update the query. Keep in mind that edits to the query conditions **will not** be automatically saved. - -To rename a saved query, click on the pencil icon by the header and enter the desired display name. Click "enter" or outside of the area to save the updated name. - -### Share Queries - -Share your queries as often as you want. You can share URLs with other users who also have access to the same organization. As each part of the query is built, the results update, and the URL is updated so that in-progress searches can be shared in an email, chat, and so forth. - -### Delete Queries - -On the **Discover** page, each saved query card has an ellipsis that will open a context menu. From here, you can delete the query. This action is irreversible. You can also delete the query within the [query results](#query-results) view by clicking the "Delete Saved Query" option in the context menu. - -### Add to Dashboard - -Queries can also be added to custom dashboards as widgets. You can find the "Add to Dashboard" button by opening the context menu on the **Discover** page or within the context menu of the [query results](#query-results) view. When you click "Add to Dashboard", a form opens where you can name your widget. Select your target dashboard, and make any other required changes before saving your new widget. - -### Set as Default - -When you navigate to **Discover**, the homepage opens the query builder where you can immediately begin creating a new query. By default, the page displays the pre-built "All Events" query. - -You can customize your homepage by changing the query, choosing which columns are displayed, and how charts appear, and then clicking the "Set as Default" button. Navigating to **Discover** will now open the query builder with this configuration pre-loaded. The "Set as Default" button is also available on both saved and pre-built queries, which you can find by clicking the "Saved Queries" button. - -If you don't want to use this configuration as your default homepage anymore, click "Remove Default", and the homepage will revert to the "All Events" query. - -To navigate to the query management page, where you can find pre-built and saved queries, click the "Saved Queries" button. - -## Query Results - -![Page displaying a graph of error spikes by URL, the event tag summary, and results of the query. =900x](./img/discover-results.png) - -To view query results, click on any query card. You'll find a graph, table, and toggleable tag summary (or facet map). The top search bar lets you to see the search conditions entered. The table reflects the events with sortable columns. - -Each table cell has a dynamic context menu that allows you to continue exploring your data by automatically updating the search bar or the table columns, according to your selection. Actions like adding or excluding values from the filter, opening a selected release, or viewing the underlying stack of issues: - -![Context menu =600x](./img/013.png) - -If the first column shows an icon (as seen above), it means the events have been stacked. Click on the icon to view the full list of events. Each event will have an event ID you can click on for more details. Hovering over fields in the "Issue", "Release", and "Event ID" columns displays additional information like issue statuses, release authors, and stack traces for errors. - -For more about how to build a query, go to [the Query Builder](/product/discover-queries/query-builder/). - -## Trace Explorer - -You can see additional information about your event by clicking into any "Event ID" on the [**Discover**](https://sentry.io/orgredirect/organizations/:orgslug/discover) page. Clicking on any event type other than an error event, will take you to the [**Trace View**](/concepts/key-terms/tracing/trace-view/) page. Clicking on an error event will take you to the [**Issues**](https://sentry.io/orgredirect/organizations/:orgslug/issues/) page. diff --git a/docs/product/discover-queries/query-builder.mdx b/docs/product/discover-queries/query-builder.mdx deleted file mode 100644 index fd76d93bc9f864..00000000000000 --- a/docs/product/discover-queries/query-builder.mdx +++ /dev/null @@ -1,210 +0,0 @@ ---- -title: Query Builder -sidebar_order: 10 -description: >- - Learn how to use Discover to build a query, filter your data, and group - results. -og_image: /og-images/product-explore-discover-queries-query-builder.png ---- - - - -From the **Discover** page, you can build a query in three ways. - -- Click on "Build a new query" -- Click on the ellipsis of an existing saved query card to "Duplicate" -- Go into any existing query - 1. Click on "Save as..." in the top right - 2. Enter a new display name - 3. Click "Save" - -There are five main building blocks that impact the results of your saved query, a combination of which can be used to narrow down your search: - -1. Dataset selection -2. Project, environment, and date range filters -3. Search conditions -4. Interactive graph -5. Table columns - -## Dataset Selection - -The dataset selector allows you to query for either errors or transactions. You can only query one dataset at a time. The errors dataset returns events related to errors, while the transactions dataset returns transaction events that help you see application performance. - - - -The Transactions dataset in Discover is deprecated. For performance data, use [Trace Explorer](/product/trace-explorer/) which queries spans directly. Existing saved queries using the Transactions dataset will continue to work, but new queries should use [Trace Explorer](/product/trace-explorer/) instead. - - - -## Filter by Project, Environment, and Date Range - -These common filters allow you to filter on your projects and environments, as well as specify the date range you want to zoom in on. - -## Filter by Search Conditions - -All events have built-in key fields or custom tags. Use the search bar to enter these keys and assign them values. This will filter down your list of events. For a list of the built-in key fields, check out our [Searchable Properties documentation](/concepts/search/searchable-properties/). - -{/**/} - -### Syntax - -The Query Builder syntax is identical to [Sentry's Search syntax](/concepts/search/). After you enter a key field from above or a custom tag, you can use any of the referenced syntax. For example, `count()` gives you the number of times an event occurs. This can be written in the following ways: - -- Exact match (is equal to): `count():99` -- Upper bounds (is less than or equal to): `count():<99` or `count():<=99` -- Lower bounds (is more than or equal to): `count():>99` or `count():>=99` -- Multiple bounds (is more and less than): `count():>10 count():<20` - -Use `OR` and `AND` search conditions between filters. However `OR` cannot be used between aggregate and non-aggregate filters. For more details about these conditions, see [Using `OR` and `AND`](/concepts/search/#using-or-and-and). - -You can also search multiple values for the same key by putting the values in a list. For example, "x:[value1, value2]" will find the same results as "x:value1 `OR` x:value2". You can learn more in our content covering [Multiple Values on the Same Key](/concepts/search/#multiple-values-on-the-same-key). - -### Tag Summary Filters - -Every event has a list of tag values. The tag summary (or facet map) is a visualization of the top 10 keys sorted by frequency. The most common tag value is listed directly above the bar in the description and percentage. Hover over each section in a bar to see the exact distribution for that tag. - -Click on any of these sections to further refine your search. For example, clicking on a section that represents Chrome in a browser bar will automatically update the tag summary and then add Chrome to the search conditions. - -![Facet map for transaction and handled tags. Map looks like a bar with gradient colors.](./img/discover-facet-map.png) - - - -When performing searches on transaction events, based on your search criteria -and sample rate, the events available may be limited because Discover uses -sampled data only. Learn more by reading about [our sampling priorities](/organization/dynamic-sampling/). - - - -## Filter by Interactive Graph - -Each query has a interactive graph that reflects the data presented in the table below. To zoom in, simply click and drag over the area you want to investigate. You can also customize the display and the Y-Axis. This will be saved with your query. - -### Interval Options - -The "Interval" selector allows you to change the date groupings in the graph. The selector has limits that are based on the currently selected time range. This means, for example, if you're querying over 90 days, the largest interval you can select is 45 days and the smallest is one hour. - -### Display Options - -- Total Period -- Previous Period -- Release Markers -- Top Period -- Total Daily -- Top Daily -- Bar Chart - -### Limit Options - -When the "Display" selection is either "Top Period" or "Top Daily", an optional limit can be set. The setting defaults to five, showing the top five results in the graph. - -### Y-Axis Options - -- Count -- Average Transaction Duration -- p75 -- p95 -- Unique User Count - -When your "Display" selection is either "Total Period", "Previous Period", "Total Daily" or "Bar Chart", you can set up to three y-axes by selecting multiple checkboxes in the "Y-Axis" dropdown. - -## Group & Stack With Table Columns - -Above the table, click "Columns" to open the modal that shows you a list of all the columns in the results table. You can add, delete, and move basic key field columns or custom tag columns by which results are grouped. - -### Stacking Functions - -You can also add the following functions as columns to stack events, depending on the selected dataset: - -#### Errors -- `count()` -- `count_if(...)` -- `count_unique(...)` -- `eps()` -- `epm()` - -#### Transactions (Deprecated) - - - -The Transactions dataset is deprecated. Use [Trace Explorer](/product/trace-explorer/) for new performance queries based on spans. - - - -- `any(...)` -- `apdex(...)` -- `avg(...)` -- `count()` -- `count_if(...)` -- `count_miserable(...)` -- `count_unique(...)` -- `count_web_vitals(...)` -- `epm()` -- `eps()` -- `failure_count()` -- `failure_rate()` -- `last_seen()` -- `max(...)` -- `min(...)` -- `percentile(...)` -- `p50(...)` -- `p75(...)` -- `p95(...)` -- `p99(...)` -- `p100(...)` -- `sum(...)` -- `user_misery(...)` - -Each function will ask you to assign a parameter. Some are required while others are optional. Functions will stack events based on the same values. If no functions are applied, the events in your "Query Results" table will remain individually listed. Once you are done editing the columns, click "Apply" and results will be reflected in the query results. Keep in mind, the table may horizontally scroll if many columns are added. - -For definitions of Apdex, User Misery, failure rate, throughput, latency percentiles, and related metrics, see [Metrics in Transaction Summary](/product/dashboards/sentry-dashboards/transaction-summary/#metrics-in-this-view). - -### Cell Filters - -Each cell in the table will have an ellipsis appear on hover. This will open a context menu with additional filtering capabilities depending on the value type. For example, you can selectively target a transaction to the search conditions bar by clicking on "Add to filter". - -![Menu showing additional options to add to filter or exclude from filter](./img/discover-table-cell.png) - -### Adding Equations - -You can also add equations to your query using the table columns as equation variables, and the results will be displayed in the query results table. Learn more in [Adding Query Equations](query-equations/). - -### Sorting Columns - -Click on the column header you would like to sort. A down arrow sorts the column in descending order and an up arrow sorts the column in ascending order. This may refresh the table. - -## Additional Query Actions - -### Edit Queries - -If you need to edit any of these queries, go into the query, make the desired changes and a button will appear in the top right asking you to save/update the query. Keep in mind, edits to the query conditions **will not** be automatically saved. - -To rename a saved query, click on the pencil icon by the header and enter the desired display name. Click "enter" or outside of the area to confirm. - -### Share Queries - -Share your queries as often as you want. You can share URLs with other users who also have access to the same organization. As each part of the query is built, the results update, and the URL is updated so that in-progress searches can be shared in email, chat, etc. - -### Export CSV - -If you want to take the data elsewhere, click on "Export" for a CSV file. - -For a large export, you'll receive an email with the download link once it's ready. This will require further verification on the Sentry Download page. This contains a `SHA1` checksum of the file, which you can use to verify its integrity with the following command: - -```bash -echo " " | sha1sum -c - -``` - - - Depending on the amount of data, the wait times can vary. The results are - limited to 10 million rows or 1GB, whichever comes first. - - -### Deleting Queries - -Deleting a saved query is irreversible. - -On the **Discover** page, each saved query card has an ellipsis that will open a context menu. Delete the query from here. You can also delete the query within Query Results view by clicking the trash can in the upper right. - -For more details on how to view saved queries, see the [full documentation on Discover](/product/discover-queries/) diff --git a/docs/product/discover-queries/query-builder/img/add_equation.gif b/docs/product/discover-queries/query-builder/img/add_equation.gif deleted file mode 100644 index 9c73779ce3eb52..00000000000000 Binary files a/docs/product/discover-queries/query-builder/img/add_equation.gif and /dev/null differ diff --git a/docs/product/discover-queries/query-builder/query-equations.mdx b/docs/product/discover-queries/query-builder/query-equations.mdx deleted file mode 100644 index 6cb63dc3e7b573..00000000000000 --- a/docs/product/discover-queries/query-builder/query-equations.mdx +++ /dev/null @@ -1,142 +0,0 @@ ---- -title: Adding Query Equations -sidebar_order: 10 -description: >- - Learn how to write query equations that perform operations using your query - columns. -og_image: /og-images/product-explore-discover-queries-query-builder-query-equations.gif ---- - - - -In **Discover**, you can add equations based on your query columns. Each column acts like a variable since it represents the numeric result of the query, and this number is used in the equation. - -For example, let's take an equation that calculates the ratio of a transaction's first contentful paint (`measurements.fcp`) to the transaction's largest contentful paint (`measurements.lcp`): - -equation = `measurements.fcp / measurements.lcp` - -The equation will use the result of each of those query columns to calculate the ratio. In this case, the results of those query columns are: - -- measurements.fcp = 50 -- measurements.lcp = 100 - -The equation becomes: - -`50 / 100` - -The result of the equation is then displayed in the updated table as shown in the recording below: - -![Adding an equation in discover](./img/add_equation.gif) - -These equations can help you calculate things like: - -- [The percentage of transactions that completed within a threshold](#calculate-the-percentage-of-transactions-completed) -- [A custom Apdex score](#calculate-a-custom-apdex) -- [The largest average non-database times](#find-largest-average-non-database-times) - -## Add an Equation - -To add an equation to a query - -1. Click the "Columns" button to open the column editor. -2. If they aren't already included in your query, add the columns you need for your equation. -3. Click "Add an Equation". -4. Enter your equation by selecting columns, entering numbers (if needed), and adding operators. -5. Click "Apply". - -## Guidelines for Equations - -Equations must: - -- Contain at least one field or function -- Contain at least one operator -- Have explicit operators. For example, `a(a+b)` is invalid; instead, you should enter `a * (a + b)` - -Equations cannot: - -- Contain a mix of fields and functions -- Contain exponents, which aren't supported - -Equations will follow expected order of operations, resolving brackets first, division and multiplication next followed by addition and subtraction. Equations can also include negative numbers. - -Equations can only operate on numeric columns and functions, which includes: - -- Functions: - - count - - count_unique - - count_if - - count_web_vitals - - failure_count - - avg - - sum - - percentiles (p50, p75 etc.) - - apdex - - user_misery - - eps() and epm() -- Fields - - transaction.duration - - measurements.fp - - measurements.fcp - - measurements.lcp - - measurements.fid - - measurements.cls - - measurements.ttfb - - spans.browser - - spans.http - - spans.db - - spans.resource - -## Example Equations - -### Calculate the percentage of transactions completed - -Get the percentage of transactions that completed within a threshold - -1. Create a new query with the following three columns: - - Column 1: - - Function `count_if` - - Field `transaction.duration` - - Condition `is less than or equal to` - - Set final parameter to a threshold (like 300) - - Column 2: - - Function `count` - - Column 3: - - Field `transaction` -2. Add an equation and enter `count_if(transaction.duration,lessOrEquals,300) / count() * 100` in the equation field. - -### Calculate a custom Apdex - -[Apdex](/product/dashboards/sentry-dashboards/transaction-summary/#apdex) is defined as `(satisfied + tolerable*0.5 + frustrated*0)/total`. If you wanted to change the weight of tolerable to 0.2, you would create the following query and equation. - -1. Create a new query with the following four columns: - - Column 1: - - Function `count_if` - - Field `transaction.duration` - - Condition `is less than or equal to` - - Set the final parameter to a Satisfied threshold (like 300) - - Column 2: - - Function `count_if` - - Field `transaction.duration` - - Condition `is less than or equal to` - - Set the final parameter to a Tolerable threshold (like 1200) - - Column 3: - - Function `Count()` - - Column 4: - - Field `transaction` -2. Add an equation and enter the following in the equation field: - - `(count_if(transaction.duration,lessOrEquals,300) + (count_if(transaction.duration,lessOrEquals,1200) - count_if(transaction.duration,lessOrEquals,300)) * 0.2)/count()` - -### Find largest average non-database times - -Find the transactions that have the largest time that weren't from database calls. - -1. Create a new query with the following two columns: - - Column 1: - - Function `avg` - - Field `transaction.duration` - - Column 2: - - Function `avg` - - Field `spans.db` -2. Add an equation and enter `avg(transaction.duration) - avg(spans.db)` in the equation field. -3. Sort by this new equation. diff --git a/docs/product/discover-queries/standard-fields.json b/docs/product/discover-queries/standard-fields.json deleted file mode 100644 index 586f8d4ba35fa2..00000000000000 --- a/docs/product/discover-queries/standard-fields.json +++ /dev/null @@ -1,95 +0,0 @@ -[ - [ - "General", - [ - { "type": "string", "name": "id" }, - { "type": "number", "name": "issue.id" }, - { "type": "string", "name": "message" }, - { "type": "number", "name": "project.id" }, - { "type": "string", "name": "release" }, - { "type": "string", "name": "release.package" }, - { "type": "string", "name": "release.version" }, - { "type": "string", "name": "release.build" }, - { "type": "string", "name": "title" }, - { "type": "string", "name": "platform.name" }, - { "type": "string", "name": "environment" }, - { "type": "string", "name": "event.type" }, - { "type": "string", "name": "location" }, - { "type": "datetime", "name": "timestamp" }, - { "type": "datetime", "name": "timestamp.to_hour" }, - { "type": "datetime", "name": "timestamp.to_day" } - ] - ], - [ - "Device", - [ - { "type": "string", "name": "device.arch" }, - { "type": "number", "name": "device.battery_level" }, - { "type": "string", "name": "device.brand" }, - { "type": "string", "name": "device.charging" }, - { "type": "string", "name": "device.locale" }, - { "type": "string", "name": "device.name" }, - { "type": "string", "name": "device.online" }, - { "type": "string", "name": "device.orientation" }, - { "type": "string", "name": "device.simulator" }, - { "type": "string", "name": "device.uuid" } - ] - ], - [ - "Geo", - [ - { "type": "string", "name": "geo.city" }, - { "type": "string", "name": "geo.country_code" }, - { "type": "string", "name": "geo.region" } - ] - ], - [ - "HTTP", - [ - { "type": "string", "name": "http.method" }, - { "type": "string", "name": "http.url" } - ] - ], - [ - "OS", - [ - { "type": "string", "name": "os.build" }, - { "type": "string", "name": "os.kernel_version" } - ] - ], - [ - "SDK", - [ - { "type": "string", "name": "sdk.name" }, - { "type": "string", "name": "sdk.version" } - ] - ], - [ - "Stack traces", - [ - { "type": "string", "name": "error.handled" }, - { "type": "string", "name": "error.mechanism" }, - { "type": "string", "name": "error.type" }, - { "type": "string", "name": "error.value" }, - { "type": "string", "name": "stack.abs_path" }, - { "type": "number", "name": "stack.colno" }, - { "type": "string", "name": "stack.filename" }, - { "type": "string", "name": "stack.function" }, - { "type": "boolean", "name": "stack.in_app" }, - { "type": "number", "name": "stack.lineno" }, - { "type": "string", "name": "stack.module" }, - { "type": "string", "name": "stack.package" }, - { "type": "number", "name": "stack.stack_level" } - ] - ], - [ - "User attributes", - [ - { "type": "string", "name": "user" }, - { "type": "string", "name": "user.email" }, - { "type": "string", "name": "user.id" }, - { "type": "string", "name": "user.ip" }, - { "type": "string", "name": "user.username" } - ] - ] -] diff --git a/docs/product/discover-queries/uncover-trends.mdx b/docs/product/discover-queries/uncover-trends.mdx deleted file mode 100644 index 555342c5d0c907..00000000000000 --- a/docs/product/discover-queries/uncover-trends.mdx +++ /dev/null @@ -1,130 +0,0 @@ ---- -title: Uncover Trends With Discover -sidebar_order: 20 -description: >- - Learn how to work with the data in Discover to gain useful insights into the - health and stability of your applications. -og_image: /og-images/product-explore-discover-queries-uncover-trends.png ---- - - - -**Discover** is a powerful query engine that allows you to query all your error metadata across projects and applications. As you've probably noticed, the Sentry SDKs installed in your applications capture huge amounts of events, each enriched with contextual data about the underlying error, platform, device, user, and more. We also highly encourage enriching your error data through the SDK by adding custom tags and configuring the release and environment. For more information see [Enriching Events](/concepts/key-terms/enrich-data/). - -Let's go over some examples of how to work with all this data to gain some useful insights into the health and stability of your applications. - - - -Some table column options may be repeated if you’ve set up a tag with the same name as a Sentry field. For the examples that follow, use the table column option marked “field.” - - - -## Discover Through Issues - -Sentry notifies you in real-time when your application breaks, and then provides the information and tools to triage and resolve the error. With **Discover**, you can take a more proactive approach to find the major issues that break your apps. Building that query might look like this: - -1. Navigate to **Discover** and click on "Build a new query". - -2. Select the projects, environments, and date range of errors you'd like to query. - -3. Sentry monitors different types of events for errors and performance. To query issues, select the "Errors" dataset using the Dataset dropdown. - - ![Filter by Error type](./img/004.png) - -4. Edit the "Results" table columns to show the number of events [`count()`], impacted users [`count_unique(user)`], and unique issues [`count_unique(issue)`] per project. - - ![Issues per project](./img/001.png) - -5. With these columns set, you might want to look for the project with the most issues. Click on the `COUNT_UNIQUE(ISSUE)` column header to order the line items accordingly. - -6. Hover your cursor over the top project line item, click on the actions icon that displays, and select "Add to filter". This will narrow your results even more so that you can continue looking into the issues of that specific project. - - ![Project with most issues](./img/002.png) - -7. Now let's see what those issues are. Change the table columns to display: - - - `issue` (the issue id) - - `title` (issue title) - - `count()` (number of events) - - `count_unique(user)` (number of unique users impacted by the issue) - -8. On each line item/issue, you can click on the issue name to open the **Issue Details** page and triage the issue. You can also click on the Open Group icon to continue querying through the events stack in the context of a specific issue. - - ![Actions per line item](./img/003.png) - -## Discover Through Errors - -The true power of **Discover** lies in its ability to query through all your error metadata, so you're no longer restricted to the context of issues or projects, and can reveal trends and insights across all your applications. Let's look at some examples. - -### Errors by URLs - -Create a report looking into all the errors occurring in the URL endpoints across your applications. - -- Dataset: Errors -- Search condition: `has:url` -- Table columns: `url`, `platform.name`, `count()` - -![Errors by URL](./img/005.png) - -- Look into any one of the URL endpoints by clicking on "Add to filter" and changing the table columns. -- Alternatively, filter URL patterns using wild cards: - -![Wildcard filter](./img/009.png) - -### Unhandled Errors - -Whether your code is running on mobile, in browser, or on a server, an unhandled fatal error might crash your application. To find out where those crashes are happening, run the following query in **Discover**: - -- Dataset: Errors -- Search condition: `handled:no level:fatal` -- Table columns: `mechanism`, `platform.name`, `count()` - - ![Crashes](./img/006.png) - -To look deeper into one of the crash types: - -- Select one of the line item values and add it to the filter. -- Modify the table columns to show the crash `message` and `count()`. - - ![Native Crashes](./img/007.png) - -### Files With Most Errors - -To find out which files in your codebase are generating the most errors, run the following query in **Discover**: - -- Dataset: Errors -- Search condition: `has:stack.filename` -- Table columns: `stack.filename`, `count()`, `count_unique(issue)` - -![By File Names](./img/010.png) - -Change your "Display" selection to compare the current period to the previous one. - -You can continue exploring a specific filename by adding it to the filter and changing the table columns to display the major error culprits in that file: - -![Culprits](./img/008.png) - -### Errors per Release - -To find out how the health of a specific project is improving (or not) over time as you release new versions, create the following query: - -- Dataset: Errors -- Table columns: `release`, `count()`, `count_unique(issue)` - -![Issues per release](./img/012.png) - -From here you can add a release as a filter and change the columns to `count()` and `title` to see similar errors. Then you can click the "Open Group" icon to drill down to individual events. You can also open the release in **Releases** from the "Results" table. - -### Errors by Hour or Day - -The `timestamp.to_hour` and `timestamp.to_day` fields round down the timestamp to the last hour or day respectively. For example, an event with a `timestamp` value of Mar 12, 2021 2:26:50 PM UTC will have a `timestamp.to_hour` value of Mar 12, 2021 2:00:00 PM UTC and `timestamp.to_day` value of Mar 12, 2021 12:00:00 AM UTC. This allows you to group events. For example, you can show hourly hit counts for errors hit at least twice per hour: - -![Hourly counts for errors hit at least twice](./img/014.png) - -All timestamps are displayed in your preferred timezone based on your user settings in **User Settings > Account > Account Details**. - -## Additional Use Cases - -As you've probably noticed by now, **Discover** is extremely useful in gaining visibility and insights into your errors. For additional use cases take a look at: - -- [What issues are consuming my quota?](/pricing/quotas/manage-event-stream-guide/#which-issues-are-consuming-my-quota) diff --git a/docs/product/errors/index.mdx b/docs/product/errors/index.mdx new file mode 100644 index 00000000000000..6e82db67e1d9ab --- /dev/null +++ b/docs/product/errors/index.mdx @@ -0,0 +1,190 @@ +--- +title: Errors +sidebar_order: 201 +sidebar_section: debug +description: >- + Errors allows you to search, filter, and query all your error event data + across projects and environments to uncover trends and gain insights. +--- + +## Overview + +The [**Errors**](https://sentry.io/orgredirect/organizations/:orgslug/explore/errors/) page lets you query all of your error event metadata across projects and environments. You can build custom queries with flexible filters, group and stack results, visualize trends over time, and save queries for reuse by your team. + +While [Issues](/product/issues/) groups related error events for triage and resolution, the Errors page gives you a powerful way to ask questions across all your error data at once, surfacing patterns and trends that individual issues may not reveal. + +## Searching and Filtering + +### Search Conditions + +All error events have built-in key fields and custom tags. Use the search bar to filter events by these keys. For a list of built-in key fields, check out the [Searchable Properties documentation](/concepts/search/searchable-properties/). + +The search syntax is identical to [Sentry's Search syntax](/concepts/search/). For example, `count()` gives you the number of times an event occurs: + +- Exact match: `count():99` +- Upper bounds: `count():<99` or `count():<=99` +- Lower bounds: `count():>99` or `count():>=99` +- Multiple bounds: `count():>10 count():<20` + +Use `OR` and `AND` between filters. Note that `OR` cannot be used between aggregate and non-aggregate filters. Learn more about [Using `OR` and `AND`](/concepts/search/#using-or-and-and). + +You can search multiple values for the same key by putting them in a list. For example, `x:[value1, value2]` returns the same results as `x:value1 OR x:value2`. Learn more about [Multiple Values on the Same Key](/concepts/search/#multiple-values-on-the-same-key). + +### Filter by Project, Environment, and Date Range + +Use the common filters at the top of the page to scope your query by project, environment, and date range. + +### Tag Summary Filters + +Every event carries a list of tag values. The tag summary visualizes the top 10 keys sorted by frequency, with the most common tag value shown above the bar. Click **Show Tags** to see the tag summary. + +Click on any tag to refine your search. For example, clicking on Chrome listed under Browser will add Chrome to your search conditions and update the results. + +## Interactive Graph + +Each query has an interactive graph that reflects the data in the table below. Click and drag over an area to zoom in. + +### Interval + +The interval selector controls date groupings in the graph. The available intervals depend on the selected time range -- for example, querying over 90 days limits you to intervals between one hour and 45 days. + +### Display Options + +- Total Period +- Previous Period +- Release Markers +- Top Period +- Total Daily +- Top Daily +- Bar Chart + +### Limit + +When the display is set to "Top Period" or "Top Daily", you can set a limit. The default is five, showing the top five results. + +### Y-Axis Options + +- Count +- Unique User Count + +When the display is set to "Total Period", "Previous Period", "Total Daily", or "Bar Chart", you can configure up to three Y-axes by selecting multiple options. + +## Table Columns and Stacking Functions + +Click "Columns" above the table to manage which columns appear in the results. You can add, remove, and reorder key field columns or custom tag columns. + +### Stacking Functions + +Add the following functions as columns to stack (group) events: + +- `count()` +- `count_if(...)` +- `count_unique(...)` +- `eps()` +- `epm()` + +Each function will ask you to assign a parameter. Some are required, others optional. Functions stack events with the same values. If no functions are applied, events are listed individually. Once you're done editing columns, click "Apply" to update results. + +### Cell Filters + +Hovering over a table cell reveals an ellipsis that opens a context menu with additional filtering options. For example, you can add a value to the search conditions by clicking "Add to filter", or exclude it with "Exclude from filter". + +### Sorting Columns + +Click a column header to sort. A down arrow sorts descending, an up arrow sorts ascending. + +## Saved Queries + +You can save any of your queries by clicking the **Save As** button in the top right. Name your query, and you can then update it or find it later in the All or Starred Queries sections. + + +### Add to Dashboard + +Queries can be added to [custom dashboards](/product/dashboards/custom-dashboards/) as widgets. Open the context menu on the query card or within the query results view and click "Add to Dashboard". Name your widget, select the target dashboard, and save. + +### Set as Default + +Customize your default view by configuring a query with specific columns, charts, and filters, then clicking "Set as Default". Navigating to the Errors page will then open with this configuration pre-loaded. Click "Remove Default" to revert to the default "All Events" view. + +### Export CSV + +Click "Export Data" to download a CSV file of the results. For large exports, you'll receive an email with the download link. The results are limited to 10 million rows or 1 GB, whichever comes first. + +The download includes a `SHA1` checksum you can use to verify integrity: + +```bash +echo " " | sha1sum -c - +``` + +## Pre-built Queries + +Pre-built queries are available from the "Saved Queries" view and are identified by the Sentry avatar. These can be duplicated, but can't be removed. + +## Uncovering Trends + +The Errors page is a powerful way to query across all your error metadata, going beyond the scope of individual issues or projects to reveal trends across all your applications. Enriching your error data with custom tags, release, and environment information makes these queries even more powerful. Learn more about [enriching events](/concepts/key-terms/enrich-data/). + + + + + +Some table column options may be repeated if you've set up a tag with the same name as a Sentry field. Use the table column option marked "field" for the examples below. + + + +### Counting Events, Users, and Issues per Project + +Build a query to find which projects have the most issues: + +1. Select the projects, environments, and date range you want to query. +2. Edit the table columns to show `count()`, `count_unique(user)`, and `count_unique(issue)` per project. +3. Click the `COUNT_UNIQUE(ISSUE)` column header to sort by the number of unique issues. +4. Hover over the top project, click the actions icon, and select "Add to filter" to narrow your results to that project. +5. Change columns to `issue`, `title`, `count()`, and `count_unique(user)` to drill into individual issues. + +### Errors by URL + +Create a report of errors across URL endpoints: + +- Search condition: `has:url` +- Table columns: `url`, `platform.name`, `count()` + +Filter URL patterns using wildcards or click "Add to filter" on a specific URL to drill deeper. + +### Unhandled Errors + +Find unhandled fatal errors that may be crashing your application: + +- Search condition: `handled:no level:fatal` +- Table columns: `mechanism`, `platform.name`, `count()` + +Select a crash type and add it to the filter, then change columns to show the `message` and `count()` for more detail. + +### Files With Most Errors + +Find which files in your codebase are generating the most errors: + +- Search condition: `has:stack.filename` +- Table columns: `stack.filename`, `count()`, `count_unique(issue)` + +Change the display to compare the current period with the previous one to spot trends. Add a specific filename to the filter and change columns to see the major error culprits in that file. + +### Errors per Release + +Track how the health of a project changes across releases: + +- Table columns: `release`, `count()`, `count_unique(issue)` + +Add a release as a filter and change columns to `count()` and `title` to see similar errors. Click the "Open Group" icon to drill into individual events, or open the release in [Releases](/product/releases/). + +### Errors by Hour or Day + +The `timestamp.to_hour` and `timestamp.to_day` fields round timestamps down to the last hour or day. This lets you group events by time periods -- for example, showing hourly counts for errors that occurred at least twice per hour. + +All timestamps display in your preferred timezone, which you can set in **User Settings > Account > Account Details**. + +## Additional Use Cases + +For more examples of working with error data, see: + +- [What issues are consuming my quota?](/pricing/quotas/manage-event-stream-guide/#which-issues-are-consuming-my-quota) diff --git a/docs/product/monitors-and-alerts/monitors/index.mdx b/docs/product/monitors-and-alerts/monitors/index.mdx index 389fd78bc23e60..75650cf054c6bb 100644 --- a/docs/product/monitors-and-alerts/monitors/index.mdx +++ b/docs/product/monitors-and-alerts/monitors/index.mdx @@ -33,7 +33,7 @@ To create a Monitor, navigate to the [Monitors](https://sentry.io/monitors/new/) You can also create a Metric Monitor directly from a query: - From the [Application Metrics](/product/metrics/) Explorer, open the **Save As** menu and choose **Monitor for** to create a Monitor with the current metric and filters pre-selected. -- From [Discover](/product/discover-queries/), use the **Create Monitor** button to turn the current query into a Monitor. +- From [Errors](/product/errors/), use the **Create Monitor** button to turn the current query into a Monitor. ### General Settings diff --git a/docs/product/session-replay/replay-page-and-filters.mdx b/docs/product/session-replay/replay-page-and-filters.mdx index 48723b2247e61a..f429a24a9be2b0 100644 --- a/docs/product/session-replay/replay-page-and-filters.mdx +++ b/docs/product/session-replay/replay-page-and-filters.mdx @@ -30,7 +30,7 @@ Each replay will bring users to the [**Replay Details**](/product/session-replay ## Filtering Replays -All replays have built-in key fields, and may have [custom tags](/platform-redirect/?next=/enriching-events/tags/) if you have them set up. The search bar operates similarly to the one in the Discover [Query Builder](/product/discover-queries/query-builder/#filter-by-search-conditions). Use it to search for keys and specific values. This will filter down your list of replays so you can quickly find the ones with the criteria you care about. For example, you can refine your replays search to a specific browser by using `browser.version:` as a key field and assigning the version as a value. For a list of all the built-in key fields and replay properties, check out our [Searchable Properties](/concepts/search/searchable-properties/session-replay/) documentation. +All replays have built-in key fields, and may have [custom tags](/platform-redirect/?next=/enriching-events/tags/) if you have them set up. The search bar operates similarly to the one on the [Errors](/product/errors/#search-conditions) page. Use it to search for keys and specific values. This will filter down your list of replays so you can quickly find the ones with the criteria you care about. For example, you can refine your replays search to a specific browser by using `browser.version:` as a key field and assigning the version as a value. For a list of all the built-in key fields and replay properties, check out our [Searchable Properties](/concepts/search/searchable-properties/session-replay/) documentation. ![Highlight the Search Filters input on the Session Replay Index Page](./img/replay-index-filtering.png) diff --git a/includes/docs-changelog.mdx b/includes/docs-changelog.mdx index 979ac06504c18f..9cfdbfeaadc9ef 100644 --- a/includes/docs-changelog.mdx +++ b/includes/docs-changelog.mdx @@ -230,8 +230,7 @@ - [Dashboards](/product/dashboards/) - [Widget Builder](/product/dashboards/widget-builder/) - [Widget Library](/product/dashboards/widget-library/) -- [Query Builder](/product/discover-queries/query-builder/) -- [Adding Query Equations](/product/discover-queries/query-builder/query-equations/) +- [Errors](/product/errors/) - [Queries](/product/dashboards/sentry-dashboards/backend/queries/) - [Sentry Dashboards](/product/dashboards/sentry-dashboards/) - [Transaction Summary](/product/dashboards/sentry-dashboards/transaction-summary/) diff --git a/middleware.ts b/middleware.ts index fc00a973fb14f8..849eff14fbe337 100644 --- a/middleware.ts +++ b/middleware.ts @@ -2635,39 +2635,43 @@ const USER_DOCS_REDIRECTS: Redirect[] = [ }, { from: '/product/discover/', - to: '/product/discover-queries/', + to: '/product/errors/', }, { from: '/workflow/discover/', - to: '/product/discover-queries/', + to: '/product/errors/', }, { from: '/workflow/discover2/', - to: '/product/discover-queries/', + to: '/product/errors/', }, { from: '/performance-monitoring/discover/', - to: '/product/discover-queries/', + to: '/product/errors/', }, { from: '/performance/discover/', - to: '/product/discover-queries/', + to: '/product/errors/', }, { from: '/guides/discover/', - to: '/product/discover-queries/uncover-trends/', + to: '/product/errors/', }, { from: '/product/sentry-basics/guides/discover/', - to: '/product/discover-queries/uncover-trends/', + to: '/product/errors/', }, { from: '/workflow/discover2/query-builder/', - to: '/product/discover-queries/query-builder/', + to: '/product/errors/', }, { from: '/performance-monitoring/discover-queries/query-builder/', - to: '/product/discover-queries/query-builder/', + to: '/product/errors/', + }, + { + from: '/product/discover-queries/', + to: '/product/errors/', }, { from: '/product/crons/alerts/', @@ -3442,8 +3446,9 @@ const USER_DOCS_REDIRECTS: Redirect[] = [ from: '/product/sentry-mcp/', to: 'https://mcp.sentry.dev', }, - // Removed: /product/metrics/, /product/profiling/, /product/discover-queries/, + // Removed: /product/metrics/, /product/profiling/, // /product/session-replay/ are now canonical paths (previously redirected to /product/explore/*) + // /product/discover-queries/ now redirects to /product/errors/ { from: '/enriching-error-data/advanced-datascrubbing/', to: '/security-legal-pii/scrubbing/advanced-datascrubbing/', diff --git a/redirects.js b/redirects.js index 9b335fdf18adaf..78d41206fe98f0 100644 --- a/redirects.js +++ b/redirects.js @@ -1658,7 +1658,15 @@ const userDocsRedirects = [ }, { source: '/product/explore/discover-queries/:path*', - destination: '/product/discover-queries/:path*', + destination: '/product/errors/', + }, + { + source: '/product/discover-queries/:path*', + destination: '/product/errors/', + }, + { + source: '/product/discover-queries', + destination: '/product/errors/', }, { source: '/product/explore/session-replay/:path*',