Skip to content

Commit 23ddbd8

Browse files
JonasBaZylphrexlizokmvivianyentran
authored
docs: add continous profiling docs (#11195)
* docs: add profiling docs * Apply suggestions from code review Co-authored-by: Liza Mock <[email protected]> * Apply suggestions from code review Co-authored-by: Liza Mock <[email protected]> * Update docs/product/explore/profiling/index.mdx Co-authored-by: vivianyentran <[email protected]> * Update docs/product/explore/profiling/index.mdx Co-authored-by: Liza Mock <[email protected]> * Update docs/product/explore/profiling/index.mdx Co-authored-by: vivianyentran <[email protected]> * Update docs/product/explore/profiling/index.mdx Co-authored-by: vivianyentran <[email protected]> * Update docs/product/explore/profiling/index.mdx Co-authored-by: vivianyentran <[email protected]> * few more PR suggestions * few more PR suggestions * few more changes + new screenshots * Update docs/product/explore/profiling/index.mdx Co-authored-by: Liza Mock <[email protected]> * Update docs/product/explore/profiling/index.mdx Co-authored-by: Liza Mock <[email protected]> * Update docs/product/explore/profiling/index.mdx Co-authored-by: Liza Mock <[email protected]> * Update docs/product/explore/profiling/index.mdx Co-authored-by: Liza Mock <[email protected]> --------- Co-authored-by: Tony Xiao <[email protected]> Co-authored-by: Liza Mock <[email protected]> Co-authored-by: vivianyentran <[email protected]>
1 parent d5f0e5f commit 23ddbd8

File tree

4 files changed

+21
-11
lines changed

4 files changed

+21
-11
lines changed
180 KB
Loading
242 KB
Loading
301 KB
Loading

docs/product/explore/profiling/index.mdx

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -51,15 +51,29 @@ From this view, you can also click "View Profile" to zoom in on the flame graph.
5151

5252
## Profiling Page
5353

54-
The **Profiling** page shows a list of transactions in descending order of execution time for your selected project(s).
54+
On the [**Profiling**](https://sentry.io/orgredirect/organizations/:orgslug/profiling/) page, you'll find two tabs: "transactions" and "flamegraph". The transactions tab lists transactions in descending order of execution-time for your selected project(s), while the flamegraph tab shows an aggregate flamegraph that spans across transactions. Depending on how profiling has been set up, you might be interested more in one than the other.
5555

56-
![Profiling page](./img/profiling-page-view.png)
56+
Using the Profiling page is typically an advanced workflow where you can select transactions of interest directly and closely examine profiling data.
5757

58-
The "Profiles by Percentiles" timeline chart can be used to filter the transaction data by highlighting the desired time period. Below that, there are three widgets to choose from.
58+
### Transactions Tab
5959

60-
The "Slowest Functions" widget shows you a list of the functions that took the most time in your application. It lists the transactions the function was called from. Clicking on a transaction will take you to an example profile. The "Most Regressed Functions" and "Most Improved Functions" widgets show you a list of the functions that have gotten slower/faster over time. Clicking on the timings will take you to an example from either before/after the detected regression/improvement.
60+
This page shows a list of transactions in descending order of execution-time for your selected project(s).
6161

62-
Using the Profiling page is typically an advanced workflow, enabling you to directly select transactions of interest and examine detailed profiling data.
62+
![Transactions View](./img/profiling-page-transactions-view.png)
63+
64+
The "Profiles by Percentiles" timeline chart can be used to filter transaction data by highlighting a desired time period.
65+
66+
The "Slowest Functions" widget lists the functions that took the most time in your application, including the transactions each function was called from. Clicking on a transaction will take you to an example profile.
67+
68+
### Flamegraph Tab
69+
70+
The flamegraph tab shows an aggregate flamegraph based on the query you selected. You can use this tab to visualize a flamegraph across transaction boundaries so you can better understand bottlenecks that might be affecting the system as a whole. The aggregate flamegraph is a more advanced workflow that's relevant to users who've set up continuous profiling and are interested in looking at system-wide performance.
71+
72+
![Flamegraph View](./img/profiling-page-flamegraph-view.png)
73+
74+
The function width in an aggregate flamegraph represents the number of times a particular function has been sampled. This view shows you where your system is spending the majority of its time. We recommend that you look for functions with a large sample count and optimize them, as they're the ones most frequently occupying the program's stack.
75+
76+
You can right click on a function to open some example profiles and see the function executing. This is useful for gaining context into how and why that function might be running.
6377

6478
## Profiling Summary Page
6579

@@ -71,18 +85,14 @@ While the **Profiling** page can be used to view information about the profiles
7185

7286
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.
7387

74-
The top of the page has a percentile chart with profile durations and a search bar. It 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.
88+
If you want to narrow down your investigation to profiles executed in a specific environment, use the search bar filters.
7589

76-
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:
90+
The right side of the page has a list of the slowest functions. There's also a list of general information about the profile including:
7791

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

82-
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.
83-
84-
There's also a list of the slowest functions which are consuming the most time in your application. These are good candidates for optimization.
85-
8696
On the left side of the page is an aggregate flamegraph as well as a digest of the slowest and most regressed functions. We recommend looking for wide frames that have no children as a starting point. This will allow you to identify frames that are often occupying the stack and make good candidates for optimization. Read the [Flame Graphs and Aggregated Flame Graphs](/product/explore/profiling/flame-charts-graphs) docs if you'd like a deeper understanding of this data.
8797

8898
An alternative way to visualize the flamegraph is by clicking on the "Call Tree" button which will render the flamegraph as an inverted call tree with the leftmost nodes first, which will then expand to their parent nodes. The sample column in the call tree represents the frequency with which Profiling collected stack samples where that function was on the stack. You can expand the tree by clicking on the caret before the function name. (Holding ⌘ at the same time will expand that entire branch all the way to the root.)

0 commit comments

Comments
 (0)