Skip to content

Commit

Permalink
Update performance descriptions (#9879)
Browse files Browse the repository at this point in the history
* Update performance descriptions

* update perf issues descriptions

* update regex issue
  • Loading branch information
vivianyentran committed May 2, 2024
1 parent 20a97e8 commit 0c3eb35
Show file tree
Hide file tree
Showing 18 changed files with 40 additions and 40 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,13 @@ Once these spans are found, the following must also hold true:

If Sentry isn't detecting a consecutive DB issue where you expect one, it's probably because the transaction didn't meet one of the above criteria.

You can configure detector thresholds for consecutive DB queries issues in **Project Settings > Performance**:
You can configure detector thresholds for Consecutive DB Queries issues in **Project Settings > Performance**:

![Consecutive DB Queries detector threshold settings](./img/consecutive-db-detector-settings.png)

## Span Evidence

You can identify a consecutive DB queries problem by four main aspects in the "Span Evidence" section:
You can identify a Consecutive DB Queries problem by four main aspects in the "Span Evidence" section:

- Transaction name
- Starting Span - The first span in a set of consecutive spans
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Consecutive HTTP"
sidebar_order: 30
description: "Learn more about Consecutive HTTP and how to diagnose and fix them."
description: "Learn more about Consecutive HTTP issues and how to diagnose and fix them."
---

Consecutive HTTP issues are created when a at least 2000ms of time can be saved by parallelizing a minimum of 3 consecutive HTTP calls occuring sequentially.
Expand Down Expand Up @@ -30,7 +30,7 @@ Once these spans are found, the following must also hold true:

If Sentry doesn't detect a Consecutive HTTP issue where you expect one, it's probably because the transaction didn't meet one of the above criteria.

You can configure detector thresholds for consecutive HTTP issues in **Project Settings > Performance**:
You can configure detector thresholds for Consecutive HTTP issues in **Project Settings > Performance**:

![Consecutive HTTP detector threshold settings](./img/consecutive-http-threshold-settings.png)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Database on Main Thread"
sidebar_order: 20
description: "Learn more about Database on Main Thread and how to diagnose and fix these issues."
description: "Learn more about Database on Main Thread issues and how to diagnose and fix them."
---

The main UI thread in a mobile application handles user interface events such as button presses and page scrolls. To prevent App Hangs and Application Not Responding errors, the main UI thread shouldn't be used for performing long-running operations like database queries. These kinds of operations block the whole UI until they finish running and get in the way of the user interacting with the app.
Expand All @@ -10,13 +10,13 @@ The main UI thread in a mobile application handles user interface events such as

The detector for this performance issue looks at the total non-overlapping duration for database spans on the main thread. If it exceeds 16ms, a Performance Issue is created.

You can configure detector thresholds for database on main thread issues in **Project Settings > Performance**:
You can configure detector thresholds for Database on Main Thread issues in **Project Settings > Performance**:

![Database on Main Thread detector threshold settings](./img/db-on-main-thread-detector-settings.png)

## Span Evidence

Span evidence identifies the root cause of the database on main thread problem by showing you three main aspects:
Span evidence identifies the root cause of the Database on Main Thread problem by showing you three main aspects:

- **Transaction name**
- **Parent Span:** Where the database spans occurred
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ sidebar_order: 20
description: "Learn more about File I/O on Main Thread and how to diagnose and fix these issues."
---

The main UI thread in a mobile application handles user interface events such as button presses and page scrolls. To prevent App Hangs and Application Not Responding errors, the main UI thread should not be used for performing long-running operations like File I/O. These kinds of operations block the whole UI until they finish running and get in the way of the user interacting with the app.
The main UI thread in a mobile application handles user interface events such as button presses and page scrolls. To prevent App Hangs and Application Not Responding errors, the main UI thread should not be used for performing long-running operations like file I/O. These kinds of operations block the whole UI until they finish running and get in the way of the user interacting with the app.

## Detection Criteria

Expand All @@ -16,19 +16,19 @@ You can configure detector thresholds for file I/O on main thread issues in **Pr

## Span Evidence

Span evidence identifies the root cause of the File I/O on main thread problem by showing you three main aspects:
Span evidence identifies the root cause of the File I/O on Main Thread problem by showing you three main aspects:

- Transaction name
- Parent Span - Where the File I/O spans occurred
- Offending Span - The actual spans that are performing File I/O in the main thread
- Parent Span - Where the file I/O spans occurred
- Offending Span - The actual spans that are performing file I/O in the main thread

![File I/O Span Evidence](./img/file-io.png)

View it by going to the **Issues** page in Sentry, selecting your Android project, clicking on the File I/O error you want to examine, then scrolling down to the "Span Evidence" section in the "Details" tab.
View it by going to the **Issues** page in Sentry, selecting your Android project, clicking on the file I/O error you want to examine, then scrolling down to the "Span Evidence" section in the "Details" tab.

## Example

Here are two examples of how a File I/O error may appear in your code if you're using Swift or Kotlin and how you might solve them.
Here are two examples of how a file I/O error may appear in your code if you're using Swift or Kotlin and how you might solve them.

This is what you might see when you're opening a file to get its contents if you're using Swift:

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Frame Drop"
description: "Learn more about how we detect Frame Drop issues and what you can do to help fix them."
description: "Learn more about how we detect Frame Drop issues and what you can do to fix them."
sidebar_order: 30
---

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Performance Issues"
sidebar_order: 20
description: "Learn more about what information displays on the Issue Details page to help you efficiently triage a performance issue."
description: "Learn more about which performance issues Sentry detects and how to use the Issue Details page to debug them."
---

A _performance issue_ is a grouping of transaction events that are performing poorly. If your application is configured for [Performance Monitoring](/product/performance/), Sentry will detect common performance problems, and group them into issues. We group similar transaction events into issues based on a fingerprint. For performance issues, a fingerprint is primarily based on the problem type and the spans involved in the problem.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: "Learn more about Large HTTP Payload issues, how to diagnose and fi
sidebar_order: 30
---

Large HTTP payload issues are created when an http span has an encoded body size that exceeds a threshold.
Large HTTP Payload issues are created when an http span has an encoded body size that exceeds a threshold.

## Detection Criteria

Expand All @@ -15,9 +15,9 @@ The detector for this performance issue looks for a single http span that meets
- The HTTP span must have an `http.response_content_length` (added by the `@sentry/browser` SDK, version `7.53.0`) that exceeds `300kb`
- The HTTP span duration must exceed 100ms

If Sentry isn't detecting a large HTTP payload issue where you expect one, it's probably because the transaction didn't meet one of the above criteria.
If Sentry isn't detecting a Large HTTP Payload issue where you expect one, it's probably because the transaction didn't meet one of the above criteria.

You can configure detector thresholds for large HTTP payload issues in **Project Settings > Performance**:
You can configure detector thresholds for Large HTTP Payload issues in **Project Settings > Performance**:

![Large HTTP Payload detector threshold settings](./img/large-http-payload-detector-settings.png)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Large Render Blocking Asset"
sidebar_order: 30
description: "Learn more about large render blocking assets and how to diagnose and fix them."
description: "Learn more about Large Render Blocking Assets and how to diagnose and fix them."
---

A _Large Render Blocking Asset_ is a performance problem that happens when a large asset causes a delay in displaying the page content. For example, if a page includes a stylesheet, and the browser pauses page rendering until the the entire stylesheet downloads and processes. If that stylesheet is large, the user may see a blank or unstyled screen for a long time. This problem occurs when applications don't split up asset files, load non-essential assets synchronously, or load assets too early.
Expand All @@ -16,13 +16,13 @@ The detector for this performance issue looks for specific asset (resource) span
- The [First Contentful Paint (FCP)](/product/performance/web-vitals/web-vitals-concepts/#first-contentful-paint-fcp) of the transaction must be at least `2` seconds (with an upper bound of `10` seconds to eliminate outliers).
- The span's duration must be at least `33%` of the FCP.

You can configure detector thresholds for large render blocking asset issues in **Project Settings > Performance**:
You can configure detector thresholds for Large Render Blocking Asset issues in **Project Settings > Performance**:

![Large Render Blocking Asset detector threshold settings](./img/render-blocking-asset-detector-settings.png)

## Span Evidence

You can get additional information about your large render blocking asset problem by looking at four aspects in the "Span Evidence" section:
You can get additional information about your Large Render Blocking Asset problem by looking at four aspects in the "Span Evidence" section:

- Transaction name
- Asset URL
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "N+1 API Calls"
sidebar_order: 15
description: "Learn more about N+1 API calls and how to diagnose and fix them."
description: "Learn more about N+1 API Calls and how to diagnose and fix them."
---

_N+1 API Calls_ are a performance problem that happens when an application makes many simultaneous network requests to fetch a given type of resource. For example, when an application makes one network request for each item on a list instead of fetching all the information at once in a single combined network call. Each call to the server incurs performance overhead, and if the number of calls is high, it can lead to significant performance problems. This problem commonly occurs when rendering lists or grids of items, where each item needs to fetch additional information from the server.
Expand All @@ -23,7 +23,7 @@ The N+1 API Call detector looks for groups of simultaneous network calls to the
- The transaction operation must be `"navigation"`, `"pageload"`, `"ui.load"`, or `"ui.action"`
- The span operation must be `"http.client"`

You can configure detector thresholds for N+1 API calls issues in **Project Settings > Performance**:
You can configure detector thresholds for N+1 API Call issues in **Project Settings > Performance**:

![N+1 API Calls detector threshold settings](./img/n-plus-one-api-calls-detector-settings.png)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
title: "N+1 Queries"
sidebar_order: 10
description: "Learn more about N+1 queries and how to diagnose and fix them."
description: "Learn more about N+1 Queries and how to diagnose and fix them."
---

_N+1 queries_ are a performance problem in which the application makes database queries in a loop, instead of making a single query that returns or modifies all the information at once. Each database connection takes some amount of time, so querying the database in a loop can be many times slower than doing it just once. This problem often occurs when you use an object-relational mapping (ORM) tool in web frameworks like Django or Ruby on Rails.
_N+1 Queries_ are a performance problem in which the application makes database queries in a loop, instead of making a single query that returns or modifies all the information at once. Each database connection takes some amount of time, so querying the database in a loop can be many times slower than doing it just once. This problem often occurs when you use an object-relational mapping (ORM) tool in web frameworks like Django or Ruby on Rails.

## Detection Criteria

Expand All @@ -17,13 +17,13 @@ The detector for performance issues looks for a set of sequential, non-overlappi

If Sentry is not detecting an N+1 issue where you expect one, it's probably because the transaction didn't meet one of the above criteria.

You can configure detector thresholds for N+1 queries issues in **Project Settings > Performance**:
You can configure detector thresholds for N+1 Queries issues in **Project Settings > Performance**:

![N+1 Query detector threshold settings](./img/n-plus-one-queries-detector-settings.png)

## Span Evidence

The evidence for an N+1 queries problem has four main aspects:
The evidence for an N+1 Queries problem has four main aspects:

- Transaction name
- Parent span - This can be a view, a serializer, or another span that logically groups the queries.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ The detector for this performance issue looks at singular database spans with th
Keep in mind, an issue won't be created unless the query in question is _consistently_ taking longer than `500ms`. More specifically, the issue will be created only if the same query is detected as a slow query
in 100 events within a 24-hour period.

You can configure detector thresholds for slow DB queries issues in **Project Settings > Performance**:
You can configure detector thresholds for Slow DB Query issues in **Project Settings > Performance**:

![Slow DB Query detector threshold settings](./img/slow-db-queries-detector-settings.png)

Expand All @@ -29,7 +29,7 @@ These settings can only be edited by users with owner, manager, or team-level ad

## Span Evidence

You can get additional information about your slow DB query by looking at the following fields in the "Span Evidence":
You can get additional information about your Slow DB Query by looking at the following fields in the "Span Evidence":

- Transaction name
- Slow DB Query
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ sidebar_order: 30
description: "Learn more about Uncompressed Asset issues and how to diagnose and fix them."
---

Uncompressed asset issues happen when a file that needs to be downloaded in order to load a browser page, doesn’t get compressed while being transferred. This may indicate a misconfiguration of the server or CDN (content delivery network) that’s serving the asset file.
Uncompressed Asset issues happen when a file that needs to be downloaded in order to load a browser page, doesn’t get compressed while being transferred. This may indicate a misconfiguration of the server or CDN (content delivery network) that’s serving the asset file.

## Detection Criteria

Expand All @@ -15,22 +15,22 @@ The detector for this performance issue looks for specific asset (resource) span
- The span duration has to be over `500ms` (to filter out faster transfers or assets served in internal networks).
- There has to be another asset span in the transaction that has compressed files. This helps filter out cases where a users' browser isn't sending the `Accept-Encoding` header.

If Sentry isn't detecting an uncompressed asset issue where you expect one, it's probably because the transaction didn't meet one of the above criteria.
If Sentry isn't detecting an Uncompressed Asset issue where you expect one, it's probably because the transaction didn't meet one of the above criteria.

You can configure detector thresholds for uncompressed asset issues in **Project Settings > Performance**:
You can configure detector thresholds for Uncompressed Asset issues in **Project Settings > Performance**:

![Uncompressed Asset detector threshold settings](./img/uncompressed-asset-detector-settings.png)

## Span Evidence

You can identify an uncompressed asset problem by four main aspects in the "Span Evidence" section:
You can identify an Uncompressed Asset problem by four main aspects in the "Span Evidence" section:

- Transaction name
- Slow resource span - The uncompressed slow span, usually containing the asset url
- Asset size
- Duration impact - The fraction of time potentially added to the total transaction time if this span is in the critical path.

![Uncompressed asset span evidence](./img/span-evidence.png)
![Uncompressed Asset span evidence](./img/span-evidence.png)

View it by going to the **Issues** page in Sentry, selecting your project, clicking on the Uncompressed Asset error you want to examine, then scrolling down to the "Span Evidence" section in the "Details" tab.

Expand Down
2 changes: 1 addition & 1 deletion docs/product/performance/index.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Performance Monitoring"
sidebar_order: 40
description: "With Performance Monitoring, you can monitor metrics, and quickly identify & fix errors, while ensuring your application continues to perform at its best."
description: "With performance monitoring, you can track, analyze, and debug your application's performance. Sentry helps you identify performance opportunities and trace issues back to poorly performing code."
---

With performance monitoring, Sentry tracks application performance, measuring metrics like throughput and latency, and displaying the impact of errors across multiple services. Sentry captures [distributed traces](/product/sentry-basics/tracing/distributed-tracing/) consisting of [transactions](/product/performance/transaction-summary/#what-is-a-transaction) and spans to measure individual services and operations within those services.
Expand Down
2 changes: 1 addition & 1 deletion docs/product/performance/queries.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Queries
sidebar_order: 50
description: "Learn more about query performance monitoring, which allows you to see your database queries, and debug their performance."
description: "Monitor the performance of your database queries and drill into samples to investigate further."
---

If you have performance monitoring enabled and your application queries a database, you can see how your queries are performing in Sentry.
Expand Down
2 changes: 1 addition & 1 deletion docs/product/performance/requests.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Requests
sidebar_order: 55
description: "Hello"
description: "Track the performance of your application's HTTP requests and drill into the domains serving those requests."
---

If you have performance monitoring enabled, you can track your application's HTTP requests in Sentry. Sentry monitors all outgoing HTTP requests and helps you track and investigate the domains that serve those requests.
Expand Down
2 changes: 1 addition & 1 deletion docs/product/performance/resources.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Resources
sidebar_order: 50
description: "Learn more about browser resource performance monitoring, which allows you to see debug the performance of loading JavaScript and CSS on your frontend."
description: "Learn more about browser resource performance monitoring, which allows you to debug the performance of loading JavaScript and CSS on your frontend."
---

If you have performance monitoring enabled for your frontend, you can see how your browser resources are performing in Sentry.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Web Vitals Concepts"
sidebar_order: 10
description: "Understand the health of your application with Web Vitals by monitoring metrics such as render time, response time, and layout shift."
description: "Learn more about web vitals and how each metric relates to your application's performance."
---

[Web Vitals](https://web.dev/vitals/) are a set of metrics defined by Google to measure render time, response time, and layout shift. Each data point provides insights about the overall [performance](/product/performance/) of your application.
Expand Down

0 comments on commit 0c3eb35

Please sign in to comment.