Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ref(profiling): update summary docs #8317

Merged
merged 17 commits into from
Nov 20, 2023
Merged
Show file tree
Hide file tree
Changes from 12 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 24 additions & 2 deletions src/docs/product/profiling/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,31 @@ The "Slowest Functions" widget shows you a list of the functions that took the m

Using the Profiling page is typically an advanced workflow, enabling you to directly select transactions of interest and examine detailed profiling data.

Selecting one of the transactions will take you to the **Profile Summary** page below. On this page, you can examine the aggregated [flame graph](/product/profiling/flame-charts-graphs) that presents aggregated sample data for the selected transaction.
## Profiling Summary Page

![Transaction Profile summary page](transaction-profile-view.png)
Selecting one of the transactions will take you to the **Profile Summary** page below. On this page, you can examine the aggregated information of this profile.
JonasBa marked this conversation as resolved.
Show resolved Hide resolved

![Transaction Profile summary page](new-transaction-profile-view.png)

While the **Profiling** page can be used to view information about the profiles in our application, the **Profile Summary** page shows aggregated information from profiles collected under a single type of transaction.

This information allows you to dive deeper into what your code was executing during this transaction and may get you closer to the root of the problem.

The top of the page has a percentile chart with profile durations and a search bar. The chart helps you visually identify possible performance regressions or changes. You can isolate the date-time ranges you want to investigate by clicking and dragging it. If you want to narrow down your investigation to profiles executed under a specific environment, use the search bar filters.
lizokm marked this conversation as resolved.
Show resolved Hide resolved

The bottom right side of the page has aggregated information about function regressions detected during your selected time range plus, a list of the slowest functions. There's also a list of general information about the profile including:

- When the profile was last seen
- The total number of profiles collected for this transaction
- p75, p95, and p99 values

Below the general information is a list of regressions that Sentry may have detected. Clicking the before/after timings in the regressed function list will take you to example flamecharts of the before and after execution so that you can investigate what changed.

There's also a list of the slowest functions which are consuming the most time in your application. These are good candidates for optimization.

The left side of the page contains am aggregate flamegraph as well as digest of the slowest and most regressed functions. We recommend reading the docs about [Flame Graphs and Aggregated Flame Graphs](/product/profiling/flame-charts-graphs) so you can understand what this data is telling us. In short, looking for wide frames that have no children is a good first thing to look at - this will allow you to identify frames that are often occupying the stack and are good candidates for optimization.
JonasBa marked this conversation as resolved.
Show resolved Hide resolved
JonasBa marked this conversation as resolved.
Show resolved Hide resolved

The alternative way you can also visualize the flamegraph is by clicking on the Call Tree button which will render the flamegraph as an inverted call tree (leafmost nodes first which expand to their parent nodes). The sample column in the call tree represent how often profiling collected stack samples where that function was on the stack. Expanding of the tree can be done via click interaction on the caret before the function name (holding ⌘ while doing so will expand that entire branch all the way to the root.)
JonasBa marked this conversation as resolved.
Show resolved Hide resolved
JonasBa marked this conversation as resolved.
Show resolved Hide resolved

## Learn More

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading