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 1 commit
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
19 changes: 17 additions & 2 deletions src/docs/product/profiling/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,24 @@ 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.
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](transaction-profile-view.png)
![Transaction Profile summary page](new-transaction-profile-view.png)

Similar to how previous page displayed information of all of the profiles in your application, the profile summary page displays aggregated information from profiles collected under a single type of transaction.
JonasBa marked this conversation as resolved.
Show resolved Hide resolved

Using the information on this page, you can dive deeper into what your code was executing during this transaction. The top area of the page includes a percentile chart with profile durations and a search bar. The chart is there so that you can visually identify possible performance regressions or changes - it supports selecting of ranges through a click-drag interaction. Use it to isolate certain date time ranges you would like to investigate. While selecting on date ranges is useful, it is important to be able to narrow down on the population as well, this is why the search bar filters are for. If for example you would like to narrow your investigation to profiles executed under a certain environment, apply the filter and the data will reflect that. Using both of these mechanisms allows you to narrow down on the time range and the population which might be exhibiting performance problems.

JonasBa marked this conversation as resolved.
Show resolved Hide resolved
Our bottom right side of the page has aggregated information about function regressions that Sentry may have detected during the selected time range as well as a list of the slowest functions in your application as well as some general information about the profile. We can see information like when was this profile last seen, p75, p95 and p99 values as well as the total amount of profiles we collected for this transaction.

JonasBa marked this conversation as resolved.
Show resolved Hide resolved
Below the general information, we have a list of regressions that Sentry may have detected as well as a list of the slowest functions executed during this transactions.
Clicking on 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.

The slowest functions list serves as an overview of functions which are consuming the most time in your application - these are usually good candidates for optimization.
JonasBa marked this conversation as resolved.
Show resolved Hide resolved

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